Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/_content/build/d/features/mutability.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ With mutable references you create a single, static URL that is linked to a sequ

To create a mutable reference:

1. Upload a base transaction to Irys and reference it using a URL in the following format `https://gateway.irys.xyz/mutable/:txId`
1. Upload a base transaction to Irys and reference it using a URL in the following format: `https://gateway.irys.xyz/mutable/:txId`

<Callout type="info" emoji="ℹ️">
Use a token-specific version of `getIrysUploader()` to connect to an Irys Bundler before uploading. Choose [one from here](/build/d/sdk/setup).
Expand All @@ -28,7 +28,7 @@ const receiptOne = await irysUploader.upload("First TX");
console.log(`TX 1 uploaded https://gateway.irys.xyz/mutable/${receiptOne.id}`);
```

2. Upload an addition to the series as a new transaction, and add a tag named `Root-TX` with the value of the original transaction ID.
2. Upload an addition to the series as a new transaction, and add a tag named `Root-TX` with the value of the original transaction ID:

```js
const tags = [{ name: "Root-TX", value: receiptOne.id }];
Expand Down
2 changes: 1 addition & 1 deletion app/_content/build/d/features/supported-tokens.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ On devnet, uploads are paid for with free faucet tokens. Data is deleted after ~

The Irys SDK reduces dependency bloat by providing dedicated packages for each token. Your import statements and connection code will differ depending on the token used for payment.

The following code is for using ethereum only, we [also have examples covering all of the tokens we support for payment](/build/d/sdk/setup).
The following code is for using Ethereum only, we [also have examples covering all of the tokens we support for payment](/build/d/sdk/setup).


```ts
Expand Down
18 changes: 9 additions & 9 deletions app/_content/build/d/features/tags.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Tags are indexed by gateways and are queryable using [GraphQL](/build/d/graphql)

## Content-Type

Irys automatically infers and sets the appropriate [`Content-Type`](https://developer.mozilla.org/en-US/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) tag based on the file extension when uploading files and folders. You can also manually set the `Content-Type` tag, doing so will override the default behavior and apply the value you provide.
Irys automatically infers and sets the appropriate [`Content-Type`](https://developer.mozilla.org/en-US/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) tag based on the file extension when uploading files and folders. You can also manually set the `Content-Type` tag, however, doing so will override the default behavior and apply the value you provide.

```js
// Your file
Expand All @@ -28,14 +28,14 @@ const fileToUpload = "./myImage.png";
const tags = [{ name: "Content-Type", value: "image/png" }];

try {
const response = await irys.uploadFile(fileToUpload, { tags: tags });
console.log(`File uploaded ==> https://gateway.irys.xyz/${response.id}`);
const response = await irys.uploadFile(fileToUpload, { tags: tags });
console.log(`File uploaded ==> https://gateway.irys.xyz/${response.id}`);
} catch (e) {
console.log("Error uploading file ", e);
console.log("Error uploading file ", e);
}
```

You can also add tags via the [CLI's](/build/d/storage-cli/installation) `-t` option, followed by a series of name / value pairs
You can also add tags using the [CLI's](/build/d/storage-cli/installation) `-t` option, followed by a series of name / value pairs:

```console
irys upload myImage.png \
Expand All @@ -50,7 +50,7 @@ irys upload myImage.png \

You can add up to 20 tags to each transaction, enabling the construction of semi-relational models within your data.

A popular practice involves creating an `application-id` tag, this tag helps segregate your uploads from others.
A popular practice involves creating an `application-id` tag, this tag helps separate your uploads from others.

```js
// Your file
Expand All @@ -59,9 +59,9 @@ const fileToUpload = "./myNFT.png";
const tags = [{ name: "application-id", value: "NFTs To The Moon" }];

try {
const response = await irys.uploadFile(fileToUpload, { tags: tags });
console.log(`File uploaded ==> https://gateway.irys.xyz/${response.id}`);
const response = await irys.uploadFile(fileToUpload, { tags: tags });
console.log(`File uploaded ==> https://gateway.irys.xyz/${response.id}`);
} catch (e) {
console.log("Error uploading file ", e);
console.log("Error uploading file ", e);
}
```
3 changes: 1 addition & 2 deletions app/_content/build/d/features/txids.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@ Transaction IDs are base58 encoded.

## Downloading Data with Transaction IDs

Use your unique transaction ID to download data from our [gateway](/learn/network/gateway) using a URL in the format
Use your unique transaction ID to download data from our [gateway](/learn/network/gateway) using a URL in the format:

`https://gateway.irys.xyz/:transactionId`

**Example**

`https://gateway.irys.xyz/CO9EpX0lekJEfXUOeXncUmMuG8eEp5WJHXl9U9yZUYA`

4 changes: 2 additions & 2 deletions app/_content/build/d/graphql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Queries return transaction metadata. To then retrieve data, use the returned tra

### Transaction IDs

Search by transaction IDs.
Search by transaction IDs:

```graphql
query getByIds {
Expand Down Expand Up @@ -220,7 +220,7 @@ query getPNGs {

### Sorting

You can sort results by timestamp in either ascending or descending order using the `order` field.
You can sort results by timestamp in either ascending or descending order using the `order` field:

```graphql
query getAllByOwnerAsc {
Expand Down
2 changes: 1 addition & 1 deletion app/_content/build/d/irys-in-the-browser.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Choose the code for your provider:

## EVM Chains

When connecting from an EVM chain, your connection code will differ based on the token you're using. The examples below use Ethereum and the `WebEthereum` class. To change tokens, use one from the following list.
When connecting from an EVM chain, your connection code will differ based on the token you're using. The examples below use Ethereum and the `WebEthereum` class. To change tokens, use one from the following list:

| Token | Class Name |
| ----------------- | ---------------- |
Expand Down
59 changes: 35 additions & 24 deletions app/_content/build/d/migrating.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import Callout from "@/components/callout";

# Migrating to the Irys L1

The Irys testnet is now live with support for permanent data uploads, and temporary data support coming soon. In the coming weeks, we’ll also introduce the [IrysVM](https://docs.irys.xyz/learn/why-build-on-irys/irysvm) and [Programmable Data](https://docs.irys.xyz/learn/why-build-on-irys/programmable-data). **Irys provides early access to all these new features for developers building on our platform.**
The Irys testnet is now live with support for permanent data uploads, and temporary data support coming soon. In the coming weeks, we’ll also introduce the [IrysVM](https://docs.irys.xyz/learn/why/why-irysvm) and [Programmable Data](https://docs.irys.xyz/learn/why/why-programmable-data). **Irys provides early access to all these new features for developers building on our platform.**

At mainnet launch, all data uploaded to bundlers will be migrated from testnet to mainnet, with no changes to transaction IDs.

<Callout type="info" emoji="ℹ️">
If you're not ready to migrate yet, you do not have to do anything. Irys's bundlers and gateway for Arweave will continue to operate as normal.
If you're not ready to migrate yet, you do not have to do anything. Irys's
bundlers and gateway for Arweave will continue to operate as normal.
</Callout>

## How to Migrate
Expand All @@ -28,30 +29,32 @@ Change This:
import Irys from "@irys/sdk";

const getIrys = async () => {
const irys = new Irys({
network: "mainnet",
token: "ethereum",
key: process.env.PRIVATE_KEY,
});
return irys;
const irys = new Irys({
network: "mainnet",
token: "ethereum",
key: process.env.PRIVATE_KEY,
});
return irys;
};
```

To This:


```ts
import { Uploader } from "@irys/upload";
import { Ethereum } from "@irys/upload-ethereum";

const getIrysUploader = async () => {
const irysUploader = await Uploader(Ethereum).withWallet(process.env.PRIVATE_KEY);
const irysUploader = await Uploader(Ethereum).withWallet(
process.env.PRIVATE_KEY
);
return irysUploader;
};
```

<Callout type="info" emoji="ℹ️">
The above code is for ethereum only, [we also have examples](/build/d/sdk/setup) covering all supported tokens.
<Callout type="info" emoji="ℹ️">
The above code is for Ethereum only, [we also have
examples](/build/d/sdk/setup) covering all supported tokens.
</Callout>

### Browser
Expand All @@ -63,13 +66,17 @@ import { WebIrys } from "@irys/sdk";
import { ethers } from "ethers";

const getWebIrys = async () => {
await window.ethereum.enable();
const provider = new providers.Web3Provider(window.ethereum);
const wallet = { rpcUrl: rpcUrl, name: "ethersv5", provider: provider };
const webIrys = new WebIrys({ network: "mainnet", token: "ethereum", wallet });
await webIrys.ready();

return webIrys;
await window.ethereum.enable();
const provider = new providers.Web3Provider(window.ethereum);
const wallet = { rpcUrl: rpcUrl, name: "ethersv5", provider: provider };
const webIrys = new WebIrys({
network: "mainnet",
token: "ethereum",
wallet,
});
await webIrys.ready();

return webIrys;
};
```

Expand All @@ -79,18 +86,22 @@ To This:
import { WebUploader } from "@irys/web-upload";
import { WebEthereum } from "@irys/web-upload-ethereum";
import { EthereumEthersv5 } from "@irys/web-upload-ethereum-ethers-v5";

const getIrysUploader = async () => {
const provider = new ethers.providers.Web3Provider(window.ethereum);
const irysUploader = await WebUploader(WebEthereum).withProvider(EthereumEthersv5(provider));
const irysUploader = await WebUploader(WebEthereum).withProvider(
EthereumEthersv5(provider)
);
return irysUploader;
};
```

<Callout type="info" emoji="ℹ️">
The above code is for ethereum with ethers v5 only, [we also have examples](/build/d/irys-in-the-browser) covering all supported tokens and providers.
<Callout type="info" emoji="ℹ️">
The above code is for Ethereum with ethers v5 only, [we also have
examples](/build/d/irys-in-the-browser) covering all supported tokens and
providers.
</Callout>

## Support

Need help or just have questions? Come [find us in Discord](https://discord.gg/irys).
Need help or just have questions? Come [find us in Discord](https://discord.gg/irys).
25 changes: 11 additions & 14 deletions app/_content/build/d/networks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,43 +13,40 @@ Irys has two Bundler networks:

As well as an [L1 testnet](/build/programmability/introduction).


## Connecting to the Mainnet bundler

<Callout type="info" emoji="ℹ️">
The following code is for using ethereum only, we [also have examples covering all of the tokens we support for payment](/build/d/sdk/setup).
The following code is for using Ethereum only, we [also have examples covering
all of the tokens we support for payment](/build/d/sdk/setup).
</Callout>
## Connecting to the Mainnet bundler

```ts
import { Uploader } from "@irys/upload";
import { Ethereum } from "@irys/upload-ethereum";

const getIrysUploader = async () => {
const irysUploader = await Uploader(Ethereum).withWallet(process.env.PRIVATE_KEY);
const irysUploader = await Uploader(Ethereum).withWallet(
process.env.PRIVATE_KEY
);
return irysUploader;
};
```

## Connecting to the Devnet bundler

<Callout type="info" emoji="ℹ️">
The following code is for using ethereum only, we [also have examples covering all of the tokens we support for payment](/build/d/sdk/setup).
</Callout>

To connect to devnet, append the functions `withRpc()` and `devnet()`. RPC URLs are required when using devnet.
To connect to devnet, append the functions `withRpc()` and `devnet()`. RPC URLs are required when using devnet.

```ts
import { Uploader } from "@irys/upload";
import { Ethereum } from "@irys/upload-ethereum";

const getIrysUploader = async () => {
// RPC URLs change often. Use a current one from https://chainlist.org/
const rpcURL = "";
const rpcURL = "";
const irysUploader = await Uploader(Ethereum)
.withWallet(process.env.PRIVATE_KEY)
.withRpc(rpcURL)
.devnet();

return irysUploader;
};
```
```
16 changes: 8 additions & 8 deletions app/_content/build/d/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ Errors:

This error can be safely ignored, it will not cause any issues. To make the error go away, you'll need to install updated Python and C++ build tools.

**MacOS**
#### **MacOS**

Current versions of MacOS come pre-built with Python. To install the C++ build tools:

- First install [XCode](https://developer.apple.com/xcode/download/)
- Once XCode is installed, go to Preferences, Downloads, and install the Command Line Tools

**Windows**
#### **Windows**

Windows users need to install both Python and C++ build tools. These commands must be run with administrator permissions.

Expand All @@ -37,7 +37,7 @@ npm i -g --add-python-to-path --vs2015 --production windows-build-tools
npm i -g node-gyp@latest
```

**UNIX**
#### **UNIX**

Most UNIX distributions come with Python installed. To install C++ build tools, the following works for most Debian-based systems. For others, use your package manager to install "GCC build tools".

Expand All @@ -49,7 +49,7 @@ sudo apt-get install build-essential

**Error message**: Error: Not enough balance for transaction

This error occurs when you try to upload to a node without first funding it.
This error occurs when you try to upload to a node without first funding it.

Tokens for use on our devnet bundler can be obtained for free from common faucets like the ones for [Solana](https://faucet.solana.com/) and [Sepolia](https://sepoliafaucet.com/).

Expand All @@ -63,9 +63,9 @@ This can be fixed by configuring Irys as follows:

```js
const irys = new Irys({
url: nodeUrl,
token,
provider,
config: { tokenOpts: { commitment: "finalized" } },
url: nodeUrl,
token,
provider,
config: { tokenOpts: { commitment: "finalized" } },
});
```
5 changes: 2 additions & 3 deletions app/_content/build/programmability/introduction.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Our alpha testnet is live!

With our testnet live you can store data directly on the L1, build apps with IrysVM and Programmable Data
With our testnet live you can store data directly on the L1, build apps with IrysVM and Programmable Data.

## IrysVM

Expand All @@ -10,11 +10,10 @@ As a fork of the Ethereum Virtual Machine (EVM), the Irys Virtual Machine (IrysV

Programmable Irys unlocks a new paradigm where data can be actively used and manipulated in real-time by smart contracts. With Programmable Data, Irys integrates cost-effective data storage and smart-contract functionality, enabling dApps and services to interact programmatically with large amounts of onchain data within a single protocol and ecosystem. This streamlines development, lowers costs, and unlocks unprecedented composability, overcoming the limitations of fragmented integrations.


{/* ## Ledgers
Ledgers are a key data model innovation, allowing for scalable configurable duration storage.
the Irys testnet currently has 2 ledgers:
0: the Perm ledger - This is for data that is stored permanently.
1: the Term ledger - This is for data upload validation for Perm txs. It has a minimum storage duration of `5 days`.

For a more complete break down, see [Learn: Ledgers](/learn/protocol-overview/ledgers-overview) */}
For a more complete break down, see [Learn: Ledgers](/learn/protocol-overview/ledgers-overview) */}
Loading