{"service":"Seneschal Data API","version":"0.1.0","docs":"https://docs.seneschal.space","stats_dashboard":"https://stats.seneschal.space","endpoints":["GET /v1/health","GET /v1/liquidations/atrisk","GET /v1/liquidations/recent","GET /v1/borrowers","GET /v1/borrowers/:address","GET /v1/borrowers/:address/history","GET /v1/builders/leaderboard","GET /v1/stats/overview","GET /v1/stats/income","GET /v1/stats/income/history","GET /v1/flashloan/providers","GET /v1/counter-mev/summary (free — approval-risk / honeypot intelligence summary)","GET /v1/zec/ironwood (free — ZEC value pools + NU6.3 Ironwood migration tracker)","GET /v1/zec/ironwood/history (free — migration time series, ?window_ms&max_points; chart at ironwood.seneschal.space)","GET /v1/premium/counter-mev (x402 paywall — full approval-risk / honeypot feed)","GET /v1/puzzle-risk/summary (free — puzzle/bounty contract risk: locked-no-payout vs front-run-bait vs claimable)","GET /v1/puzzle-risk/lookup?address=0x… (free — single-contract verdict)","GET /v1/premium/puzzle-risk (x402 paywall — full annotated puzzle/bounty watchlist)","GET /v1/private-relay/info (free — private tx relay: what it does, builders, price)","GET /v1/private-relay/inspect?raw_tx=0x… (free — decode/validate a signed tx + preview target builders, no relay)","POST /v1/premium/private-relay (x402 paywall — submit a locally-signed raw tx privately; never the public mempool)","GET /v1/premium/opportunities (x402 paywall)","GET /v1/premium/opportunities/sample (free — live redacted preview of the paid feed)","GET /v1/premium/builder-stats (x402 paywall)","GET /v1/premium/builder-stats/sample (free — live redacted preview, 6h window, top-3 builders)","GET /v1/premium/builder-bids.csv (x402 paywall — CSV export, ?from_block&to_block or ?window_ms)","GET /v1/premium/fee-history.csv (x402 paywall — per-block base fee + blob fee export, ?blocks≤1024&newest&format=csv|jsonl)","GET /v1/q (penny-oracle catalogue, free)","GET /v1/q/* (penny-oracle atomic-fact endpoints, x402 paywall)","GET /v1/q/xmr/* (Monero atomic-fact endpoints, x402 paywall)","GET /v1/q/zec/* (Zcash atomic-fact endpoints, x402 paywall)","POST /v1/private/watch (x402 paywall — view-key payment monitor, starter credit)","POST /v1/private/topup (x402 paywall — $0.10 credit top-up)","POST /v1/private/topup-1 (x402 paywall — $1.00 credit top-up)","POST /v1/private/topup-5 (x402 paywall — $5.00 credit top-up)","POST /v1/private/topup-custom (x402 paywall — variable credit amount, 0.10 – 25.00 USDC)","POST /v1/private/historical (x402 paywall — one-off spendable+spent note scan)","POST /v1/private/derive-viewkey (free, rate-limited — Zcash UFVK from BIP-39 mnemonic)","GET /v1/private/watch/:id (owner-only, free poll)","DELETE /v1/private/watch/:id (owner-only, free cancel)","POST /v1/private/watch/:id/test (owner-only, fires a synthetic webhook)","GET /v1/private/info (free service metadata)","GET /v1/private/health (free counters, no PII)","GET /v1/board (free — list public notice boards + counts)","GET /v1/board/leaderboard (free — top-boosted notices across all boards)","GET /v1/board/:board (free — ranked notices, paginated)","GET /v1/board/:board/feed.xml | feed.json (free — RSS / JSON Feed to subscribe)","POST /v1/board/:board (free, rate-limited — post a notice)","POST /v1/board/:board/:id/reply (free, rate-limited — reply in a thread)","POST /v1/board/:board/:id/boost (x402 paywall — pay any amount to rank a notice higher)","PATCH/DELETE /v1/board/:board/:id (owner-only via x-notice-token — edit / withdraw)","POST /v1/board/:board/:id/report (free, rate-limited — flag for review)","GET /.well-known/agent.gopher (free — token-cheap Gopher-over-HTTPS agent directory; ?format=json|html)","GET /.well-known/agent/:section (free — seneschal|flashbank|winbit32|registry|about|agents; registry mirrors the official MCP registry)"],"paywall":{"protocol":"x402","spec":"https://docs.x402.org","network":"eip155:8453","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","facilitator_mode":"cdp","payTo":"0x46Ba634261566CF242c853d1f49511f9268ba674","scheme":"exact (EIP-3009 transferWithAuthorization)","asset_note":"Network resolves the canonical USDC contract; clients should consult the facilitator /supported endpoint for the address.","routes":[{"endpoint":"POST /v1/private/watch","price":"$0.10","description":"Create a Monero or Zcash view-key payment watch. The $0.10 fee IS your starting credit (nothing is lost to a creation charge). Body: { chain, address, viewKey, webhookUrl, birthdayHeight? }. Returns { watchId, watchToken, webhookSecret, expiresAt, creditAtomic }; verify webhooks with HMAC-SHA256(webhookSecret, body), top up via /v1/private/topup*. Prefer no USDC? POST /v1/private/watch-crypto (free call) creates + funds the watch in XMR/ZEC.","mime_type":"application/json"},{"endpoint":"POST /v1/private/topup","price":"$0.10","description":"Add $0.10 of credit (100_000 atomic USDC) to an existing watch. Body: { watchId, watchToken }. Returns the post-top-up credit block.","mime_type":"application/json"},{"endpoint":"POST /v1/private/topup-1","price":"$1.00","description":"Add $1.00 of credit (1_000_000 atomic USDC) to an existing watch. Same body/response shape as /v1/private/topup.","mime_type":"application/json"},{"endpoint":"POST /v1/private/topup-5","price":"$5.00","description":"Add $5.00 of credit (5_000_000 atomic USDC) to an existing watch. Best value tier for high-volume receivers. Same body/response shape as /v1/private/topup.","mime_type":"application/json"},{"endpoint":"POST /v1/private/historical","price":"$0.50","description":"One-off historical scan of a Zcash UFVK or Monero address+viewKey. Returns spendable + spent note totals and (optional) per-note breakdown. The view key streams to NFPT in-memory only — nothing is persisted to our DB. Body: { chain, address, viewKey, birthdayHeight?, toHeight?, includeNotes? }.","mime_type":"application/json"},{"endpoint":"GET /v1/q/xmr/height","price":"$0.001","description":"Single-fact: current Monero chain height + sync status. Sourced from a live operator-run monerod node.","mime_type":"application/json"},{"endpoint":"GET /v1/q/xmr/mempool","price":"$0.001","description":"Single-fact: number of pending transactions in the Monero mempool right now.","mime_type":"application/json"},{"endpoint":"GET /v1/q/xmr/fee","price":"$0.001","description":"Single-fact: recommended Monero per-byte fee in piconero (also exposed per-kB for convenience).","mime_type":"application/json"},{"endpoint":"GET /v1/q/xmr/fee-estimate","price":"$0.001","description":"Single-fact: actionable Monero fee recommendation — estimated total fee (piconero + XMR) for a typical 1500-byte tx at each priority level (slow/normal/fast/fastest). Translates the raw per-byte rate into \"what will my tx cost\".","mime_type":"application/json"},{"endpoint":"GET /v1/q/xmr/last-block","price":"$0.001","description":"Single-fact: timestamp + age of the most recent Monero block, plus hash, difficulty, and size.","mime_type":"application/json"},{"endpoint":"GET /v1/q/zec/height","price":"$0.001","description":"Single-fact: current Zcash chain height + verification progress + best block hash. Sourced from a live operator-run zebra node.","mime_type":"application/json"},{"endpoint":"GET /v1/q/zec/mempool","price":"$0.001","description":"Single-fact: Zcash mempool count + bytes.","mime_type":"application/json"},{"endpoint":"GET /v1/q/zec/last-block","price":"$0.001","description":"Single-fact: timestamp + age of the most recent Zcash block, plus hash, difficulty, and size.","mime_type":"application/json"},{"endpoint":"GET /v1/q/zec/pools","price":"$0.001","description":"Single-fact: ZEC supply by value pool (transparent/sprout/sapling/orchard/ironwood/lockbox) + NU6.3 \"Ironwood\" migration readout — pool balance, Orchard remainder, and migration % once the quantum-recoverable Ironwood pool is live (mainnet target ~2026-07-21). The turnstile makes cross-pool flows public; this is the headline number. Sourced from a live operator-run zebra node.","mime_type":"application/json"},{"endpoint":"GET /v1/premium/opportunities","price":"$0.05","description":"Top at-risk borrowers across Aave + Morpho + Spark with realised market success-rate, average actual profit-USD, and the builder most likely to land each market. Sorted by expected EV. Pure SQL, no live RPC. Free redacted live preview: GET /v1/premium/opportunities/sample (no payment).","mime_type":"application/json"},{"endpoint":"GET /v1/premium/builder-stats","price":"$0.05","description":"Per-builder bid distribution (p25/median/p75/p90/p99/max) and hourly slot activity histogram from the Seneschal shadow recorder. Answers \"what bid value do I need to land in builder X right now?\" for searchers tuning bundle pricing. Free redacted live preview: GET /v1/premium/builder-stats/sample (no payment).","mime_type":"application/json"},{"endpoint":"GET /v1/premium/fee-history.csv","price":"$0.05","description":"Per-block base-fee + blob-fee history export — the top-requested feed on the Seneschal data board. Up to 1024 blocks per call (?blocks=, default 300) straight from consensus via eth_feeHistory, as CSV or JSON lines (?format=csv|jsonl). Columns: block, base fee (wei + gwei), gas_used_ratio, blob base fee, blob_gas_used_ratio. Page backwards with ?newest=<block>; headers carry the consensus next-block projection. Live \"gas right now\" fact: GET /v1/q/base-fee ($0.001).","mime_type":"text/csv"},{"endpoint":"GET /v1/premium/builder-bids.csv","price":"$0.05","description":"Per-slot builder bids + realised proposer payment from the Seneschal shadow recorder, as CSV or JSON lines (?format=csv|jsonl). Range: ?from_block=&to_block= (max 100000 blocks) or ?window_ms= (max 30d). Columns: block, ts_ms, iso_time, miner, builder, actual_total_eth (= what the proposer actually got: priority + coinbase), actual_priority_eth, actual_coinbase_eth, shadow_bid_eth, would_have_won, tx_count. Live tail: GET /v1/q/proposer-payment ($0.001).","mime_type":"text/csv"},{"endpoint":"GET /v1/premium/counter-mev","price":"$0.05","description":"Counter-MEV / approval-risk feed: the full risk-scored set of (1) malicious spenders harvesting ERC-20 approvals to transferFrom-drain them (the JaredFromSubway $7.5M pattern), (2) honeypot/bait tokens — fake fWETH/fUSDC wrappers, fee-on-transfer and sell-revert traps, (3) live dangling approvals at risk. Each row ships its flags + score factors; sourced from our own mainnet scanners. Filters: ?category=spenders|tokens|approvals|bleeding_bots&min_score&limit.","mime_type":"application/json"},{"endpoint":"GET /v1/premium/puzzle-risk","price":"$0.05","description":"Puzzle / bounty contract risk feed: the annotated watchlist of puzzle/CTF/bounty contracts classified as locked_no_payout (funded but value can never leave — solving pays nothing), frontrun_bait (pays msg.sender on a calldata condition — broadcast the solution and you WILL be front-run; submit privately), owner_only_payout, claimable, indeterminate or unfunded. Each entry ships payout-path evidence, front-run verdict and ETH at stake. Filters: ?classification=&funded_only=1&limit=.","mime_type":"application/json"},{"endpoint":"POST /v1/premium/private-relay","price":"$0.50","description":"Private transaction relay: POST a LOCALLY-signed raw transaction and we forward it only to private block builders (Flashbots, Titan, our own rbuilder) — NEVER the public mempool — so it cannot be front-run. You keep custody: we only see signed bytes. Use for any sensitive tx: bounty/CTF claims (see the puzzle-risk feed), large approval revokes, first-touch interactions. Body: { raw_tx: \"0x…\" }. Returns per-builder accept/reject + the tx hash. Validate free first: GET /v1/private-relay/inspect.","mime_type":"application/json"},{"endpoint":"GET /v1/q/liquidatable","price":"$0.001","description":"Single-fact: is borrower X currently liquidatable? Returns {found, liquidatable, hf, debt_usd, last_seen_ms} sourced from Aave + Morpho snapshots.","mime_type":"application/json"},{"endpoint":"GET /v1/q/at-risk-count","price":"$0.001","description":"Single-fact: how many borrowers have HF < max_hf and debt >= min_debt_usd right now? Returns {count, total_debt_usd}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/recent-liquidations","price":"$0.001","description":"Single-fact: how many on-chain liquidations have we observed in the last `since_min` minutes, with what aggregate debt? Returns {count, total_debt_usd}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/top-builder","price":"$0.001","description":"Single-fact: which builder has the largest slot share in the named window (24h|7d|30d)? Returns {builder, share_pct, slots_won}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/builder-share","price":"$0.001","description":"Single-fact: what share of slots in the window did `builder` win? Substring match.","mime_type":"application/json"},{"endpoint":"GET /v1/q/builder-bid","price":"$0.001","description":"Single-fact: percentile bid value (in ETH) for `builder` over the window. Returns {value_eth, samples}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/block-value","price":"$0.001","description":"Single-fact: network-wide percentile block value (proposer payment, ETH) across ALL winning slots in the window — the \"is it worth bundling?\" number, independent of builder. Returns {value_eth, median_eth, max_eth, samples}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/cheapest-flashloan","price":"$0.001","description":"Single-fact: cheapest flash-loan provider for `asset` on `chain` (default ethereum). Returns {provider, fee_bps, address}.","mime_type":"application/json"},{"endpoint":"GET /v1/q/data-freshness","price":"$0.001","description":"Single-fact: age in seconds of the freshest record in the named source (shadow_blocks|borrower_snapshot|morpho_borrower_snapshot|missed_liquidations|executions).","mime_type":"application/json"},{"endpoint":"GET /v1/q/address-risk","price":"$0.001","description":"Single-fact wallet-safety check: is address X a known approval-drainer (malicious spender harvesting ERC-20 approvals to transferFrom-drain them — the JaredFromSubway $7.5M pattern) or a honeypot/bait token? Returns {flagged, as, risk_score, risk_band, top_flags} from the same live mainnet scanner + scorer as the premium counter-MEV feed. Check before you approve.","mime_type":"application/json"},{"endpoint":"GET /v1/q/proposer-payment","price":"$0.001","description":"Single-fact: what did the proposer of the latest block ACTUALLY get paid (priority fees + direct coinbase transfers — the value that reaches the validator, not the noisy block-value proxy)? Returns {block, proposer_payment_eth, builder, tx_count} plus a 1h aggregate {samples, mean_eth, median_eth, p90_eth, max_eth}. Per-block history export: /v1/premium/builder-bids.csv ($0.05, CSV or JSONL).","mime_type":"application/json"},{"endpoint":"GET /v1/q/base-fee","price":"$0.001","description":"Single-fact: what does Ethereum mainnet gas cost RIGHT NOW? Returns the latest block’s base fee + blob base fee AND the consensus-computed next-block projection (not a guess — the protocol’s own EIP-1559/4844 arithmetic), straight from eth_feeHistory. Fields: {block, base_fee_gwei, blob_base_fee_gwei, gas_used_ratio, next_base_fee_gwei, next_blob_base_fee_gwei}. Bulk per-block history: /v1/premium/fee-history.csv ($0.05, up to 1024 blocks/call).","mime_type":"application/json"}]}}