Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

Irys-xyz/arweave-js-sdk

Repository files navigation

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

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.