Build
ONCHAIN STORAGE
SDK
API
uploader.uploadBundle()

upload.uploadBundle(tx)

Uploads an array of transactions as a bundle in a single transaction.

This function is provided for users who need to obtain each transaction's ID before uploading. However, most users will use irys.uploadFolder(), an abstraction that handles the uploading, signing and bundling in a single function call.

Parameters

Name
Type
Description
data
(DataItem | Buffer | string)[]
An array of transactions to upload

NOTES:

If a provided transaction is unsigned, the transaction is signed using a temporary (throwaway) key. This means transactions can be associated with a single "random" address.

If a Buffer is provided, it is converted into a transaction and then signed by the throwaway key. The throwaway key, address, and all bundled (provided + throwaway signed + generated) transactions are returned by this method.

Returns

Type
Description
object
A receipt as a JSON object with the following values.
response = {
	id, // Transaction ID (used to download the data)
	timestamp, // Timestamp (UNIX milliseconds) of when the transaction was created and verified
	version, // The version of this JSON file, currently 1.0.0
	public, // Public key of the bundler node used
	signature, // A signed deep hash of the JSON receipt
	deadlineHeight, // The block number by which the transaction must be finalized
	block, // Deprecated
	validatorSignatures, // Deprecated
	verify, // An async function used to verify the receipt at any time
}

Example

const irys = await getIrys();
const maxTxs = 5;
const txs = [];
 
for (let i = 0; i < maxTxs; i++) {
	const newTx = irys.createTransaction(`GM World! ${i + 1}`, {
		tags: [{ name: "Content-Type", value: "text/plain" }],
	});
	await newTx.sign(); // ID is now set
	txs.push(newTx);
	console.log(`Tx created and signed, https://gateway.irys.xyz/${newTx.id}`);
}
 
try {
	const uploadReceipt = await irys.uploader.uploadBundle(txs);
	console.log(`All Txs uploaded.`);
} catch (e) {
	console.log("Error uploading bundle ", e);
}
ℹ️

The transaction ID returned as part of the response is used to download the data, simply create a URL with the format https://gateway.irys.xyz/[transaction-id].