TransactionIdentifier - Multiple Transactions with Same ID

The specification for TransactionIdentifier states “Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier.” Am I reading this correctly that each transaction in a block is assigned the same ID? Does this imply that in most cases there will be multiple transactions with the same identifier?

:wave: Welcome to the community, @danforbes!

You are not reading that point correctly (looks like we have some clarifications to make on the site :man_facepalming: ).

Normally, each transaction in a block has a unique TransactionIdentifier. However, some networks have a notion of “block events” where some interesting Operation occurs outside of the context of any network-defined transaction (like a block reward in Ethereum). The snippet you asked about relates to this case. You can find an example of how we populate Ethereum blocks here (specifically the “block reward transaction”):

At this time, we error when encountering a block that contains multiple transactions with the same TransactionIdentifier. We consider BlockIdentifier:TransactionIdentifier to be a globally unique identifier for any transaction. In practice, this means you can have transactions with the same TransactionIdentifier in different blocks but not the same block.

1 Like