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

Columns
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

  1. transaction_hash: A unique identifier for each transaction. It is used to track and reference specific transactions within the blockchain.

  2. transaction_index: The relative position of a specific transaction in a block.

  3. from_address: The address of the sender or the contract from which the contract call or the trace was originated.

  4. 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.

  5. value: The amount of Ether transferred in a particular transaction. If it is 0, they may indicate an ERC20 transfer or simply a call.

  6. 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.

  7. output: The data returned by a contract function.

  8. 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.

  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.

  1. 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.

  1. gas: Amount of gas provided in the transaction during contract creation.

  2. gas_used: Amount of gas used in creation of the contract.

  3. subtraces: Number of child traces of the particular parent trace.

  4. 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.

  5. error: Errors encountered during execution of the transaction.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. last_modified: This typically indicates the time when a particular trace entry was last modified.

Last updated