Scalability is a primary concern when it comes to blockchain protocols, as it can determine the likelihood of long term success. This article delves into Arweave’s scalability and how it scales to storing all the data on the web. ### Permanence and Uniformity of Transactions Arweave’s scalability is derived, in part, from the permanence of its data set. Because all data is stored forever with a uniform set of rules and expectations, each data transaction can be processed and finalized with the same set of parameters. This uniformity enables the *bundling* of transactions, making it possible for multiple transactions to be combined together into one. This process is defined by **[Arweave Network Standard -104](https://github.com/joshbenaron/arweave-standards/blob/ans104/ans/ANS-104.md)**. We will revisit bundling later on in this article. To better understand transaction uniformity, it’s useful to contrast Arweave's decentralized permanent storage model with other models, such as contract-based storage where limited block space leads to fee markets to bid for transaction inclusion. Individual data items on contract-based systems need to be committed with qualifying information: how long the storage term is, who should store the data, how many replicas, etc. The effect of this is that each transaction needs to be adjudicated separately -- similar to the mechanisms used by smart contracts more generally. The variability of parameters used by contract-based storage negatively impacts its potential for scalability, because as the number of concurrent storage terms grows, so does the required computational power for maintaining the corresponding data items on the network. Instead of needing to adjudicate millions or billions of contracts which all have their own terms, Arweave has just one: pay once, store forever. Because Arweave’s only storage term is permanent there is no increase in bookkeeping or computation from adding data items to the network. Once included, every new data item gets incorporated into the same mining process as previous data items. The only mining resource that increases is the amount of drive space required to store a full dataset. How does Arweave accomplish this feat? Because the entire dataset is immutable it can be represented as a single uniform “data lake”, broken into 256KB chunks. These chunks can all be represented as a single merkle tree whose root and branches are updated with each new block added to the network. This uniform representation of the entire dataset enables the protocol to manage the proofs-of-storage produced by Arweave miners. It also eliminates the computational overhead of managing the bookkeeping of storage terms used by smart-contract based storage networks. ![](https://arweave.net/wz53_mwUocWBngkeSh8izf9ZDkFT1E1J3bpWWxhVqio) ### Infinite Scaling Using Recursive Bundles On Arweave, a potential scaling bottleneck occurs when payments are processed for adding data. Arweave is structured similarly to a blockchain and cannot process unlimited payments simultaneously. The network processes a maximum of 1000 transactions per block (including payments for data storage as well as token transfers), with a block time of 2 minutes. This is where bundling transactions becomes relevant. Bundles can contain an unlimited number of transactions, and only count as one Arweave transaction in a block. Each bundle is settled in one payment transaction on the Arweave network. A number of services now exist to perform this bundling service, for example **[Bundlr Network](https://bundlr.network/)** and **[EverVision HQ](https://twitter.com/everVisionHQ)** . Presently, they upload millions of pieces of data per day across just a few thousand Arweave payment transactions. Eventually, when Arweave reaches the scale of the centralized web, there will be more bundles being submitted than the 1000 transactions possible in Arweave blocks. At that point, because the bundles are recursive, they can be bundled together again! ![](https://arweave.net/xYu1_LdNxpkPEXs2j_915yrwPUeKyL03W9bb1mDoFCQ) This leads to trees of data with infinite depth that are committed to the network in a single Arweave transaction. This system could potentially ingest the entirety of the web's data in one bundled transaction! In summary, Arweave scales without fee markets, forever, thanks to trees of bundled data with infinite depth.