Migrating to the Irys L1

The updated Irys Bundler SDK reduces dependency bloat by providing dedicated packages for each token instead of a universal import. Migration is straightforward.

The Irys testnet is currently operational with support for permanent data uploads, with temporary data support coming soon. The platform will introduce the IrysVM and Programmable Data in the coming weeks. Irys provides early access to all these new features for developers building on the platform.

At mainnet launch, all testnet data will migrate to mainnet without altering transaction IDs.

Note
Note
Uploads made through uploader.irys.xyz are seeded to the Irys L1, not Arweave. See Bundlers for the full list.

NodeJS Migration

Before:

import Irys from "@irys/sdk";

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

After:

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
The above code is for ethereum only, we also have examples covering all supported tokens.

Browser Migration

Before:

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;
};

After:

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));
  return irysUploader;
};
Note
Note
The above code is for ethereum with ethers v5 only, we also have examples covering all supported tokens and providers.

Need help or have questions? Come find us in Discord.