Skip to main content
Schema: ethereum.beacon_chain Table: fact_blocks Type: View This table contains data around block formation from the consensus layer of this EVM blockchain. For more info, please visit The Ethereum Organization

Columns

Column NameData TypeDescription
BLOCK_NUMBERNUMBERSequential counter representing the position of a block in the blockchain since genesis (block 0).
Key Facts:
  • Immutable once finalized
  • Primary ordering mechanism for blockchain data
  • Increments by 1 for each new block
  • Used as a proxy for time in many analyses
Usage in Queries:
-- Recent data
WHERE block_number >= (SELECT MAX(block_number) - 1000 FROM fact_blocks)

-- Historical analysis
WHERE block_number BETWEEN 15000000 AND 16000000

-- Join across tables
JOIN <blockchain_name>.core.fact_event_logs USING (block_number)
Important: Block numbers are chain-specific. Block 15000000 on Ethereum ≠ block 15000000 on Polygon. | | SLOT_NUMBER | NUMBER | The Beacon Chain slot this block represents. | | EPOCH_NUMBER | NUMBER | A period of 32 slots, each slot being 12 seconds, totaling 6.4 minutes. | | SLOT_TIMESTAMP | TIMESTAMP_NTZ | Timestamp of Beacon Chain slot. | | PROPOSER_INDEX | NUMBER | Index of the validator that proposed the block for the slot. | | PARENT_ROOT | TEXT | The hash of the block that came before. | | STATE_ROOT | TEXT | The hash-tree-root of the BeaconState. | | RANDAO_REVEAL | TEXT | The validators RANDAO reveal 96 byte value. | | GRAFFITI | TEXT | 32 byte field of arbitrary data. | | ETH1_BLOCK_HASH | TEXT | The 32 byte block hash of the Ethereum execution layer block considered for deposit inclusion. | | ETH1_DEPOSIT_COUNT | NUMBER | The total number of deposits included in the Beacon Chain, since Genesis, including deposits in this block. | | ETH1_DEPOSIT_ROOT | TEXT | The 32 byte deposit tree root for the last deposit included in this block. | | EXECUTION_PAYLOAD | VARIANT | Data from execution layer about block contents. | | SIGNATURE | TEXT | 96 byte BLS signature from validator that produced this block. | | ATTESTER_SLASHINGS | VARIANT | Details on any attester slashings. | | PROPOSER_SLASHINGS | VARIANT | Details on any proposer slashings. | | DEPOSITS | VARIANT | Details on Beacon Chain deposits - see beacon_chain.fact_deposits. | | ATTESTATIONS | VARIANT | Details on validator attestations - see beacon_chain.fact_attestations. | | WITHDRAWALS | ARRAY | Details on validator withdrawals - see beacon_chain.fact_withdrawals. | | SLOT_JSON | OBJECT | Slot details in JSON format, excludes deposits and attestations. | | BLOB_KZG_COMMITMENTS | ARRAY | | | BLOB_GAS_USED | NUMBER | The total amount of blob gas consumed by transactions in the block. | | EXCESS_BLOB_GAS | NUMBER | A running total of blob gas consumed in excess of the target, prior to the block. This is used to set blob gas pricing. | | BLOCK_INCLUDED | BOOLEAN | Boolean flag that indicates whether a block was included for a specific slot, TRUE, or if it is missing/skipped/forked, FALSE. | | FACT_BLOCKS_ID | TEXT | Primary key - unique identifier for each row ensuring data integrity. Format: Usually VARCHAR containing composite key generated using MD5 hash of the relevant columns. Example: MD5(block_number, tx_hash, trace_index) Usage:
  • Deduplication in incremental loads
  • Join operations for data quality checks
  • Troubleshooting specific records
Important: Implementation varies by table - check table-specific documentation. | | INSERTED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the record was first added to the Flipside database. Format: TIMESTAMP_NTZ Use Cases:
  • Data freshness monitoring
  • Incremental processing markers
  • Debugging data pipeline issues
  • SLA tracking
Query Example:
-- Check data latency
SELECT
    DATE_TRUNC('hour', block_timestamp) as block_hour,
    DATE_TRUNC('hour', inserted_timestamp) as insert_hour,
    AVG(TIMESTAMPDIFF('minute', block_timestamp, inserted_timestamp)) as avg_latency_minutes
FROM <blockchain_name>.core.fact_transactions
WHERE block_timestamp >= CURRENT_DATE - 1
GROUP BY 1, 2;
``` |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp of the most recent update to this record.

**Format**: TIMESTAMP_NTZ

**Triggers for Updates**:
- Data corrections
- Enrichment additions
- Reprocessing for accuracy
- Schema migrations

**Monitoring Usage**:
```sql
-- Recently modified records
SELECT *
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
AND modified_timestamp >= CURRENT_DATE - 1;

-- Data quality tracking
SELECT
    DATE(modified_timestamp) as mod_date,
    COUNT(*) as records_updated,
    COUNT(DISTINCT block_number) as blocks_affected
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
GROUP BY 1
ORDER BY 1 DESC;
``` |