Skip to main content
Schema: hyperevm.core Table: fact_blocks Type: Table

What

This table contains block-level data for EVM blockchains, providing a complete record of all blocks produced on the chain. Each row represents one block with its associated metadata, transactions, and gas metrics.

Key Use Cases

  • Analyzing gas price trends and network congestion over time
  • Tracking block production rates and miner/validator performance
  • Monitoring network upgrades and their impact (e.g., EIP-1559, EIP-4844)
  • Calculating transaction throughput and network utilization
  • Identifying uncle blocks and chain reorganizations

Important Relationships

  • Join with fact_transactions: Use block_number to analyze all transactions within a block
  • Join with fact_traces: Use block_number to examine internal transactions
  • Join with fact_event_logs: Use block_number to find all events emitted in a block

Commonly-used Fields

  • block_number: Sequential identifier for blocks
  • block_timestamp: UTC timestamp of block production
  • gas_used: Total gas consumed by all transactions
  • gas_limit: Maximum gas allowed in the block
  • base_fee_per_gas: Base fee for EIP-1559 chains
  • tx_count: Number of transactions in the block
  • miner: Address that received block rewards

Sample queries

-- Average gas price and utilization by hour
SELECT
    DATE_TRUNC('hour', block_timestamp) AS hour,
    AVG(gas_used / gas_limit) AS avg_gas_utilization,
    AVG(base_fee_per_gas) AS avg_base_fee,
    COUNT(*) AS blocks_count,
    SUM(tx_count) AS total_transactions
FROM hyperevm.core.fact_blocks
WHERE block_timestamp >= CURRENT_DATE - 7
GROUP BY 1
ORDER BY 1 DESC;

-- Identify high-value blocks by total gas used
SELECT
    block_number,
    block_timestamp,
    tx_count,
    gas_used,
    gas_limit,
    (gas_used::FLOAT / gas_limit) AS utilization_rate,
    miner
FROM hyperevm.core.fact_blocks
WHERE block_timestamp >= CURRENT_DATE - 1
ORDER BY gas_used DESC
LIMIT 100;

Columns

Column NameData TypeDescription
BLOCK_NUMBERNUMBERSequential counter representing the position of a block in the blockchain since genesis (block 0).
BLOCK_HASHTEXTThe unique 32-byte Keccak-256 hash of the block header, prefixed with ‘0x’.
BLOCK_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the block was produced by validators/miners.
NETWORKTEXTNetwork identifier within the blockchain (e.g., ‘mainnet’, ‘testnet’).
TX_COUNTNUMBERNumber of transactions included in the block.
SIZENUMBERBlock size in bytes.
MINERTEXTAddress that received block rewards.
MIX_HASHTEXT256-bit hash used in PoW mining process. Post-merge, contains prevRandao for randomness.
EXTRA_DATATEXTArbitrary data included by block producer (max 32 bytes).
PARENT_HASHTEXTHash of the previous block (block_number - 1).
GAS_USEDNUMBERTotal gas consumed by all transactions in the block.
GAS_LIMITNUMBERMaximum gas allowed for all transactions in this block.
BASE_FEE_PER_GASNUMBERBase fee per gas unit in wei (EIP-1559 chains only).
BLOB_GAS_USEDNUMBERGas consumed by blob transactions (EIP-4844, post-Dencun).
EXCESS_BLOB_GASNUMBERExcess blob gas above target, affects next block’s blob base fee.
DIFFICULTYNUMBERMining difficulty at block production time.
SHA3_UNCLESTEXTKeccak-256 hash of uncle blocks list.
UNCLE_BLOCKSVARIANTArray of uncle block headers (PoW only).
NONCENUMBERProof-of-Work nonce value. For PoW chains, this demonstrates computational work. Post-merge Ethereum and PoS chains typically show 0x0000000000000000.
RECEIPTS_ROOTTEXTMerkle root of all transaction receipts in the block.
STATE_ROOTTEXTMerkle root of the entire blockchain state after executing this block.
TRANSACTIONS_ROOTTEXTMerkle root of all transactions in the block.
LOGS_BLOOMTEXT2048-bit bloom filter containing all log addresses and topics from the block’s transactions.
PARENT_BEACON_BLOCK_ROOTTEXTRoot hash of the parent beacon chain block (post-merge Ethereum).
WITHDRAWALSVARIANTArray of validator withdrawals from beacon chain.
WITHDRAWALS_ROOTTEXTMerkle root of all withdrawals in the block.
FACT_BLOCKS_IDTEXTPrimary key - unique identifier for each row ensuring data integrity.
INSERTED_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the record was first added to the Flipside database.
MODIFIED_TIMESTAMPTIMESTAMP_NTZUTC timestamp of the most recent update to this record.