nuthatch data model
The `nest` nest on monad-testnet. (seeded from the ABI - edit semantic.toml to improve this)
COVERAGE
sealed_through = 78930959 (rows at or below this block are sealed Parquet);
tip = 78939572 - the `sql` tool reads both the sealed rows and the live tip above them.
TABLES (one per contract event; query via the `sql` tool)
irmarket__market_created - `MarketCreated(uint256,address,address,address,uint256,uint256)` events emitted by the `irmarket` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per MarketCreated(uint256,address,address,address,uint256,uint256) event
columns: marketId (uint256), baseToken (address), quoteToken (address), marketMaker (address), expiryBlock (uint256), feeBps (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT
_overflow is that same sum): marketId → marketId_dec, expiryBlock → expiryBlock_dec, feeBps → feeBps_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: marketId, expiryBlock, feeBps
irmarket__veto_wrapped - `VetoWrapped(uint256,uint256,address,uint8,uint256,uint256,uint256)` events emitted by the `irmarket` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per VetoWrapped(uint256,uint256,address,uint8,uint256,uint256,uint256) event
columns: quoteId (uint256), marketId (uint256), trader (address), side (uint8), swapIn (uint256), swapOut (uint256), fee (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec, marketId → marketId_dec, swapIn → swapIn_dec, swapOut → swapOut_dec, fee → fee_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId, marketId, swapIn, swapOut, fee
monoracle__funds_withdrawn - `FundsWithdrawn(uint256,address,uint256,uint256)` events emitted by the `monoracle` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per FundsWithdrawn(uint256,address,uint256,uint256) event
columns: quoteId (uint256), provider (address), baseAmount (uint256), quoteAmount (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec, baseAmount → baseAmount_dec, quoteAmount → quoteAmount_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId, baseAmount, quoteAmount
monoracle__quote_settled_valid - `QuoteSettledValid(uint256,uint256)` events emitted by the `monoracle` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per QuoteSettledValid(uint256,uint256) event
columns: quoteId (uint256), price (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec, price → price_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId, price
monoracle__quote_submitted - `QuoteSubmitted(uint256,address,address,address,uint256,uint256,uint256,uint32,uint32)` events emitted by the `monoracle` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per QuoteSubmitted(uint256,address,address,address,uint256,uint256,uint256,uint32,uint32) event
columns: quoteId (uint256), provider (address), baseToken (address), quoteToken (address), baseAmount (uint256), quoteAmount (uint256), price (uint256), startSlot (uint32), expiryBlock (uint32)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec, baseAmount → baseAmount_dec, quoteAmount → quoteAmount_dec, price → price_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId, baseAmount, quoteAmount, price
monoracle__quote_vetoed_overpriced - `QuoteVetoedOverpriced(uint256,address)` events emitted by the `monoracle` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per QuoteVetoedOverpriced(uint256,address) event
columns: quoteId (uint256), verifier (address)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId
monoracle__quote_vetoed_underpriced - `QuoteVetoedUnderpriced(uint256,address)` events emitted by the `monoracle` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per QuoteVetoedUnderpriced(uint256,address) event
columns: quoteId (uint256), verifier (address)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): quoteId → quoteId_dec
⚠ wide columns (>128-bit) whose `_dec` is NULL above 38 digits. A sum of `_dec` is the values that fit; WHERE NOT _overflow is that same sum. Ids, nonces and hashes stay on the raw column: quoteId
VIEWS (incrementally maintained; reorgs retract automatically)
balances - per-address net balance = Σ(received) − Σ(sent), i128 base units as decimal strings,
for ERC-20 Transfer tables. Query via the `balance`/`top_balances` tools.
COMPLIANCE (RFC-0008; amounts are i128 base units as decimal strings)
exposure - an address's direct exposure to the labeled set (tool `exposure`).
flags - threshold and velocity flags (tool `flags`).
FACTORIES (RFC-0009; only in a nest with templates/factories)
Children of a template share tables (`pool__swap`, …), distinguished by the `address` column. Each
template has a `{template}__children` view: which children were discovered, when, by which parent.