Nested Bundles Deployment with Warp Contracts
Warp offers an unparalleled way of creating smart contracts on Arweave, and what it offers is ever-evolving.
Recently, with their release of their Warp SDK 1.2.54, all the contract and contract source deployment methods have been moved to a dedicated plugin – Warp Contracts Plugin Deploy – which utilises the ANS-104 (v2) Nested bundles concept. Nested Bundles offer unlimited nesting depth, allowing Arweave to scale without limits. The implementation of them into the Warp SDK greatly improves the experience for both developers and users by offering instant contract availability and effortless contract deployment.
Want to learn more?
Let’s dive in!
Nested Bundles using Warp Contracts
Nested bundles have been a core feature of Arweave pretty much from the get go. After the discovery of a small bug, the standard was later fixed and improved upon via a collaboration between multiple Arweave ecosystem developers and projects (Warp, Bundlr, and AR.IO) and published under the ANS-104 v2 standard.
Now, as of Warp SDK 1.2.54, all contract and contract source deployment methods made using the SDK have been moved to a dedicated plugin which utilises the ANS-104 (v2) Nested Bundles concept.
The developer experience is almost identical to before, with the only difference being a wallet argument that must be wrapped in one of the plugin’s Signer implementations. The nested bundles format facilitates contract and contract source deployment.
The introduction of nested bundles in ANS-104 (v2) brought several benefits, including enabling direct retrieval of transaction data from the Arweave gateway. This means that Arweave dApps become extremely scaleable as Warp supports the standard. Bundling allows for multiple data items to be written into one top-level transaction. A data item differs from a regular transaction in that it does not allow the transfer of AR tokens and passing rewards, but it has most of the transaction’s properties, such as owner, data, tags, and ID. Essentially, the nested bundles concept means that such a data item of a bundle can also be a bundle containing other data items. According to the ANS-104 v2 standard, it can lead to theoretically unbounded levels of nesting.
You can read the specification for the nested bundles standard in ANS-104: Bundled Data v2.0 – Binary Serialization.
Want to learn more?
- Full documentation can be found in the Warp Academy.
- If you are interested in how it works under the hood, refer to the Warp Bundled Contract Format chapter.
- Release note.
So Arweave can scale?
There is a major misconception that Arweave can’t scale due to the base layer imposing a limit of 1,000 transactions per block, resulting in an average of 8 transactions per second at a block time of 2 minutes. However, this is only part of the story. The Arweave platform’s bundling feature allows multiple requests to be packed into one transaction, offering an arbitrary scaling of data uploads. With this feature, Arweave can theoretically scale without any limits. Nested bundles take this concept even further, allowing for unlimited nesting depth and making Arweave even more dev-friendly, as they enable developers to write multiple data items into one top-level transaction, with each data item having most of the transaction’s properties.
Telegram / Discord / Twitter