Traces

Traces keep track of the actions that modify the internal state of the EVM.

Learn more here.

Typically, trace_id for traces are unique, unless there are duplicate transactions on the blockchain.

Refer to Traces ID and Address for more information and examples.

Sample Query

Querying the latest trace transactions.

select *
  from ethereum.raw.traces
order by block_number desc 
limit 100

Table Columns

The example used is a trace that is part of a Uniswap swap transaction, between ETH and USDC. The sample values belong to a trace that accounted for a part of the total amount of Ether that was moved in this transaction.

Column NameDescriptionExample

transaction_hash

Unique identifier of the transaction that contains this trace.

0x9068357001dc45c59a0c0383860f25fd64daeef205f723c5cbd980f280baca38

transaction_index

The position of this transaction in the block that it belongs to. The first transaction has index 0.

62

from_address

The address of the sending party of this trace.

0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45

to_address

The address of the receiving party of this trace (null for contract creation).

0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

value

The amount of ether moved from the from_address to to_address.

3.40E+17

input

The bytecode of the call that is made to another smart contract.

0xd0e30db0

output

The bytecode answer the smart contract that was called gives back.

0x

trace_type

The value of the method such as call, create, create2, suicide.

call

call_type

REWARD_TYPE

call

reward_type

Populated when trace_type =reward. Possible values: block, uncle

gas

Gas provided with the trace call, in wei.

73,542

gas_used

The amount of gas consumed, in wei.

23,974

subtraces

Number of children traces.

0

trace_address

The address of the trace within the call graph. More detail to come soon.

0,0,2,0

error

Human readable developer error message. Examples: "Out of gas", "Reverted", "Bad instruction", "Bad jump destination"

status

Success status of the trace. Either 1 (success) or 0 (failure).

1

block_timestamp

The time when the block that contains this trace was included on the blockchain.

2022-09-16 04:59:59

block_number

The length of the chain, in blocks.

15,543,975

block_hash

Unique identifier of the block that includes this trace.

0xe3eb6f24b34ab179646608ca100a3cd1d2fd1144f83544d029c0352429371b6d

trace_id

Unique identifier for this trace. Generated by combining the trace_type, transaction_hash and trace_address.

call_0x9068357001dc45c59a0c0383860f25fd64daeef205f723c5cbd980f280baca38_0_0_2_0

selector

Selector of the txn.

0xd0e30db0

Additional Info

Trace Address field different from Etherscan

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