| BLOCK_NUMBER | NUMBER | Sequential 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: Important: Block numbers are chain-specific. Block 15000000 on Ethereum ≠ block 15000000 on Polygon. |
| BLOCK_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the block was produced by validators/miners. Format: TIMESTAMP_NTZ (no timezone) Precision: Second-level accuracy Reliability: Set by block producer Can have minor variations (±15 seconds) Always increasing (newer blocks = later timestamps) Best Practices: Note: Use for time-series analysis, but be aware that block production rates vary by chain. |
| TX_HASH | TEXT | Unique 66-character identifier for the transaction. Format: 0x + 64 hexadecimal characters Usage: Primary key for transaction lookups Join key for traces, logs, and token transfers Immutable once confirmed Example: 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 |
| CONTRACT_ADDRESS | TEXT | Smart contract address that emitted this event or received the transaction. Key Points: Always the immediate event emitter for logs May differ from transaction to_address Lowercase normalized format Never NULL for valid events |
| EVENT_NAME | TEXT | The event name as defined in the contract’s ABI. Format: PascalCase event identifier Examples: Transfer - Token transfers Swap - DEX trades OwnershipTransferred - Admin changes Approval - Token approvals Usage Pattern: |
| EVENT_INDEX | NUMBER | Zero-based sequential position of the event within a transaction’s execution. Key Facts: Starts at 0 for first event Increments across all contracts in transaction Preserves execution order Essential for deterministic event ordering Usage Example: |
| ORIGIN_FUNCTION_SIGNATURE | TEXT | Function signature (first 4 bytes) of the called method. Format: 0x + 8 hex characters Common Signatures: 0xa9059cbb: transfer(address,uint256) 0x095ea7b3: approve(address,uint256) 0x23b872dd: transferFrom(address,address,uint256) Note: NULL for simple transfers or invalid calls |
| ORIGIN_FROM_ADDRESS | TEXT | The externally-owned account (EOA) or contract address that initiated the transaction. Key Points: Always 42 characters (0x + 40 hex chars) Lowercase normalized in all tables Cannot be NULL for valid transactions For contract creation: sender of creation transaction Common Patterns: EOA → EOA: Simple transfer EOA → Contract: User interaction Contract → Contract: Internal calls (see fact_traces) Known addresses: Exchange hot wallets, protocol deployers Query Examples: |
| ORIGIN_TO_ADDRESS | TEXT | The destination address for the transaction - either an EOA or contract address. Special Cases: NULL: Contract creation transaction Contract address: Interacting with smart contract EOA address: Simple transfer or receiving funds Important Patterns: Note: For token transfers, this is the token contract, not the recipient. See eztokentransfers tables for recipient. |
| SYMBOL | TEXT | The specific Nado product symbol, if it is a futures product it will have a -PERP suffix. |
| DIGEST | TEXT | The identifier for a specific trade, this can be split across two or more base deltas in order to fill the entire amount of the trade. |
| TRADER | TEXT | The wallet address of the trader, there can be multiple subaccounts associated with a trader. |
| SUBACCOUNT | TEXT | Independent Nado account of trader with its own margin, balance, positions, and trades. Any wallet can open an arbitrary number of these. Risk is not carried over from subaccount to subaccount. |
| TRADE_TYPE | TEXT | They type of trade taken, long/short for perps or buy/sell for spot. |
| ORDER_TYPE | TEXT | Decode from raw expiration number to binary then converted back to int from the most significant two bits: 0 ⇒ Default order, where it will attempt to take from the book and then become a resting limit order if there is quantity remaining 1 ⇒ Immediate-or-cancel order, which is the same as a default order except it doesn’t become a resting limit order 2 ⇒ Fill-or-kill order, which is the same as an IOC order except either the entire order has to be filled or none of it. 3 ⇒ Post-only order, w… |
| MARKET_REDUCE_FLAG | TEXT | A reduce-only is an order that will either close or reduce your position. The reduce-only flag can only be set on IOC or FOK order types. Send a reduce-only order by setting the 3rd most significant bit on the expiration field. |
| EXPIRATION | TIMESTAMP_NTZ | Time after which the order should automatically be cancelled, as a timestamp in seconds after the unix epoch, converted to datetime. |
| NONCE | NUMBER | Number used to differentiate between the same order multiple times, and a user trying to place an order with the same parameters twice. Represented as a string. |
| APPENDIX | NUMBER | APPENDIX column |
| IS_ISOLATED | BOOLEAN | IS_ISOLATED column |
| IS_TAKER | BOOLEAN | Boolean representing if the trader was the taker or maker. Each trade match emits two FillOrder events (one for each side), so when calculating volume or trade counts, filter to is_taker = TRUE to avoid double-counting. |
| PRICE_AMOUNT_UNADJ | NUMBER | The price amount that the trade was executed at. |
| PRICE_AMOUNT | FLOAT | The price amount that the trade was executed at, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract. |
| AMOUNT_UNADJ | NUMBER | The total size of the trade in units of the asset being traded. |
| AMOUNT | FLOAT | The total size of the trade in units of the asset being traded across one digest, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract. |
| AMOUNT_USD | FLOAT | The size of the trade in USD. Base Delta multiplied by the price amount. |
| FEE_AMOUNT_UNADJ | NUMBER | The fees on the trade. |
| FEE_AMOUNT | FLOAT | The fees on the trade, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract. |
| BASE_DELTA_AMOUNT_UNADJ | NUMBER | Represents the net change in the total quantity of orders at a particular price level, the sum of these across the same digest is equal to the amount. This is the first currency listed in the pair and acts as the reference point for the exchange rate, in this case the crypto asset trading against USDT0. |
| BASE_DELTA_AMOUNT | FLOAT | Represents the net change in the total quantity of orders at a particular price level, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract. The sum of these across the same digest is equal to the amount. This is the first currency listed in the pair and acts as the reference point for the exchange rate, in this case the crypto asset trading against USDT0. |
| QUOTE_DELTA_AMOUNT_UNADJ | NUMBER | A positive value is an increase in spread and a negative value is a decrease in spread. Quote is currency used to express the value of the base currency. It’s often the more well-known or stable currency in the pair. In this case, USDT0. |
| QUOTE_DELTA_AMOUNT | FLOAT | The net change in the best bid and best ask prices in the order book, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract. A positive value is an increase in spread and a negative value is a decrease in spread. Quote is currency used to express the value of the base currency. It’s often the more well-known or stable currency in the pair. In this case, USDT0. |
| EZ_PERP_TRADES_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(blocknumber, txhash, 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: |
| 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: |