Traces
The Ethereum Traces Table is a raw dataset that records step-by-step execution of transactions on the Ethereum blockchain. It is an essential tool for developers and analysts who need to deeply understand transaction behaviors and diagnose issues within the Ethereum network. The primary purpose of the Ethereum Traces Table is to provide a comprehensive view of the internal state changes and function calls that occur during the execution of transactions. This includes calls to other contracts, generation of logs, transfers of Ether, and more. Our Raw ethereum_traces dataset consist of the following columns with the corresponding data types:
Data Types
transaction_hash
string
transaction_index
bigint
from_address
string
to_address
string
value
double
input
string
output
string
trace_type
string
call_type
string
reward_type
string
gas
double
gas_used
double
subtraces
bigint
trace_address
string
error
string
status
bigint
block_timestamp
timestamp
block_number
bigint
block_hash
string
trace_id
string
last_modified
timestamp
Key Descriptions of Columns in Ethereum Traces Table
transaction_hash: A unique identifier for each transaction. It is used to track and reference specific transactions within the blockchain.
transaction_index: The relative position of a specific transaction in a block.
from_address: The address of the sender or the contract from which the contract call or the trace was originated.
to_address: The address to which the transaction or the call is directed to. This can either be the contract address or the receiver address.
value: The amount of Ether transferred in a particular transaction. If it is 0, they may indicate an ERC20 transfer or simply a call.
input: The data sent along with the transaction, typically containing encoded function calls and parameters. For a simple Ether transfer, input is basically 0x and if it is a contract call, first 4 bytes of the Keccak-256 hash of the signature is considered.
output: The data returned by a contract function.
trace_type: While, there are many types of traces, only 4 types are common.
A. CREATE: This type of trace occurs when a new smart contract is created on the blockchain.
B. CALL: This type of trace occurs when ETH is transferred between EOAs or to call other smart contract functions.
C. SUICIDE: This type of trace occurs when a smart contract is destroyed.
D. REWARD: This type of trace occured for coinbase transactions in ETH 1.
call_type: Only if the trace_type=CALL, we will have call_type. There are commonly 4 types of call.
A. CALL: This call_type is used to call another contract function and state change happens.
B. STATIC CALL: This call_type is used to call another contract function without any modification in the state.
C. DELEGATE CALL: This call_type is used to call another contract function and borrow the functionality of the contract.
D. CALL CODE: This call_type is deprecated in solidity 0.5.0 and replaced by DELEGATE CALL.
reward_type: reward_type is used to specify the type of reward offered to the miner during the execution of a block. There are 2 general types of reward:
A. BLOCK: The reward given to the miner for successfully mining a block. It typically includes the block subsidy (newly minted coins) and any transaction fees from the transactions included in the block.
B. UNCLE: The reward given for including an uncle block in the blockchain.
gas: Amount of gas provided in the transaction during contract creation.
gas_used: Amount of gas used in creation of the contract.
subtraces: Number of child traces of the particular parent trace.
trace_address: The order in which the traces occur in a transaction. They are represented in a tree like structure. You can read more about the traces and trace tree in our blogs.
error: Errors encountered during execution of the transaction.
status: Indicates the outcome of a specific transaction or operation whether it is successful or if it encountered an error during execution. 1 indicates the transaction is successful and 0 indicates the transaction failed.
block_timestamp: The exact date and time when the block was mined. This helps in tracking the block creation rate and understanding network activity over time.
block_number: A unique identifier for each block in the blockchain. It indicates the block’s position in the entire chain, starting from the genesis block.
block_hash: A unique hash of the block. It serves as the block’s fingerprint and is used to securely link blocks in cryptographic chains.
trace_id: A unique identifier for each trace in the transaction. It helps in uniquely identifying and referencing each specific trace entry within the larger set of traces.
last_modified: This typically indicates the time when a particular trace entry was last modified.
Last updated