Skip to main content
Schema: ink.nado Table: ez_perp_trades Type: Base Table

What

Nado perpetuals are derivative contracts on an underlying spot asset. On Nado, all perpetual contracts trade against USDT0. Important: Volume Calculation Each trade match emits two FillOrder events on-chain: one for the maker and one for the taker (each with their own order digest). To calculate accurate volume or trade counts that match Nado’s official API metrics, filter to is_taker = TRUE to avoid double-counting.

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: Important: Block numbers are chain-specific. Block 15000000 on Ethereum ≠ block 15000000 on Polygon.
BLOCK_TIMESTAMPTIMESTAMP_NTZUTC 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_HASHTEXTUnique 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_ADDRESSTEXTSmart 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_NAMETEXTThe 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_INDEXNUMBERZero-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_SIGNATURETEXTFunction 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_ADDRESSTEXTThe 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_ADDRESSTEXTThe 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.
SYMBOLTEXTThe specific Nado product symbol, if it is a futures product it will have a -PERP suffix.
DIGESTTEXTThe 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.
TRADERTEXTThe wallet address of the trader, there can be multiple subaccounts associated with a trader.
SUBACCOUNTTEXTIndependent 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_TYPETEXTThey type of trade taken, long/short for perps or buy/sell for spot.
ORDER_TYPETEXTDecode 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_FLAGTEXTA 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.
EXPIRATIONTIMESTAMP_NTZTime after which the order should automatically be cancelled, as a timestamp in seconds after the unix epoch, converted to datetime.
NONCENUMBERNumber 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.
APPENDIXNUMBERAPPENDIX column
IS_ISOLATEDBOOLEANIS_ISOLATED column
IS_TAKERBOOLEANBoolean 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_UNADJNUMBERThe price amount that the trade was executed at.
PRICE_AMOUNTFLOATThe 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_UNADJNUMBERThe total size of the trade in units of the asset being traded.
AMOUNTFLOATThe 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_USDFLOATThe size of the trade in USD. Base Delta multiplied by the price amount.
FEE_AMOUNT_UNADJNUMBERThe fees on the trade.
FEE_AMOUNTFLOATThe fees on the trade, decimal adjusted. All amounts and prices are adjusted 18 decimals points regardless of underlying asset contract.
BASE_DELTA_AMOUNT_UNADJNUMBERRepresents 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_AMOUNTFLOATRepresents 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_UNADJNUMBERA 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_AMOUNTFLOATThe 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_IDTEXTPrimary 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_TIMESTAMPTIMESTAMP_NTZUTC 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_TIMESTAMPTIMESTAMP_NTZUTC 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: