API Docs

irys.uploadFile(fileName, tags)

Permanently uploads a file.


  • fileName: Name of the file to upload
  • tags: Optional metatags


  • receipt: A receipt in the form of 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 on Arweave
	block, // Deprecated
	validatorSignatures, // Deprecated
	verify, // An async function used to verify the receipt at any time


const irys = await getIrys();
// Your file
const fileToUpload = "./myImage.png";
// Add a custom tag that tells the gateway how to serve this file to a browser
const tags = [{ name: "Content-Type", value: "image/png" }];
try {
	const response = await irys.uploadFile(fileToUpload, tags);
	console.log(`File uploaded ==>${}`);
} catch (e) {
	console.log("Error uploading file ", e);

The transaction id returned as part of the response is used to download the data, simply create a URL with the format[transaction-id].