22

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?

2
  • Here's an answer describing bundle, branch and trunk iota.stackexchange.com/a/1212/868
    – Daniel F
    Jan 9, 2018 at 13:20
  • I’m voting to close this question because it is about the legacy protocol and given the latest updates it might make sense to only keep recent Shimmer, ShimmerEVM and IOTA Chrysalis questions Apr 28 at 7:01

3 Answers 3

20

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/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.

11

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 :)

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

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 agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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