| EZ_PERP_FILLS_ID | TEXT | Surrogate key generated from fact_trades_id and side |
| TRADE_ID | NUMBER | Unique trade identifier assigned by the Hyperliquid L1 matching engine. |
| BLOCK_NUMBER | NUMBER | L1 block number containing this event. |
| BLOCK_TIMESTAMP | TIMESTAMP_NTZ | Block production timestamp on the Hyperliquid L1. This is the canonical time for ordering blockchain events. |
| COIN | TEXT | Raw asset identifier. Perps use plain ticker (e.g. BTC), spot uses @token_index format (e.g. @2), prelaunch uses xyz:name prefix. |
| SYMBOL | TEXT | Human-readable trading symbol. Resolved from token metadata for spot tokens; same as coin for perps. |
| TRADE_TIMESTAMP | TIMESTAMP_NTZ | Exact fill timestamp from the matching engine, may differ slightly from block_timestamp. |
| TX_HASH | TEXT | L1 transaction hash uniquely identifying the on-chain transaction. |
| PRICE | FLOAT | Execution price in USD for this trade. |
| TRADE_SIZE | FLOAT | Size of the trade in base asset units. |
| TRADE_NOTIONAL | FLOAT | USD notional value of the trade (price x size), rounded to 2 decimal places. |
| FILL_SIDE | TEXT | Whether this fill is the maker (resting order) or taker (crossing the spread). |
| IS_TAKER | BOOLEAN | TRUE when this side of the trade crossed the spread (taker), FALSE for maker. |
| SIDE | TEXT | Trade side: buyer or seller |
| USER_ADDRESS | TEXT | HyperCore address of the primary user involved in this event. |
| ORDER_ID | NUMBER | Order identifier for this side of the trade. |
| DIRECTION | TEXT | Trade direction (Open Long, Close Long, Open Short, Close Short). |
| IS_CROSSED | BOOLEAN | Whether this side of the trade was a crossed (taker) order. |
| FEE | FLOAT | Fee charged for the event. |
| FEE_TOKEN | TEXT | Token in which trading fees are denominated. |
| CLOSED_PNL | FLOAT | Closed PnL realized by this side of the trade. |
| START_POSITION | FLOAT | Position size before this fill for this side of the trade. |
| TWAP_ID | NUMBER | TWAP order ID, if applicable. |
| CLIENT_ORDER_ID | TEXT | Client-specified order ID, if applicable. |
| BUILDER_ADDRESS | TEXT | Address of the block builder (MEV/builder infrastructure). NULL for most trades. Only populated on the taker row; NULL on the maker row. |
| BUILDER_FEE | FLOAT | Builder fee for the trade, only populated on the taker side. |
| IS_LIQUIDATION | BOOLEAN | Boolean indicating whether this trade is a liquidation event. |
| LIQUIDATED_USER | TEXT | Address of the user being liquidated. NULL if this is not a liquidation trade. |
| LIQUIDATION_MARK_PRICE | FLOAT | Mark price at the time of liquidation. NULL if not a liquidation. |
| LIQUIDATION_METHOD | TEXT | Method used for the liquidation (e.g. backstop, market). NULL if not a liquidation. |
| MARKET_TYPE | TEXT | Type of market: ‘perp’ for perpetual futures, ‘spot’ for HIP-1 token trading, ‘prelaunch’ for pre-listing futures. |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | Timestamp when the record was last modified in this table (Snowflake SYSDATE). |
| FACT_TRADES_ID | TEXT | Surrogate key from the parent fact_trades row |