Traces ID and Address
Traces trace ID exceptions and trace address generation
Last updated
Traces trace ID exceptions and trace address generation
Last updated
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 particular blockchain.
Exceptions can occur if there are duplicate transactions inherent in 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 these 3 transaction will be the same.
In this case, the first 2 transactions will have duplicate trace IDs.
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_ |
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: