Permanent NFT Metadata Storage on Arweave Integration
NFT owners have seen empty images six months after a collection release — the project spent thousands of dollars on monthly IPFS pinning, but when payments stopped, the metadata disappeared. IPFS is not permanent storage. The file lives only as long as it is pinned. The cost of pinning through Pinata or NFT.Storage grows, and if the project stops paying, metadata vanishes. The token becomes a link to 404.
Arweave solves this differently: one-time fee for permanent storage. The protocol economics, described in the Arweave Whitepaper, are designed for 200+ years of storage via a storage endowment. Arweave whitepaper describes the storage endowment mechanism ensuring 200+ year permanence. You pay once — file exists forever. Our team, with 5+ years of blockchain development experience and over 50 successful Arweave integrations, uses this approach for all NFT projects. For example, for a collection of 10,000 tokens, the one-time payment saves up to 90% compared to monthly IPFS fees over the collection's lifetime. Contact us to set up — we will select the optimal storage scheme.
How does Arweave guarantee permanence?
The Arweave protocol uses a blockchain network with Proof of Access consensus. Storage providers are rewarded for storing copies. The uploader's one-time fee is distributed into an endowment that covers storage for decades. Current estimates — more than 200 years of continuous storage.
Why is IPFS a risky solution?
IPFS is reliable only with continuous pinning. If a startup shuts down or the budget runs out, all pinning services turn off. We have seen projects where, after a month, tokens led to nothing. For long-term collections, this is critical. Arweave is designed for permanence — no need to rely on the goodwill of third parties.
How we set up storage on Arweave?
Upload via Irys (formerly Bundlr Network) — L2 on top of Arweave. Key advantages:
- Instant confirmation (99.9% certainty immediately, finalization on Arweave in minutes to hours)
- Pay in ETH/MATIC/SOL instead of AR
- Batch upload of thousands of files via Irys SDK
Example batch upload via Irys
import Irys from "@irys/sdk"; const irys = new Irys({ url: "https://node1.irys.xyz", token: "ethereum", key: process.env.PRIVATE_KEY }); // Upload a single image const response = await irys.uploadFile("./images/1.png", { tags: [{ name: "Content-Type", value: "image/png" }] }); const permanentUrl = `https://arweave.net/${response.id}`; For a collection of 10,000 tokens: upload all images, get an array of txIds, form JSON metadata with "image": "https://arweave.net/TxId", upload metadata and get the base URI. The entire collection costs a fraction of monthly IPFS expenses. Uploading 10,000 JSON files takes less than 5 minutes via Irys SDK. Batch upload of 1000 files costs on average 0.01–0.05 ETH — significantly cheaper than monthly pinning of the same volume.
Which URI method to choose: manifest or individual txId?
| Characteristic | Irys manifest (uploadFolder) | Individual txIds |
|---|---|---|
| Number of IDs | 1 manifest ID | N txId per token |
| Gas | Low | Higher (mapping needed) |
| Flexibility | Only reveal via setBaseURI | Can update individual tokens |
| Finalization speed | Slightly longer | Faster |
For a standard generative collection with reveal, we use manifest + reveal via setBaseURI(manifestId). This saves gas and simplifies management.
Comparison: Arweave vs IPFS
| Criterion | Arweave | IPFS |
|---|---|---|
| Storage type | Permanent (200+ years) | Temporary (as long as pinned) |
| Payment | One-time fee | Monthly subscription |
| Guarantee | Crypto-economic | None — depends on third parties |
| Access speed | Low latency (gateways) | Depends on peers |
| Risks | Low (protocol economics) | High (pin service shutdown) |
Common mistakes when uploading to Arweave
-
Forgot to set Content-Type tags. Irys will not add them automatically. Always explicitly specify
Content-Typefor images and JSON. - Exceeding size limit. One file via Irys — up to 5 MB. For larger files, use chunked upload or compress images.
- Incorrect metadata.json format. Follow the ERC-721 standard:
name,description,image,attributes. Any deviation can break display in marketplaces.
What is included in the work
- Audit of current storage scheme and migration recommendations
- Setting up Irys SDK, topping up balance, batch upload of all files
- Generating JSON metadata with Arweave links, uploading metadata
- Creating manifest (uploadFolder) or array of txIds
- Updating smart contract (setBaseURI) and testing on testnet
- Documentation and instructions for managing the collection
Contact us for a consultation on your project — we will select the optimal storage scheme. Order Arweave integration and get permanent metadata storage with no monthly fees.







