IOTA Tutorial 13 | Rebroadcast, reattach and promote

IOTA Tutorial

Rebroadcast, reattach and promote

In this video series different topics will be explained which will help you to understand IOTA. It is recommended to watch each video sequentially as I may refer to certain IOTA topics explained earlier.


When a transaction is send to a node it is possible that the node neighbours did not receive the transaction. Reasons for this to happen are for example, the node the wallet is connected to, went offline after the transaction is received or the node is severely overloaded. This situation can be resolved by rebroadcasting the transaction. This basically means sending the exact same transaction to the node and all the node’s neighbours again. In Javascript, to rebroadcast a transaction use the “broadcastBundle” API call. The same transaction bundle is send to the node which in turn sends it to the node neighbours.

Most of the time a transaction will be received by the node and its neighbours. Unless you are using your own full node and know that a transaction was not broadcast, there is little use for rebroadcast. Instead of using rebroadcast most users will benefit by using reattach or promote to get their transaction accepted by the network.


If the number of transactions on the IOTA network is low and a submitted transaction is not confirmed within the first 30 minutes, this transaction will increasingly unlikely to get approved. The transaction will remain pending. This is because the tip selection prefers newer transactions instead of older ones. By reattaching this transaction to the Tangle you create a new transaction which is more likely to get confirmed by other transactions. Reattaching a transaction means creating a new transaction with the same signed bundle as the original transaction.

The trunk and branch transaction are not included in the signed bundle. Two new random tips are picked and used in the new transaction and Proof of Work has to be done again. The transactions inside the transaction bundle have different hashes, trunkTransactions, brachTransactions, attachmentTimestamp and nonces.

When an user reattach a pending transaction, the new transaction is attached to a different part of the Tangle and the reattached transaction shows up as a new transaction in the wallet transaction history. In Javascript, to reattach a transaction use the “replayBundle” API call. Online tools are available where anyone can reattach a transaction on the Tangle, all that is required is the tail transaction hash (currentIndex=0).

The original transaction can be reattached or you can reattach the reattached transaction. Reattaching a transaction creates a double spend situation but only one can ever confirm. The recommendation is to keep reattaching every 30 minutes that a transaction remains pending. Chances of confirmation are significantly increased with each reattachment.


As mentioned earlier the tip selection prefers newer transactions instead of older ones. When a pending transaction is promoted it creates a zero value transaction which will both validate the transaction and the current milestone. The current milestone is directly or indirectly referenced. The zero value transaction is now the top of the Tangle and is more likely to get confirmed by other transactions. Promoting a pending transaction is more effective than reattaching a pending transaction. I If you have the choice, select promote. In Javascript, to promote a transaction use the “promoteTransaction” API call. You can keep promoting until your transaction confirms.


In the future there will be no need for manual reattach or promote as this is going to happen automatically under the wallet’s hood. If more people use the Tangle, more transactions (meaning more tips) are created. The transactions are getting confirmed without the use for reattaching or promoting.


You might also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More

Did you know?

Buy in without the stress of trying to time the market

when you setup a savings plan. If you haven’t started a plan yet, head to your Bitpanda account to get started!

Purchasing cryptocurrencies comes with a number of risks.
Never invest money that you can't afford to lose.

You can automatically invest

in IOTA with Bitpanda Savings!