Most storage is rented: stop paying and your files go away. Arweave sells storage the other way round. You pay once, up front, and the network commits to keeping the data for as long as it runs. That works because of an economic bet about the future cost of disks and a mining design that rewards miners for actually holding the data.
Pay once: the storage endowment
When you upload to Arweave, the fee is calculated to cover storing that data, with many copies, for a very long time (the design targets about 200 years) at today's storage prices. A small part of the fee goes to miners immediately. Most goes into a protocol-controlled endowment.
Miners are paid from block rewards and fees. Only if those ever fall short of the real cost of storage does the protocol start releasing tokens from the endowment.
The key assumption is that storage keeps getting cheaper. The cost of storing a gigabyte for a year has fallen dramatically over decades. Arweave prices in a decline far more conservative than the historical trend, so the endowment should grow in real terms. If storage prices stopped falling for a long time, or the AR token lost most of its value, the endowment would be drawn down faster. That is the risk you accept.
What it costs
Fees are priced in AR, but the target is a stable cost in real storage terms, so the fiat price per gigabyte moves with the AR price and with network parameters. Don't rely on a figure from an article; ask a gateway:
curl https://arweave.net/price/1048576
# returns the fee in winston for 1 MiB (1 AR = 1,000,000,000,000 winston)
As a rule of thumb, Arweave is expensive compared with one month of cloud storage and cheap compared with decades of it. It suits small, valuable data (metadata, documents, images, app bundles) better than bulk video archives.
The blockweave and SPoRA
Arweave's chain is a blockweave. Each block links to the previous one, as in any blockchain, and mining also requires data from randomly chosen earlier parts of the weave.
Succinct Proofs of Random Access (SPoRA) make that concrete. To attempt a block, a miner needs to read random chunks of historical data and include proof it had them. A miner that stores more of the weave locally, and can read it quickly, gets more chances to win. A miner that tries to fetch data from the network on demand is far too slow to compete. So the incentive to mine becomes an incentive to replicate the data, especially data few others hold.
Later versions of the protocol refined this so that the advantage comes from storing more distinct copies, not from buying faster hardware. The principle is unchanged: mining rewards go to those who hold the data.
Bundlers: how most uploads actually happen
Writing each file as its own base-layer transaction is slow and needs an AR wallet. Most apps use a bundler instead:
- You sign a data item (a file plus tags) with your key. Many bundlers accept Ethereum or Solana keys, not just Arweave keys.
- The bundler gives you an ID and a signed receipt immediately.
- It packs thousands of data items into one Arweave transaction using the ANS-104 bundle format and pays the AR fee.
Bundlers often let you pay in other tokens or by card. Turbo, from the ArDrive / ar.io team, is widely used. Others have come and gone; Irys (formerly Bundlr) was a major one but has since shifted focus to its own chain. Whatever you use, check that it settles to Arweave itself and that you can find your data by its ID afterwards.
Uploading directly with arweave-js is still useful for understanding the model:
import Arweave from "arweave";
import { readFileSync } from "node:fs";
const arweave = Arweave.init({ host: "arweave.net", port: 443, protocol: "https" });
const key = JSON.parse(readFileSync("wallet.json", "utf8")); // keep this file secret
const data = readFileSync("./metadata.json");
const tx = await arweave.createTransaction({ data }, key);
tx.addTag("Content-Type", "application/json");
console.log("fee (AR):", arweave.ar.winstonToAr(tx.reward));
await arweave.transactions.sign(tx, key);
const res = await arweave.transactions.post(tx);
console.log(res.status, `https://arweave.net/${tx.id}`);
For large files, use arweave.transactions.getUploader so the data is sent in resumable chunks.
Gateways, IDs and ar://
Every upload gets a 43-character transaction ID (or data item ID). That ID is the permanent reference to the data. A gateway serves it over HTTP:
https://arweave.net/<id>
Other gateways, including those in the ar.io network, serve the same ID at their own domains. Some wallets and apps resolve ar://<id> URIs through a gateway of their choice. As with IPFS, store ar://<id> or the bare ID in contracts and metadata, not one gateway's URL. Tags you attach (such as Content-Type or an app name) can be searched through gateway GraphQL endpoints, and ArNS gives human-readable names that point to IDs.
Upload confirmation takes a few blocks. Bundled items are usually readable from gateways quickly, but final settlement on Arweave can lag, so wait for confirmation before deleting your only local copy.
AO, briefly
AO is a compute system built on Arweave. Programs run as processes that communicate by messages, and every message is stored permanently on Arweave, so anyone can replay a process's history and check its state. It went live on mainnet in 2025. You don't need it to store files, but it's the reason "Arweave" now also means smart contracts and agents.
Arweave vs IPFS vs Filecoin
| Arweave | IPFS | Filecoin | |
|---|---|---|---|
| Payment | Once, up front | None built in; you or a pinning service keep it | Per deal, renewed as deals expire |
| Duration | Designed to be permanent | While someone pins it | Deal term (months to years), renewable |
| Addressing | Transaction ID | Content hash (CID) | CID (payload) and piece CID |
| Incentive to store | Mining requires stored data | None | Proofs plus collateral |
| Deleting | Not possible | Stop pinning everywhere | Let deals expire |
| Good for | Permanent records, NFT media, archives | Distribution, caching, mutable apps | Large datasets, cheaper long-term storage |
Many projects combine them: IPFS for fast access, Filecoin or Arweave for durability.
Permanent means you can't delete it
There is no delete button. Once data is on Arweave, it is replicated by miners you don't know, in jurisdictions you don't control.
- Never upload personal data you may be legally required to erase. Privacy laws such as the GDPR's right to erasure are hard to reconcile with permanent storage.
- Never upload secrets: private keys, API tokens,
.envfiles. Test uploads are permanent too. - Encryption only delays exposure. Encrypted data stays public forever, and today's encryption may be breakable in decades.
- Gateways and miners can filter content. Operators may refuse to store or serve material under their own content policies or local law, so "permanent" describes the network as a whole, not every gateway.
Summary
| Question | Answer |
|---|---|
| How is it paid for? | One up-front fee, mostly into an endowment |
| Why would it last? | Mining requires stored data; the endowment covers falling storage costs |
| What does it cost? | Ask a gateway's /price/{bytes} endpoint; it varies with AR |
| How do I upload? | Usually through an ANS-104 bundler |
| Biggest caveat | Nothing can ever be deleted |
Get the weekly commit
New blockchain deep dives every week.