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:

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.

985

None_0x9ed8f713b2cc6439657db52dcd2fdb9cc944915428f3c6e2a7703e242b259cb9_

19022

None_0x9ed8f713b2cc6439657db52dcd2fdb9cc944915428f3c6e2a7703e242b259cb9_

45036

create_0x9ed8f713b2cc6439657db52dcd2fdb9cc944915428f3c6e2a7703e242b259cb9_

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