Seneschal — Private Watch + Ethereum block builder
Real-time private payment webhooks for Monero/Zcash using view keys, plus Ethereum block building.
Trust signal
4 of 4 pillars
coverage 100%
Pillars
Signals
Evidence tiers, not an endorsement · trust model v0.1.0 (provisional) · CDP-lane settlement only (D3) · Trust API coming soon
On-chain traction
ERC-8004 agent registry
Not found in the ERC-8004 agent registry. This is the default state — absence is not a negative signal.
Identity & classification
Settlement volume
USDC settled on-chain · monthly
as of Jul 12, 2026
Endpoints(30)
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.
Single-fact: how many borrowers have HF < max_hf and debt >= min_debt_usd right now? Returns {count, total_debt_usd}.
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).
Single-fact: percentile bid value (in ETH) for `builder` over the window. Returns {value_eth, samples}.
Single-fact: what share of slots in the window did `builder` win? Substring match.
Single-fact: cheapest flash-loan provider for `asset` on `chain` (default ethereum). Returns {provider, fee_bps, address}.
Single-fact: age in seconds of the freshest record in the named source (shadow_blocks|borrower_snapshot|morpho_borrower_snapshot|missed_liquidations|executions).
Single-fact: is borrower X currently liquidatable? Returns {found, liquidatable, hf, debt_usd, last_seen_ms} sourced from Aave + Morpho snapshots.
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).
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}.
Single-fact: which builder has the largest slot share in the named window (24h|7d|30d)? Returns {builder, share_pct, slots_won}.
Single-fact: recommended Monero per-byte fee in piconero (also exposed per-kB for convenience).
Single-fact: current Monero chain height + sync status. Sourced from a live operator-run monerod node.
Single-fact: timestamp + age of the most recent Monero block, plus hash, difficulty, and size.
Single-fact: number of pending transactions in the Monero mempool right now.
Single-fact: current Zcash chain height + verification progress + best block hash. Sourced from a live operator-run zebra node.
Single-fact: timestamp + age of the most recent Zcash block, plus hash, difficulty, and size.
Single-fact: Zcash mempool count + bytes.
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.
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).
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.
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).
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.
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=.
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.
Add $0.10 of credit (100_000 atomic USDC) to an existing watch. Body: { watchId, watchToken }. Returns the post-top-up credit block.
Create a Monero or Zcash view-key payment watch. Body: { chain, address, viewKey, webhookUrl, birthdayHeight? }. Returns { watchId, watchToken, webhookSecret, expiresAt, creditAtomic } — the receiver verifies inbound webhooks with HMAC-SHA256(webhookSecret, body) and tops up via /v1/private/topup* before the meter runs dry.