The IOTASear.ch tangle explorer allows searching for addresses, transactions and bundles.

an even more beautiful screenshot.

While the meaning of addresses and transactions seem clear to me, I am not aware of the purpose of bundles. What exactly is a bundle?

up vote 17 down vote accepted

Transferring IOTAs from one address to another requires several different transactions:

  • An output transaction that increments the recipient's balance by the desired amount.
  • (usually) 1-3 inputs that authorise the spending of the IOTAs from the sender's address(es)1.
  • (if necessary) a change transaction that sends any remaining amount to a new address owned by the sender2.

It is useful in many contexts to have a way of treating these transactions as an atomic unit, which is the purpose that bundles serve.

See https://iota.readme.io/v1.2.0/docs/bundles for more information.

1 Multiple transactions are usually necessary because the signature is too big to fit into a single transaction, depending on the security level of the input address. Once you start working with multisig addresses, the number of input signatures required can be quite... impressive.

2 Because of the way IOTA generates signatures for inputs, it is unsafe to spend from the same address multiple times. So, whenever you transfer IOTAs, the wallet will try to spend all of the IOTAs in each input address, and any remaining IOTAs will be sent to a new address under your control.

This cheat sheet present a bundle with :

  • 2 outputs: 100 iotas to address B and 202 iotas to address C.
  • the remainder : 49 iotas

The inputs are comming from 3 addresses: A1, A2 and A3.

In the example, all signatures expand on 2 blocks - except the output1 on 3 blocks -

enter image description here

credit to @abmushi (on slack) for the bundle cheat sheet :)

  • thanks to you and @abmushi (on slack). A question: What does the BranchTransaction of Tx[3] (tail) refer to? – Makan Tayebi Mar 9 at 15:51
  • @MakanTayebim it refer To a rando tip to approve – ben75 Mar 9 at 17:57
  • I realised a mistake in my comment: Tx[0] is the tail. NOT the Tx[3] – Makan Tayebi Apr 16 at 18:42

A user will usually broadcast a collection of multiple transactions (also called a bundle) when interacting with the network. One bundle could consist of

  1. Withdrawal transaction (acquire funds to be spent from some address)
  2. Payment transactions (pay some other address a sub or total amount of the funds withdrawn)
  3. Change transaction (deposit unspent funds back to one of the user's addresses)

Note that bundles are not restricted to a specific number of transactions. For exmaple, one could have a bundle that consists of just 1 transaction (when a value of 0 is "transferred") or even 100 (when withdrawing/sending from/to multiple addresses).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.