Node 2 is ideal for early-stage projects, while larger projects typically prefer Node 1 as it can scale to a higher TPS. Uploads of less than 100 KiB are currently free on Node 2.
Nodes maintain separate funding balances; fund the node you intend to upload to.
You can request it from the Bundlr gateway with an URL in this format. Replace
txid with your transaction id.
This is a public good for users to be encouraged to try Bundlr.
When using Bundlr in the browser, you can either install using npm / yarn if you’re using a framework or load via a UMD if you’re using VanillaJS. To load via a CDN, include the following URL
Include via a script tag (in the head section of your main html file).
The additional fees cover the value-added services that Bundlr offers on top of Arweave including guarantees on finalization and seeding of data to miners, instant uploads via optimistic finalization, instant retrieval via Optimistic GraphQL and the Optimistic Cache, and also covers the risk we assume by offering payments in 14 different tokens.
It's important to recognize that Bundlr's pricing structure differs from Arweave's. Where Arweave charges storage fees in 256 KiB chunks, Bundlr charges on a per-byte basis, with a premium on top of Arweave's rates. Consequently, for uploads less than 200KB where Bundlr is a cheaper option.
For a comprehensive understanding of our fee structure, please refer to our documentation.
Bundling aggregates multiple transactions into a single top-level bundle before storing on Arweave. Nested bundles are transactions in a bundle that contain another bundle, not just a single upload. As Arweave has a limit of 1000 transactions per block, the use of bundles and nested bundles exponentially increases the number of transactions that can be posted per block.
For more information see the ANS-104 Bundle spec.
This is an indication you haven’t funded a node yet or haven’t funded enough to cover the cost of your upload. When uploading to Bundlr, you first connect a node and then fund that node. Balances are not shared between nodes, so if you’re uploading to Node 1, you will need to fund Node 1. You can fund the node in any of the tokens we support, and when working with our Devnet, you fund with free faucet tokens like Mumbai MATIC (opens in a new tab), Sepolia ETH (opens in a new tab) or SOLANA (opens in a new tab).
To check the cost of a given upload, use our
<uploadFile> is one by one.
<uploadFolder> uploads all + a manifest. A manifest is a way to describe a directory accessible via
After a successful folder upload, two files are written to your local project directory [folder_name].csv and [folder_name].json, each contains the transaction id for each file uploaded. That transaction id can be used to retrieve the uploaded data by forming an URL with this format:
[https://arweave.net]/[transaction-id]. You can also retrieve the uploaded data using the manifest id combined with the original relative file URL.
We have a detailed guide here
Bundlr and WebBundlr are fully compatible with React. However, if you are using npx create-react-app, you will need to do a few extra steps when setting up your project. We have a fully detailed recipe here.
We support a wide variety of providers and have code ready for you to copy and paste into your project.
Yes. You can host static websites. We have a detailed recipe on how to do it here.
Arbundles is a package designed to create cryptographically verifiable ANS104 bundles with supported cryptocurrencies and is specialized for this use case. The js-client is a client designed to allow you to programmatically interact with bundler nodes, including funding, withdrawals, and uploads.
Yes. It is possible with Warp.cc
Optimistic finalization is an incentive mechanism used by Bundlr to provide instant upload times.
When working directly with Arweave, a block is considered confirmed after 50 block confirmations. Data is considered seeded after it is stored by a minimum number of miners. This all can take up to to 100 minutes.
When you post a transaction to Bundlr, you are given back a signed receipt from the node you upload to. At this point, we can optimistically consider the transaction final because there is a greater financial incentive for nodes to behave honestly than there is for malicious behavior. If your transaction does not make it to Arweave, you can submit your transaction receipt to Bundlr and that node’s stake gets slashed.
When you post a transaction, a set of validators co-sign the transaction which acts as a proof of existence/data availability. At that point, if a bundler does not get the data on-chain, the bundler’s stake in question is slashed.
Is it possible to assign an api key to a funded Bundlr account so that I as a service provider can pay for my client's uploads?
No, but it is possible to pay for your client's uploads using Server-Side Signing.
Server-Side Signing is a method that allows you to sign and pay for your user’s data securely without exposing your private key. It allows you to add gassless transactions to your dApp.
Solana (devnet), Sepolia ETH, Matic, Fantom, BNB, Chainlink, Avalanche, Near, Algorand, arbEth, Aptos.
If you add the required SmartWeave tags to your bundlr transaction, it will allow you to interact with smartweave contracts.
No. The nodes are separate from each other. You can only upload to the actual nodes you have funded.
There is no limitation on the number of requests from one IP to a node.
Yes. You can create/sign/upload transactions in multiple steps.
It is 32 bytes base64url encoded.