Traces ID and Address

Traces trace ID exceptions and trace address generation

Trace ID

Uniqueness Constraint:

Trace ID is the unique identifier for a trace.

Generated by combining the trace_type, transaction_hash and trace_address.

By default, trace ID should be unique for all traces on a particularly blockchain.


Exceptions can occur if there are duplicate transactions inherent on the blockchain itself.

The example below shows 3 transactions that share the same transaction hash.

As they also share the same trace address and trace type, the traces generated from this 3 transaction will be the same.

In this case, the first 2 transactions will have duplicate trace ID.

Note that across each EVM there might be slight differences in how these DUPE transactions and traces are manifested.







Trace Address

Trace Address field different from Block explorer

The number of traces Allium has indexed for this transaction is 12, whereas if you count the number of traces that Etherscan has on this page, you'll notice that it is 11. Etherscan has chosen to leave out certain types of traces and coupled with how trace addresses are generated, it will result in a different trace address numbering scheme.

In the example above, the trace in the example as indexed by Allium is {0,0,2,0} whereas on Etherscan, it's as follows:

Last updated