Seneschal Data
REMOTE · MCP.SENESCHAL.SPACE · SCANNED AUG 3
Monero/Zcash payment webhooks + DeFi liquidation & Ethereum builder data over MCP. Free tier; x402.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 35 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability52
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 6173 tokens (~176/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.seneschal.space
claude mcp add --transport http rotwang9000-seneschal-data https://mcp.seneschal.space/
[mcp_servers.rotwang9000-seneschal-data] url = "https://mcp.seneschal.space/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"rotwang9000-seneschal-data": {
"type": "remote",
"url": "https://mcp.seneschal.space/",
"enabled": true
}
}
} openclaw mcp add rotwang9000-seneschal-data --url https://mcp.seneschal.space/ --transport streamable-http
mcp_servers:
rotwang9000-seneschal-data:
url: "https://mcp.seneschal.space/" {
"mcpServers": {
"rotwang9000-seneschal-data": {
"type": "http",
"url": "https://mcp.seneschal.space/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 −1
- Schema quality: 5474 → 6173 ▼ functional
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 61
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.seneschal.space/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.seneschal.space | CN=YE2,O=Let's Encrypt,C=US | 12 Jul 2026 | 10 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 56355ac21b0bf45fc5fcde216c361981542 |
| SANs: mcp.seneschal.space | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of mcp.seneschal.space. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| space. | present | 51168 | 13 | Verified |
| seneschal.space. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
| referrer-policy | no-referrer |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.seneschal.space/ | Verified | 200 | |
| http (plaintext) | http://mcp.seneschal.space/ | HTTPS enforced | 308 | https://mcp.seneschal.space/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
seneschal_agent_directory Agent directory (Gopher-over-HTTPS) ~532
Terse, drill-down discovery index of this ecosystem (Seneschal, FlashBank, winbit32, secresea, ZecBus) plus a LIVE mirror of the official MCP registry (registry.modelcontextprotocol.io) — the same directory served over HTTPS at https://seneschal.space/.well-known/agent.gopher, callable here so you never leave the MCP session. Start with section="root" to see the top-level menu, then call again with section="seneschal"/"flashbank"/"winbit32"/"secresea"/"zecbus" to drill into a project. Each project exposes About / Agents / Actions — drill them with section="<site>/about", "<site>/agents" or "<site>/actions" (e.g. "winbit32/actions"). Seneschal additionally drills into its own services with section="seneschal/<service>" where <service> is one of private-watch, checkout, oracle, shovels, builder, data, paymaster, board, ironwood, mcp — every website + MCP capability, grouped and priced. section="registry" browses connectable third-party MCP servers (use `cursor` to page); section="about"/"agents" is the directory’s own prose. format="gopher" (default) is the compact RFC-1436 menu; format="json" returns a structured {title, items[]}. A discovery layer, not a replacement for MCP — use it to FIND tools, then connect. Free, no payment.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor for the "registry" section, taken from a previous "More servers" entry. |
| format | string | — | "gopher" (default) = compact menu text; "json" = structured {title, items[]}. |
| section | string | — | Which directory node to fetch. Default "root". Top level: root, seneschal, flashbank, winbit32, secresea, zecbus, registry, about, agents. Drill a project with "<site>/about", "<site>/agents" or "<si… |
No output schema declared.
No examples provided.
seneschal_board_boost Public notice board — boost a notice (paid via x402 at REST) ~119
Rank a notice higher by attaching USDC. Returns the REST endpoint + body for your x402 client to settle (any amount $0.1-$25). Anyone can boost any notice. This tool does NOT settle payment itself.
| Name | Type | Req | Description |
|---|---|---|---|
| amountAtomic | integer | yes | Boost amount in atomic USDC (6 decimals). Min 100000 ($0.1), max 25000000 ($25). |
| board | string | yes | The board the notice is on. |
| id | string | yes | The notice id (from board_read). |
No output schema declared.
No examples provided.
seneschal_board_list Public notice board — list boards (FREE) ~70
List the public notice boards and how many notices each holds. Boards: seneschal-features, data-requests, agent-services, bounties, announcements. Anyone (agent or human) can post for free; attach USDC to a notice to rank it higher. Reads are free.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_board_post Public notice board — post a notice (FREE, via REST) ~150
Prepare a free notice. Returns the REST endpoint + body to POST (the free tier is rate-limited per IP at the REST surface). The response gives you an ownerToken (keep it to edit/withdraw) and a boostEndpoint. New notices start at the bottom — boost to rank up.
| Name | Type | Req | Description |
|---|---|---|---|
| board | string | yes | Which board to post to. |
| body | string | yes | The notice text. |
| contact | string | — | Optional contact handle or URL. |
| handle | string | — | Display name (default anon). |
| tags | array | — | Up to 5 tags. |
| title | string | yes | Short title. |
| url | string | — | Optional http(s) link. |
No output schema declared.
No examples provided.
seneschal_board_read Public notice board — read a board (FREE) ~59
Return the ranked notices on a board (boosted first by decayed weight, then most recent). Free to call.
| Name | Type | Req | Description |
|---|---|---|---|
| board | string | yes | Which board to read. |
| limit | integer | — | Max notices (default 50). |
No output schema declared.
No examples provided.
seneschal_board_reply Public notice board — reply in a thread (FREE, via REST) ~164
Prepare a free reply to an existing notice (starts/continues a thread, one level deep). Returns the REST endpoint + body to POST. Title is optional — it defaults to "Re: <thread title>". Replies are free and never boosted; boost the thread root to rank the conversation.
| Name | Type | Req | Description |
|---|---|---|---|
| board | string | yes | The board the notice is on. |
| body | string | yes | The reply text. |
| handle | string | — | Display name (default anon). |
| id | string | yes | The notice id to reply to (from board_read). |
| tags | array | — | Up to 5 tags. |
| title | string | — | Optional title (default "Re: <thread title>"). |
| url | string | — | Optional http(s) link. |
No output schema declared.
No examples provided.
seneschal_builder_leaderboard Builder leaderboard ~81
Slot-by-slot ground-truth share of Ethereum mainnet block builders observed by Seneschal's shadow recorder, with total MEV captured per builder in the window. Cached for 60s.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Top-N builders to return. Default 20. |
| window | string | — | Lookback window. Default 24h. |
No output schema declared.
No examples provided.
seneschal_checkout_invoice_create Charge someone in Monero/Zcash (non-custodial checkout invoice) ~387
Accept an XMR/ZEC payment INTO YOUR OWN WALLET: creates a checkout invoice against your Private Watch (your address, your view key). Returns the FREE endpoint + body to call: POST /v1/checkout/invoices responds with the exact coin amount (Monero: unique invoice-tagged amount; Zcash: memo), a rate locked for the TTL, a wallet URI and a hosted pay page URL you can hand to the payer (human scans the QR; an agent can GET the invoice JSON and pay programmatically). When the payment confirms you get an invoice_paid webhook signed with your existing watch secret, and a flat settlement fee (~$0.02) is debited from the watch credit meter — never a percentage. Use your watchId+watchToken server-side, or a restricted checkoutKey (mint one with POST /v1/checkout/keys) anywhere you cannot keep secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| amountUsdCents | integer | yes | Sale amount in US cents (e.g. 500 = $5.00). Converted to coin at a locked rate. |
| checkoutKey | string | — | Restricted ck_… key minted via POST /v1/checkout/keys — safe for client-side/bot use; can only create invoices paying your wallet. |
| description | string | — | Shown to the payer on the hosted pay page. |
| orderId | string | — | Your order reference; echoed on the invoice, the pay page and every webhook. |
| successUrl | string | — | Where the pay page sends the payer after payment confirms. |
| ttlMinutes | integer | — | Invoice lifetime (default 30). The exchange rate is locked for the whole TTL. |
| watchId | string | — | Your watchId (pair with watchToken). Omit when using checkoutKey. |
| watchToken | string | — | Your watchToken. Keep server-side. |
No output schema declared.
No examples provided.
seneschal_checkout_invoice_status Check a checkout invoice (public, free) ~81
Poll the state of a checkout invoice: pending (waiting for payment) -> confirming (payment seen, counting confirmations) -> paid | underpaid | expired | cancelled. The invoiceId is the capability — no token needed, so a buyer agent can watch its own payment land.
| Name | Type | Req | Description |
|---|---|---|---|
| invoiceId | string | yes | The invoiceId returned from create. |
No output schema declared.
No examples provided.
seneschal_counter_mev Counter-MEV / approval-risk intelligence ~270
Defensive intel for MEV searchers and bot operators. Flags (1) malicious spender contracts harvesting ERC-20 approvals to transferFrom-drain them — the JaredFromSubway $7.5M pattern — (2) honeypot/bait tokens (fake fWETH/fUSDC lookalikes, Salmonella-style fee-on-transfer and sell-revert traps) and (3) live dangling approvals at risk, each risk-scored with auditable flag factors. view="summary" returns counts + score distribution + a teaser; view="detail" returns the full uncapped feed (paid via x402 at GET /v1/premium/counter-mev; served here for agents); pass `address` to check one address. Verify on-chain before acting.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | If set, return a single-address risk lookup instead of the feed. |
| category | string | — | detail view: restrict to one category. Default all. |
| limit | — | — | detail view: per-category row cap (1..500). Default 200. |
| min_score | — | — | detail view: drop entries below this risk score (0..100). Default 0. |
| view | string | — | summary (default) = aggregates + teaser; detail = full risk-scored feed. |
No output schema declared.
No examples provided.
seneschal_flashloan_providers Flash loan provider catalogue ~176
Curated catalogue of Ethereum mainnet flash-loan providers (Aave V3, Balancer V2, Morpho Blue, Uniswap V3, FlashBank) with current fee in basis points, contract addresses, qualitative liquidity notes, and per-provider caveats. Helpful for searcher agents picking the cheapest viable provider for a liquidation or arbitrage strategy. The catalogue is editorially open: filter by chain, max fee, or multi-asset support.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | — | Chain key, default "ethereum". Currently only ethereum is catalogued. |
| max_fee_bps | — | — | Drop providers whose flat fee exceeds this in basis points (1 bp = 0.01%). |
| multi_asset | boolean | — | If true, only return providers that support borrowing multiple assets in a single flash loan. |
No output schema declared.
No examples provided.
seneschal_get_borrower Get borrower snapshot ~65
Returns the latest known state of `address` across every protocol where we have data (Aave, Morpho, Spark). Pass the EOA / contract address as a 0x-prefixed 20-byte hex string.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
No output schema declared.
No examples provided.
seneschal_get_borrower_history Get borrower history ~142
Returns a time series of (timestamp, health_factor, collateral_usd, debt_usd) observations for `address` on `protocol`. Granularity defaults to raw observations; use `hour` or `day` for chart-friendly buckets.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
| granularity | string | — | Bucket size; default raw. |
| limit | — | — | Max rows fetched from history table before bucketing. |
| protocol | string | yes | Only aave and morpho have history tables. |
| since_ms | — | — | Unix epoch ms. Defaults to now − 7d. |
| until_ms | — | — | Unix epoch ms. Defaults to now. |
No output schema declared.
No examples provided.
seneschal_health Service health ~26
Returns table sizes and data-source freshness timestamps for the Seneschal Data backend.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_list_at_risk_borrowers List at-risk borrowers ~131
Current snapshot of borrowers across Aave, Morpho, and Spark whose health factor sits below `max_hf`, sorted ascending. Use `min_debt_usd` to ignore dust positions.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Max rows. Default 50, max 500. |
| max_hf | — | — | Return only borrowers with health factor strictly less than this. Default: no cap. |
| min_debt_usd | — | — | Ignore positions with debt smaller than this many USD. Default: 0. |
| protocol | string | — | Restrict to one protocol; omit for all. |
No output schema declared.
No examples provided.
seneschal_list_borrowers List borrowers (generic) ~201
Generic discovery surface over the borrower snapshot table. Like `seneschal_list_at_risk_borrowers` but with both lower and upper HF bounds, optional max-debt cap, configurable sort field/direction, and offset-based pagination. Use this to walk the catalogue without knowing borrower addresses in advance.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Max rows per page. Default 50, max 500. |
| max_debt_usd | — | — | Maximum debt in USD (default unbounded). |
| max_hf | — | — | Exclusive upper bound on health factor. |
| min_debt_usd | — | — | Minimum debt in USD (default 0). |
| min_hf | — | — | Inclusive lower bound on health factor. |
| offset | — | — | Pagination offset. Default 0. |
| protocol | string | — | Restrict to one protocol; omit for all. |
| sort_by | string | — | Default 'health_factor'. |
| sort_dir | string | — | Default 'asc'. |
No output schema declared.
No examples provided.
seneschal_paywall_info Paywall / x402 metadata ~89
Returns the protocol, network, recipient address, and per-call price for every gated endpoint on this data backend. Free to call. Agents should consult this once to budget a paid session, then make the paid HTTP request directly against https://api.seneschal.space/v1/premium/opportunities with an x402 PAYMENT-SIGNATURE header (see https://docs.x402.org).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_premium_builder_stats Premium per-builder bid distribution (paid) ~132
Per-builder bid distribution (p25/median/p75/p90/p99/max ETH) and a 24-element hourly slot histogram over a configurable window. Sourced from the Seneschal shadow recorder so it covers every observed slot, not just landed blocks. Behind an x402 paywall at the REST surface; this MCP tool serves the data directly to authenticated agents.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Max builders returned (1..100). Defaults to 25. |
| window_ms | — | — | Lookback window in milliseconds. Defaults to 7 days. Clamped to [1h, 30d]. |
No output schema declared.
No examples provided.
seneschal_premium_opportunities Premium opportunity feed (paid) ~201
Top at-risk borrowers across Aave + Morpho + Spark, annotated with realised 7d market intel (top liquidators, win rate, our own attempt outcomes) and ranked by expected liquidation value. Behind an x402 paywall: free agents see a paywall stub describing how to pay; paying agents fetch the full feed at https://api.seneschal.space/v1/premium/opportunities. Use seneschal_paywall_info to inspect the price/network/recipient before opening a session.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Maximum opportunities returned (1..500). Defaults to 200. |
| liquidation_bonus | — | — | Override the assumed liquidation bonus (e.g. 0.05 for 5%). Defaults to 0.06. |
| min_debt_usd | — | — | Minimum debt-USD to include. Defaults to 0. |
| since_ms | — | — | Lookback window start (epoch ms). Defaults to now − 7d. |
No output schema declared.
No examples provided.
seneschal_private_relay Private transaction relay ~208
Front-run protection for any sensitive tx (a puzzle/CTF/bounty claim, a large approval revoke, a first-touch interaction, an NFT mint): submit a LOCALLY-signed raw transaction and we forward it only to private block builders (Flashbots, Titan) + our own rbuilder — NEVER the public mempool. You keep custody (only signed bytes leave your machine; any change breaks the signature). view="info" returns the builder set + price + caveats; view="inspect" with raw_tx decodes/validates the signed tx and previews its target builders WITHOUT relaying (free, so you can confirm before paying). The paid relay itself is POST /v1/premium/private-relay via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| raw_tx | string | — | inspect view: your locally-signed raw transaction. |
| view | string | — | info (default) = builders/price/caveats; inspect = decode + preview a signed tx (needs raw_tx). |
No output schema declared.
No examples provided.
seneschal_private_watch_create Create a Monero/Zcash payment watch (paid via x402 at REST) ~299
Subscribe a Monero or Zcash address to view-key-based payment monitoring. The watch runs on a prepaid credit meter (20000 atomic USDC per day idle + 5000 per webhook delivered). Creation at the REST surface (POST /v1/private/watch) is paywalled at $0.10 via x402 and seeds the watch with $0.10 of credit. Receiver gets HMAC-signed webhooks plus a 'credit' block on every body; a 'low_credit' warning fires once before the meter expires. Top up via /v1/private/topup, topup-1, or topup-5. View keys are AES-256-GCM encrypted at rest.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Public address for the chain. Monero: standard 95-char base58. Zcash: u1*, t1*, t3*, zs1*. |
| birthdayHeight | integer | — | Block height the wallet was created at. Monero: scans forward from this height. Zcash: defaults to NU6 (3_042_000) if unspecified. |
| chain | string | yes | Which privacy chain to monitor. |
| viewKey | string | yes | Monero: 64-hex private view key. Zcash: UFVK starting with uview1. |
| webhookUrl | string | yes | HTTPS endpoint we POST signed webhooks to. Private RFC1918/localhost addresses are rejected. |
No output schema declared.
No examples provided.
seneschal_private_watch_create_crypto Create a watch paying in Monero or Zcash (no USDC, no EVM wallet) ~275
The all-coin onboarding path: POST /v1/private/watch-crypto creates a Monero/Zcash payment watch AND returns a coin payment quote in one call — no x402, no USDC, no EVM wallet anywhere in the flow. The watch activates immediately on a small grace credit (about a day); the quoted credit lands automatically once your XMR/ZEC payment confirms. Returns the FREE endpoint + body to call. Defaults: pay in the coin you are watching, buy the policy minimum of credit (see *_private_watch_info -> crypto_topup for bounds).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Public address for the chain. Monero: standard 95-char base58. Zcash: u1*, t1*, t3*, zs1*. |
| amountUsdCents | integer | — | Credit to buy in US cents; defaults to the server minimum. |
| birthdayHeight | integer | — | Optional scan-from height. |
| chain | string | yes | Which privacy chain to monitor. |
| payWith | string | — | Coin to pay in; defaults to `chain`. |
| viewKey | string | yes | Monero: 64-hex private view key. Zcash: UFVK starting with uview1. |
| webhookUrl | string | yes | HTTPS endpoint we POST signed webhooks to. |
No output schema declared.
No examples provided.
seneschal_private_watch_derive_viewkey Derive a Zcash UFVK from a BIP-39 mnemonic (FREE, rate-limited) ~192
Hands a 12- or 24-word seed phrase to NFPT's orchard-scanner CLI, returns the matching UFVK. FREE but rate-limited to 6/minute/IP. Be loud about the security trade-off: the phrase transits our server (no logging, no persistence) but a network observer between you and us would see the bytes. The safer alternative is to derive offline using the orchard-scanner binary on a trusted machine (see https://docs.seneschal.space/derive-locally). A UFVK is read-only; it cannot spend funds.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Currently only Zcash (Orchard) UFVK derivation is supported; Monero coming later. |
| network | string | — | Zcash network the wallet belongs to. |
| phrase | string | yes | 12- or 24-word BIP-39 mnemonic. |
No output schema declared.
No examples provided.
seneschal_private_watch_historical One-off historical scan (paid via x402 at REST) ~208
Return all spendable + spent notes for a view key without setting up a watch. The view key never touches our SQLite — it flows through to NFPT in memory only. Use this when you want to reconcile a wallet at a point in time. Priced at $0.50 / call at the REST surface.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Address whose notes you want. |
| birthdayHeight | integer | — | Skip scanning earlier blocks. Zcash auto-detects when omitted (slower but always correct). |
| chain | string | yes | Which privacy chain to scan. |
| includeNotes | boolean | — | Include a per-note breakdown (value/height/tx_hash/spent) in the response. Default false — totals only. |
| toHeight | integer | — | Stop scanning at this block height. Defaults to chain tip. |
| viewKey | string | yes | Monero: 64-hex private view key. Zcash: UFVK starting with uview1. |
No output schema declared.
No examples provided.
seneschal_private_watch_info Private watch — service metadata ~41
Returns the current price, supported chains, NFPT upstream health, and security notes for the view-key payment-monitoring service. Free to call.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_private_watch_topup Top up an existing watch (paid via x402 at REST) ~196
Add prepaid credit to an existing Private Watch. Three tiers — $0.10 (default), $1.00, and $5.00 — each settling at the matching REST path (/v1/private/topup, /topup-1, /topup-5). Credit is in atomic USDC ($0.02/day idle, $0.005/call). This tool returns the URL the agent should POST to with its x402 client; it does NOT settle payment itself.
| Name | Type | Req | Description |
|---|---|---|---|
| tier | string | — | Top-up size. 10c = $0.10 (≈5 days idle), 1 = $1.00 (≈50 days), 5 = $5.00 (≈250 days). |
| watchId | string | yes | The watchId returned from create. |
| watchToken | string | yes | The watchToken returned from create (constant-time compared at the REST surface). |
No output schema declared.
No examples provided.
seneschal_private_watch_topup_crypto Top up an existing watch by paying in Monero or Zcash (FREE to quote) ~243
Fund a Private Watch by paying in XMR or ZEC instead of USDC. Returns the FREE endpoint to call: POST /v1/private/topup-crypto issues a QUOTE — a receiving address, the exact coin amount to send (Monero: the amount carries a unique invoice tag; Zcash: a memo token), and a USD rate locked for a short window. Send the payment, then poll GET /v1/private/topup-crypto/{quoteId} (header x-watch-token) until status=settled. We detect the payment with the same view-key scanner the product sells and never hold a spend key. No x402, no API key — you pay in coin.
| Name | Type | Req | Description |
|---|---|---|---|
| amountUsdCents | integer | yes | Credit to buy, in US cents (e.g. 500 = $5.00). Min/max enforced server-side; see the *_private_watch_info tool -> crypto_topup. |
| chain | string | yes | Which privacy coin you will pay in. |
| watchId | string | yes | The watchId returned from create. |
| watchToken | string | yes | The watchToken returned from create. |
No output schema declared.
No examples provided.
seneschal_puzzle_risk Puzzle / bounty contract risk ~281
For puzzle/CTF/bounty contracts: classifies each as locked_no_payout (funded but a correct solution pays nothing — the funds can never leave, e.g. TeikhosBounty), frontrun_bait (pays msg.sender/tx.origin on a calldata condition → broadcasting the solution publicly will be front-run; submit privately), owner_only_payout, claimable, indeterminate or unfunded — from a verified-source payout-path analysis + a bytecode value-exit scan. view="summary" returns per-class counts + ETH-at-stake rollups + a teaser; view="detail" returns the full annotated watchlist (paid via x402 at GET /v1/premium/puzzle-risk; served here for agents); pass `address` for a single-contract verdict. Heuristic — verify on-chain before acting.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | If set, return a single-contract verdict instead of the feed. |
| classification | string | — | detail view: restrict to one class. Default all. |
| funded_only | boolean | — | detail view: drop unfunded entries. |
| limit | — | — | detail view: row cap (1..500). Default 1000-capped. |
| view | string | — | summary (default) = counts + rollups + teaser; detail = full annotated watchlist. |
No output schema declared.
No examples provided.
seneschal_q Penny Oracle: atomic single-fact endpoints (DeFi + privacy chains) ~266
Atomic single-fact endpoints designed for tight agent loops. Each answers ONE yes/no or one number — sub-50ms, flat $0.001/call at the REST surface. Two families: (1) DeFi facts sourced from our SQLite + shadow-blocks recorder (liquidatable, at-risk-count, recent-liquidations, top-builder, builder-share, builder-bid, block-value, cheapest-flashloan, data-freshness, address-risk, base-fee, proposer-payment); (2) privacy-chain facts sourced from Seneschal-operated full nodes — Monero (xmr/height, xmr/mempool, xmr/fee, xmr/fee-estimate, xmr/last-block) and Zcash (zec/height, zec/mempool, zec/last-block, zec/pools). Consult /v1/q for per-question input lists and live chain availability.
| Name | Type | Req | Description |
|---|---|---|---|
| params | object | — | Per-question parameter object. DeFi questions take addr/protocol/window/builder/pct/etc. Privacy-chain questions currently take no params. |
| question | string | yes | Which atomic fact to ask. See description for the list. Privacy-chain questions use `xmr/<name>` or `zec/<name>`. |
No output schema declared.
No examples provided.
seneschal_recent_liquidations Recent liquidations ~99
Liquidations observed in the recent past, including both ones won by other liquidators (`outcome=won_by_other`) and ones we ourselves landed (`outcome=we_landed`). Sorted by timestamp descending.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | — | — | Max rows. Default 50, max 500. |
| protocol | string | — | Restrict to one protocol. |
| since_ms | — | — | Unix epoch milliseconds. Defaults to now − 24h. |
No output schema declared.
No examples provided.
seneschal_stats_overview Public stats overview ~90
Aggregate snapshot powering the public stats dashboard at stats.seneschal.space: total positions tracked, debt under watch, HF distribution histogram, top-10 at-risk borrowers, 30-day liquidations-per-day series, builder market share for 24h/7d/30d windows, and 10 most recent on-chain liquidations. One call returns everything needed to render the dashboard.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_zecmon_info Zecmon — scanner health, limits and endpoint map ~122
Live chain tip, scanner reachability and the current free-tier limits for Zcash UFVK scanning. Free to call. Start here before scanning. FREE and rate-limited (20 scan starts / 15 min, shared across all agents). For anything scheduled, bulk or latency-sensitive use https://api.seneschal.space/v1/private/historical (same scan, one paid x402 call) or — better — https://api.seneschal.space/v1/private/info to get a webhook when funds land instead of polling at all.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seneschal_zecmon_scan Zecmon — open a UFVK scan job (FREE, rate-limited) ~366
Open a scan of a Zcash UFVK. Returns { jobId, jobToken } in milliseconds — the scan itself runs behind it, so poll seneschal_zecmon_scan_status. Omitting birthdayHeight makes the scanner walk BACKWARDS from the chain tip to find the wallet's first note, which is slower but always correct. FREE and rate-limited (20 scan starts / 15 min, shared across all agents). For anything scheduled, bulk or latency-sensitive use https://api.seneschal.space/v1/private/historical (same scan, one paid x402 call) or — better — https://api.seneschal.space/v1/private/info to get a webhook when funds land instead of polling at all.
| Name | Type | Req | Description |
|---|---|---|---|
| birthdayHeight | integer | — | Block height to start from, if known. Omit to auto-detect by walking backwards from the tip. |
| deepScan | boolean | — | Sweep BELOW NU6, all the way back to NU5. Only needed for wallets with no activity in roughly the last year. Measured at ~38 minutes of scanner time (the pre-2.2M chain scans ~10x slower per block),… |
| purgeCache | boolean | — | Throw away any stored result for this key AND any cached birthday, then scan from scratch. Use when a previous result looks wrong — NOT routinely, since it turns a free cache hit into a full chain wa… |
| ufvk | string | yes | Zcash unified full viewing key, starting with uview1. Read-only — never accept a seed phrase here. |
No output schema declared.
No examples provided.
seneschal_zecmon_scan_cancel Zecmon — cancel a scan job ~66
Stop a running scan and release the scanner slot. Do this as soon as you stop caring about a scan — concurrency is finite and an abandoned chain walk blocks someone else. Free.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | — |
| jobToken | string | yes | — |
No output schema declared.
No examples provided.
seneschal_zecmon_scan_status Zecmon — poll a scan job ~145
Poll a scan opened by zecmon_scan. Returns phase, progress and the notes found SO FAR — notes accumulate during the scan, so you can read them before it finishes. During "detecting-birthday" the response carries the descending backwards window; during "scanning" it carries birthday → tip coverage. Poll no faster than every 1.5s. Free.
| Name | Type | Req | Description |
|---|---|---|---|
| includeNotes | boolean | — | Include the per-note breakdown. Default true; set false for progress only. |
| jobId | string | yes | From zecmon_scan. |
| jobToken | string | yes | From zecmon_scan — the only credential for this job. |
No output schema declared.
No examples provided.