ETH Data Model
Version : v1.0 (August-2023)
Transition Announcement: Information here is provided for preview purposes only. Ethereum Data Warehouse will be available for access in Snowflake Marketplace and will replace Ethereum Data Warehouse beta.
Column | Data Type | Layer | Description |
---|---|---|---|
block_number | number | RAW | Number of the block. Numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_hash | varchar | RAW | Hash of the block content (KECCAK-256). Unique for every block. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
uncles | object | RAW | Array of uncles hashes. It is empty if no uncles of the block. |
miner | varchar | RAW | Address of the miner (for the PoW consensus mechanism) or validator (for the PoS consensus). The receiver of gas and other fees related to creation of the block. |
gas_limit | number | RAW | Maximum amount of gas that can be included in the block, set by the network, expressed in gas units. |
gas_used | number | RAW | Amount of gas actually consumed by the block execution, expressed in gas units. |
tx_count | number | Count of transactions included in the block, successful or reverted. For empty blocks, tx_count = 0 | |
base_fee_per_gas | number | RAW | Minimum multiplier for used gas in order to include a transaction in a block (NULL for blocks before London hard fork). |
withdrawals | object | RAW | Array of block header Ether withdrawals.
For every withdrawal :
|
difficulty | number | RAW | Amount of effort required to mine a new block, set by the network (used in PoW consensus, not used for PoS consensus (after the Shanghai hard fork). |
size | number | RAW | Size of the block in bytes. |
excess_data_gas | number | RAW | Running total of excess data gas consumed on chain since EIP-4844 was activated. If the total amount of data gas is below the target, excess_data_gas is capped at zero. |
decoded | boolean | TECH | Technical field. Defines processing status of a block. |
Column | Data Type | Layer | Description |
---|---|---|---|
block_number | number | RAW | Number of the block. Numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
tx_hash | varchar | RAW | Hash of the transaction (KECCAK-256). Unique for every transaction. |
call_id | varchar | TECH | Identifier of the call, constructed by concatenating block number, transaction number and call path. |
call_path | varchar | TECH | Position of the call in the transaction execution tree:
|
depth | number | TECH | Depth of the call in the transaction execution tree, incremental, starting at 0 for top level calls (call_path='0_2_1' depth= 3 means three level down in the execution tree). |
call_type | varchar | RAW | Possible call types. Can take one of the following values:
|
from_address | varchar | RAW | Address of the call sender (calling address):
|
from_name | varchar | DECODED | Name of the call sender (calling address) as decoded by Token Flow processes (ABI or inferred from similar functions). Contains calling address if not found. |
to_address | varchar | RAW | Address of the call receiver (called address):
|
to_name | varchar | DECODED | Name of the call receiver (called address) as decoded by Token Flow processes (ABI or inferred from similar functions). Contains called address if decoding was unsuccessful. |
function_signature | varchar | RAW | Binary signature of the called function. Empty when no function is called. |
function_name | varchar | DECODED | Name of the function, decoded by Token Flow processes (ABI or inferred from similar functions). Contains function_signature if decoding was unsuccessful. |
call_value | number | RAW | Ether amount transferred, in WEI. Division by 10^18 to obtain Ether amount. 0 if no Ether transfer happened. |
arguments | object | DECODED | List of function arguments as key:value pairs as decoded by Token Flow processes (ABI or inferred from similar functions). Contains call_data if decoding was unsuccessful. |
outputs | object | DECODED | List of function outputs as key:value pairs, as decoded by Token Flow processes (ABI or inferred from similar functions). Key is the output name and value is the decoded value. Contains a single output_data argument if decoding was unsuccessful. |
gas_limit | number | RAW | Gas staked by the call before its execution. Maximum amount that can be used before the call is reverted, expressed in gas units. |
gas_used | number | RAW | Gas amount actually used by the call, expressed in gas units. |
gas_refund | number | RAW | Gas amount returned after the call execution, expressed in gas units. |
created_address | varchar | RAW | Created address in the case of CREATE call. Empty for any other call type. |
exception_error | varchar | RAW | Error description for failed calls, as generated by the Ethereum Virtual Machine. Empty for successful calls. |
revert_reason | varchar | RAW | Error description for reverted calls, as provided by the smart contract. Empty for successful calls. |
executed | boolean | RAW | Flags successfully executed (true) or failed (false) calls. |
successful | boolean | RAW | Flags persistent (true) or reverted (false) calls. Reverted calls can originate from technical failures (code errors), gas limits (more gas needed than was staked) or contract logic. |
order_index | number | TECH | Technical field. Sequence of actions (call, events, diffs) that happened in a block. |
decoded | boolean | TECH | Technical field. Flags the success (true) or failure (false) of the decoding process. |
abi_guessed | boolean | TECH | Flags whether the function semantics used for decoding was taken from the called contract's ABI (False) or it was inferred from other contracts (True). |
Column | Data Type | Layer | Description |
---|---|---|---|
block_number | number | RAW | Number of the block. Numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
tx_hash | varchar | RAW | Hash of the transaction (KECCAK-256). Unique for every transaction. |
call_id | varchar | TECH | Identifier of the call, constructed by concatenating block number, transaction number and call path. |
event_id | varchar | TECH | Identifier of the event, constructed by concatenating block number and order_index. |
log_index | number | RAW | Index of the successful event within a block, stating at 0. Reverted events are not stored on-chain and do not have log_index. |
contract | varchar | RAW | Smart contract address that emitted the event. For DELEGATECALLS, events are emitted by calling contracts and the ABI is defined by the called contract. |
contract_name | varchar | DECODED | Name of the smart contract that emitted the event, as decoded by Token Flow processes (ABI or inferred). Contains contract address if not found. |
implementation | varchar | RAW | Smart contract address that provides the event semantics (ABI) - called contract for DELEGATECALLS or calling contract for the rest of the call types. |
event_signature | varchar | RAW | Raw hexadecimal indexed content of the event (topic 0). |
event_name | varchar | DECODED | Name of the event, as decoded by Token Flow processes (ABI or inferred from similar functions). Contains event_signature if not found. |
parameters | object | DECODED | List of event parameters as key:value pairs, as decoded by Token Flow processes (ABI or inferred from similar functions). Key is the output name and value is the decoded value. Contains 'topic_parameter_1-3' and 'data_parameter_0-n' argument if decoding was unsuccessful. |
successful | boolean | RAW | Flags persistent (true) or reverted (falls) calls. Reverts can originate from technical failures (code errors), gas limits (more gas needed than was staked) or contract logic. |
order_index | number | TECH | Technical field. Sequence of actions (call, events, diffs) that happened in a block. |
decoded | boolean | TECH | Technical field. Flags the success (true) or failure (false) of the decoding process. |
abi_guessed | boolean | TECH | Flags whether the event semantics used for decoding was taken from the implementation contract's ABI (False) or it was inferred from other contracts (True). |
Column | Data Type | Layer | Descriptipn |
---|---|---|---|
block_number | number | RAW | Number of the block. Numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
tx_hash | varchar | RAW | Hash of the transaction (KECCAK-256). Unique for every transaction. |
tx_index | number | RAW | Index of the transactions within a block, starting at 0. |
tx_type | number | RAW | Transaction type. Can take one of the following values:
|
from_address | varchar | RAW | Address of the transaction sender (calling address). It is always an Externally Owned Address. |
from_name | varchar | DECODED | Name of the transaction sender (calling address) as decoded by Token Flow processes (ABI or inferred from similar functions). Contains calling address if not found. |
nonce | number | RAW | Sender counter of signed transactions, used to avoid sending the same transaction twice. |
to_address | varchar | RAW | Address of the transaction receiver (called address):
|
to_name | varchar | DECODED | Name of the transaction receiver (called address) as decoded by Token Flow processes (ABI or inferred from similar functions). Contains called address if decoding was unsuccessful. |
function_signature | varchar | RAW | Binary signature of the called function. 0x in case of pure Ether transfers. |
tx_value | number | RAW | Ether amount transferred, in WEI. Division by 10^18 to obtain Ether amount. 0 if no Ether transfer happened. |
gas_limit | number | RAW | Gas staked by the transaction before its execution. Maximum amount that can be used before the transaction is reverted, expressed in gas units. |
gas_price | number | RAW | Ether amount the transaction sender is willing to pay per unit of gas as a fee to the miner. |
gas_used | number | RAW | Gas amount actually used by the transaction, expressed in gas units. |
gas_refund | number | RAW | Gas amount returned after the transaction execution, expressed in gas units. |
exception_error | varchar | RAW | Error description for failed transactions, as generated by the Ethereum Virtual Machine. Empty for successful transactions. |
revert_reason | varchar | RAW | Error description for reverted transactions, as provided by the smart contract. Empty for successful transactions. |
successful | boolean | RAW | Flags persistent (true) or reverted (false) calls. Reverted calls can originate from technical failures (code errors), gas limits (more gas needed than was staked) or contract logic. |
max_fee_per_gas | number | RAW | Maximum fee the transaction sender is willing to pay for the gas (base fee + priority fee). |
max_fee_per_data_gas | number | RAW | Gas "tip" included in the transaction to additionally incentivise miners. |
max_priority_fee_per_gas | number | RAW | Maximum amount of gas paid for the blobs of data stored on-chain. |
decoded | boolean | TECH | Technical field. Flags the success (true) or failure (false) of the decoding process. |
Column | Data Type | Layer | Description |
---|---|---|---|
block_number | number | RAW | number of the block. numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
tx_hash | varchar | RAW | Hash of the transaction (KECCAK-256). Unique for every transaction. |
storage_diff_id | varchar | TECH | Identifier of the storage_diff, constructed by concatenating block number, order index and sequential number of variable in a single diff. |
call_id | varchar | TECH | Identifier of the call, constructed by concatenating block number, transaction number and call path. |
contract | varchar | RAW | Smart contract address that the change applies to. |
contract_name | varchar | DECODED | Name of the smart contract that the change applies to, as decoded by Token Flow processes (ABI or inferred). Contains contract address if not found. |
implementation | varchar | RAW | Implementation address of the contract in case of proxy or implementation pattern. |
location | varchar | DECODED | Pre-hashed memory location, as decoded by Token Flow processes (ABI or inferred). Includes the variable name and keys used for mappings. |
variable | varchar | DECODED | Variable name, as decoded by Token Flow processes (ABI or inferred). |
variable_type | varchar | DECODED | Decoded variable type. Can take one of the following values:
|
slot | varchar | RAW | Memory slot number. Sequential position of the variable in the smart contract code. |
hashmap_keys | object | RAW | Array of keys used for addressing the hashmap. |
structs | object | DECODED | Names of structures defined in the smart contract code. |
prev_value | varchar | DECODED | Decoded storage value before the change. |
curr_value | varchar | DECODED | Decoded storage value after the change. |
successful | boolean | RAW | Flags persistent (true) or reverted (false) changes. Reverted changes can originate from technical failures (code errors), gas limits (more gas needed than was staked) or contract logic. |
order_index | number | TECH | Technical field. Sequence of actions (call, events, diffs) that happened in a block. |
decoded | boolean | TECH | Technical field. Flags the success (true) or failure (false) of the decoding process. |
Column | Data Type | Layer | Description |
---|---|---|---|
block_number | number | RAW | number of the block. numbering is incremental, starting at 0 (Genesis) with new blocks added at the end of the chain. |
block_timestamp | timestamp_ntz | RAW | Timestamp of the block. Unique for every block and inherited by calls, events, transactions and diffs happening in the same block. |
tx_hash | varchar | RAW | Hash of the transaction (KECCAK-256). Unique for every transaction. |
state_diff_id | varchar | TECH | Identifying of the state_diff, constructed by concatenating the block number, the call path and order index fields. |
call_id | varchar | TECH | Identifier of the call, constructed by concatenating block number, transaction number and call path. |
address | varchar | RAW | Blockchain address that the change applies to. |
state_field | varchar | DECODED | Name of the state field that is being changed. Can take one of the following values:
|
reason | varchar | DECODED | Reason for the state change. This field should be used in combination with state_field. Can take one of the following values, depending on the name of the state field:
|
prev_value | varchar | DECODED | State field value before the change. |
curr_value | varchar | DECODED | State field value after the change. |
successful | boolean | RAW | Flags persistent (true) or reverted (false) calls. Reverted calls can originate from technical failures (code errors), gas limits (more gas needed than was staked) or contract logic. |
order_index | number | TECH | Technical field. Sequence of actions (call, events, diffs) that happened in a block. |
Last modified 1mo ago