The Throughput Problem
Arweave's base layer processes approximately 1,000 transactions per block. For a storage network handling millions of uploads, this creates a bottleneck. Without an additional layer, every small file, every NFT metadata upload, and every social media post would compete for limited block space.
The result: slow confirmation times and rising fees during peak usage. This is the same congestion problem that affects Ethereum during NFT mints and Solana during token launches.
What Bundling Solves
Bundling aggregates thousands of individual data items into a single Arweave base-layer transaction. A bundler collects uploads, packages them using the ANS-104 data item specification, and posts one transaction that contains all of them.
The result is dramatic:
- Speed: Your upload is available through gateways in seconds, not minutes
- Cost: Small uploads are free. The bundler absorbs the base-layer fee across thousands of items
- Reliability: The bundler guarantees settlement by re-posting until confirmed
- Scale: Applications can upload millions of items without congesting the base layer
How Turbo Works
ArDrive Turbo is the most widely used bundler on Arweave. It handles the majority of all uploads to the network. When you upload through Turbo:
- Your data is signed as an ANS-104 data item (a lightweight transaction format)
- Turbo returns a receipt immediately, and your data is available through gateways within seconds
- Turbo packages your data item with thousands of others into a single base-layer transaction
- That transaction is re-posted with each new Arweave block until it is confirmed onchain
Uploads under 500 KB are free through Turbo. Larger uploads can be paid in AR tokens, ETH, SOL, or by credit card through the Turbo top-up system.
ANS-104: The Data Item Standard
ANS-104 defines the format for bundled data items. Each data item has the same structure as a regular Arweave transaction: an owner, a signature, tags, and a data payload. The difference is that data items are nested inside a bundle transaction rather than posted individually to the network.
This means:
- Your data keeps its unique transaction ID
- Tags are fully queryable via GraphQL (content type, app name, timestamps, custom metadata)
- Data is served through gateways exactly like any base-layer transaction
- From the outside, there is no difference between a bundled item and a direct upload
The standard is open. Any bundler can produce ANS-104 bundles, and any gateway can unpack and serve them.
The Developer Experience
For developers, bundling is almost invisible. The Turbo SDK handles everything:
import { TurboFactory } from '@ardrive/turbo-sdk';
const turbo = TurboFactory.authenticated({ signer });
const response = await turbo.uploadFile({
fileStreamFactory: () => fs.createReadStream('./my-file.png'),
fileSizeFactory: () => fs.statSync('./my-file.png').size,
dataItemOpts: {
tags: [
{ name: 'Content-Type', value: 'image/png' },
{ name: 'App-Name', value: 'my-app' },
],
},
});
console.log(response.id); // Transaction ID, available immediately
You sign, upload, and get a transaction ID back. Turbo handles bundling, settlement, and re-posting. Your application does not need to manage any of this.
Why It Matters
Without bundling, Arweave would face the same throughput ceiling as any other L1 chain. Bundling turns Arweave into a high-throughput storage network that can handle millions of uploads per day while keeping the base layer lean and efficient.
Every major application on Arweave uses bundling: Metaplex NFT minting, ArDrive file storage, AO message logging, social platforms, and frontend deployments. It is the infrastructure layer that makes permanent storage practical at scale.
The Ecosystem
ArDrive Turbo is the largest bundler on Arweave, processing the majority of all uploads to the network. It offers a free tier for files under 500 KB and supports multi-currency payments including credit card. The ANS-104 standard is open, so any service can produce compliant bundles and any gateway can unpack and serve them. Your data ends up on the same Arweave blockweave regardless of how it gets there.