Traces
Traces keep track of the actions that modify the internal state of the EVM.
Typically, trace_id
for traces are unique, unless there are duplicate transactions on the blockchain. Which may occur for edge cases. Unless otherwise specified, all the EVM-trace data is fetched from debug_traceBlockByNumber
from geth client.
Table Columns
Unique Key: trace_id
block_number
NUMBER(38,0)
The length of the chain, in blocks.
block_timestamp
TIMESTAMP_NTZ(9)
The time when the block that contains this trace was included on the blockchain.
block_hash
VARCHAR(66)
Unique identifier of the block that includes this trace.
transaction_hash
VARCHAR(66)
Unique identifier of the transaction that this trace belongs to.
transaction_index
NUMBER(38,0)
The position of this transaction in the block that it belongs to. The first transaction has index 0.
from_address
VARCHAR(42)
The address of the sending party of this transaction.
to_address
VARCHAR(42)
The address of the receiving party of this transaction, typically a contract address for traces.
value
VARCHAR(16777216)
The amount of gas token moved from the from_address to to_address.
selector
VARCHAR(10)
4-bytes of the input data.
input
VARCHAR(16777216)
The bytecode of the call that is made to another smart contract.
output
VARCHAR(16777216)
The bytecode answer the smart contract that was called gives back.
trace_type
VARCHAR(16777216)
The value of the method such as call, create, create2, suicide.
call_type
VARCHAR(16777216)
reward_type
VARCHAR(16777216)
Populated when trace_type =reward. Possible values: block, uncle.
gas
NUMBER(38,0)
Gas provided with the trace call, in wei.
gas_used
NUMBER(38,0)
The amount of gas consumed, in wei.
subtraces
NUMBER(38,0)
Number of children traces.
error
VARCHAR(16777216)
Human readable developer error message. Examples: "Out of gas", "Reverted", "Bad instruction", "Bad jump destination"
status
NUMBER(38,0)
Success status of the trace. Either 1 (success) or 0 (failure).
trace_id
VARCHAR(16777216)
Unique identifier for this trace. Generated by combining the trace_type, transaction_hash and trace_address.
trace_address
VARCHAR(16777216)
The address of the trace within the call graph.
before_evm_transfers
VARIANT
EVM transfers state before the trace execution. (Only applicable for Arbitrum Orbit Chains)
after_evm_transfers
VARIANT
EVM transfers state after the trace execution. (Only applicable for Arbitrum Orbit Chains)
_created_at
TIMESTAMP_NTZ(9)
Timestamp of the entry creation.
_updated_at
TIMESTAMP_NTZ(9)
Timestamp of the entry update.
Additional Info
Trace Address field different from Etherscan/Explorers
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/Block Explorer it's as follows:
Last updated
Was this helpful?