nuthatch data model
The `bounty-nest` nest on arbitrum-one. (seeded from the ABI - edit semantic.toml to improve this)
COVERAGE
sealed_through = 523328546 (rows at or below this block are sealed Parquet);
tip = 523383392 - the `sql` tool reads both the sealed rows and the live tip above them.
TABLES (one per contract event; query via the `sql` tool)
board__bounty_cancelled - `BountyCancelled(uint256,uint256)` events emitted by the `board` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per BountyCancelled(uint256,uint256) event
columns: bountyId (uint256), amount (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT
_overflow is that same sum): bountyId → bountyId_dec, amount → amount_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: bountyId, amount
board__bounty_distributed - `BountyDistributed(uint256,address,address,address,uint256,address)` events emitted by the `board` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per BountyDistributed(uint256,address,address,address,uint256,address) event
columns: bountyId (uint256), indexer (address), allocationId (address), payee (address), amount (uint256), caller (address)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): bountyId → bountyId_dec, amount → amount_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: bountyId, amount
board__bounty_posted - `BountyPosted(uint256,address,bytes32,uint256,uint256)` events emitted by the `board` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per BountyPosted(uint256,address,bytes32,uint256,uint256) event
columns: bountyId (uint256), developer (address), deploymentId (bytes32), amount (uint256), expiresAt (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): bountyId → bountyId_dec, amount → amount_dec, expiresAt → expiresAt_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: bountyId, amount, expiresAt
board__bounty_refunded - `BountyRefunded(uint256,uint256)` events emitted by the `board` contract. (seeded from the ABI - edit semantic.toml to improve this)
grain: one row per BountyRefunded(uint256,uint256) event
columns: bountyId (uint256), amount (uint256)
⚠ big-int columns (exact text; SUM/AVG of `_dec` is the values that fit, and WHERE NOT _overflow is that same sum): bountyId → bountyId_dec, amount → amount_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: bountyId, amount
AUTHORED VIEWS (derived - query by name, recomputed per query over hot∪cold)
bounties - Every bounty BountyBoard 2.0.0 has held, one row each, with its status: open, paid, cancelled or refunded. deployment_id is the subgraph deployment as bytes32 (the Qm hash without its 0x1220 prefix). expires_at is unix seconds, 0 for none; an open bounty past it cannot be paid.
open_bounties - Bounties still in escrow, largest first. To earn one: allocate to deployment_id, sync it, present a POI and leave the allocation open; anyone can then call distribute(bounty_id, allocation). check(bounty_id, allocation) on the contract says whether it would pay.
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.