Bundling

What is bundling?

In Arweave world bundling means putting multiple files (called data items) into one bag (a bundle) and posting it as one Arweave transaction. Each file in the bundle is signed. In principle bundle transaction is same as standard Arweave transaction - it has tags in header and binary in body. What makes it special is that it follows accepted Arweave standard - ANS-104. This standard allows for combining files signed files (with tags included) into single Arweave transaction and posting it as such to Arweave node. That standard puts additional complexity on Arweave chain indexers to unbundle the transactions when detecting bundles and indexing data items.

Besides additional complexity bunding brings advantages:

  • Allows for separation of roles: signer & payer. This is how Akord works! You sign your data -> we post it to Arweave and paying with our Arweave hot wallet so that you don't need to maintain it.

  • Reduces risk of dropping transaction. Imagine uploading thousands of files: simple networking problems may cause few files to be rejected. It's more reliable to bundle e.g. 500 files into single transaction. See example on viewblock

  • Guarantees fixed, deterministic transaction ID after signing the file (data item ID). Since data items are treated as normal Arweave transactions by indexers, the moment you sign the binary stamps the identifier to the resulting data item. That identifier is transaction ID of resulting data item transaction

Bundlers

Who is bundling data in Arweave ecosystem? Technically any user of Arweave network can sign files, bundle data items according to ANS-104 standard and post it as such to Arweave network. That process is streamlined but its completely irrelevant for users of Arweave network that simply prefer to use Arweave and not develop code with it.

Akord runs Arweave bundling service that takes care of bundling and posting your signed files. Here are few technical rules that we apply in bundling process:

  • bundle can have maximum 150mb (files bigger than that are posted as single data items in transaction)

  • bundle can be composed of maximum 500 data items

  • bundles are composed in 2 minutes time window - this does not mean we post bundles exactly every 2 minutes. That may be the case but not necessary. In simply depends on the traffic. We open "bundling" window with the moment of first upload and close it after 2 minutes if not closed before by any other factor.

Last updated