Networks

Irys operates two bundler networks for uploading data: a mainnet bundler for production use with real tokens, and a devnet bundler for testing with free faucet tokens. "Mainnet" here refers to the bundler network; the chain it uploads to is the Irys L1, currently in mainnet beta. See Bundlers for the list of bundler endpoints and where each one seeds data.

Mainnet

The mainnet bundler, uploader.irys.xyz, accepts production uploads paid with supported tokens and sends them to the Irys L1. The bundler and the chain are separate things: the bundler is the upload endpoint you connect to with @irys/upload; the Irys L1 is the destination chain, in mainnet beta. Check your selected endpoint before uploading: Irys L1 and legacy Arweave bundlers send data to different networks. Changing an SDK package or endpoint does not move previously stored data between chains.

Connect to the mainnet bundler using Ethereum:

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

const getIrysUploader = async () => {
  const irysUploader = await Uploader(Ethereum).withWallet(process.env.PRIVATE_KEY);
  return irysUploader;
};
Note
Note
This example uses Ethereum. Additional payment token examples are available in the SDK setup section.

Devnet

The devnet testing network uses free faucet tokens for uploads, with data retention lasting approximately 60 days before deletion. Devnet connections require additional configuration parameters.

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

const getIrysUploader = async () => {
  const rpcURL = "";
  const irysUploader = await Uploader(Ethereum)
    .withWallet(process.env.PRIVATE_KEY)
    .withRpc(rpcURL)
    .devnet();

  return irysUploader;
};
Note
Note
When using devnet, you must append withRpc() and devnet() to the configuration. RPC URLs are mandatory for devnet operations. Find current RPC URLs at chainlist.org.

Programmable Data status

This guide covers uploads through the mainnet and devnet bundlers. Programmable Data remains in development; see current feature status for native contract access to stored data.