Awesome
Irys SDK
DEPRECATED
This package and the Arweave bundlers - which we will continue to operate - have been deprecated and are no longer actively supported. We recommend migrating to Irys - the world’s first programmable datachain.
The Irys SDK is a typesafe SDK for interacting with Irys.
What is Irys?
Irys is the only provenance layer. It enables users to scale permanent data and precisely attribute its origin. Data uploaded to Irys is permanent, precise, and unconstrained. Learn more in our docs.
How Irys works
When you upload data to Irys, you are immediately issued a receipt. This receipt contains an ID that can be used to instantly download your data, along with attribution, authorship details, and timestamp accurate to the millisecond. The receipt acts as cryptographic proof of time and can be trustlessly verified as a safeguard against potentially malicious behavior.
Next, Irys includes your transaction in a bundle and submits it to Arweave where it is permanently stored. Irys guarantees your transaction will be finalized on Arweave (>= 50 block confirmations) and seeded to >=5 miners.
For more details, including a video overview, see our docs.
Why Irys offers
- Volumetric scaling: Can handle 50K+ Transactions Per Second (TPS) and limitless data volumes.
- Instant uploads: Upload data to Irys in as little as 8ms.
- Frictionless integration: 3-4 lines of code to integrate Irys.
- Pay in any token: Sign and pay to use Irys in 14 supported tokens.
Getting started
Install the SDK
Using npm:
npm install @irys/sdk
or yarn:
yarn add @irys/sdk
Connect to an Irys node
Connect to one of our three nodes:
const getIrys = async () => {
const providerUrl = "https://rpc-mumbai.maticvigil.com";
const token = "matic";
const irys = new Irys({
network: "devnet", // "mainnet" || "devnet"
token, // Token used for payment
key: process.env.PRIVATE_KEY, // Private key
config: { providerUrl }, // Optional provider URL, only required when using Devnet
});
return irys;
};
Upload
const uploadData = async () => {
const irys = await getIrys();
const dataToUpload = "GM world.";
try {
const receipt = await irys.upload(dataToUpload);
console.log(`Data uploaded ==> https://gateway.irys.xyz/${receipt.id}`);
} catch (e) {
console.log("Error uploading data ", e);
}
};
For more code examples, including code showing how to upload files and folders, see our docs.
Irys in the browser
When using Irys in the browser, the end user's injected provider is used to sign transactions and pay for uploads. See our docs for code examples.
UI toolkit
To help kickstart your next project, we've released the Provenance Toolkit, a full suite of open source UI components.
Video
We also have a video teaching how to build with Irys.
Support
If you have any questions or just want to brainstorm about how to integrate Irys into your project, reach out to us in Discord.