You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: sync to payments-gateway architecture; privacy products + x402 payments family
The API now embeds the open-source payments-gateway package (github
pin) instead of carrying its own copy of the x402/private-watch code.
Brings the Monero/Zcash chain facts, crypto top-ups, the x402
self-bootstrap client (Bazaar discovery seeding), and ops-monitor
endpoint probes (tunnel + paywall watchdog). Suite: 560 tests green.
Copy file name to clipboardExpand all lines: docs/index.html
+27-4Lines changed: 27 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -96,6 +96,11 @@ <h1>Seneschal Data API</h1>
96
96
to see the data without writing a single line.
97
97
</div>
98
98
99
+
<divclass="callout callout-info">
100
+
<strong>New · 2026-06-05:</strong> Zcash patched a critical Orchard bug — a <em>supply</em> bug, not a privacy one.
101
+
<ahref="/orchard-bug-view-keys.html">What happened, what node operators must do, and why view-key payment monitoring is unaffected »</a>
102
+
</div>
103
+
99
104
<sectionclass="hero">
100
105
<h2>Private Watch — the headline product</h2>
101
106
<p>Get an HMAC-signed webhook the instant a Monero or Zcash payment lands at your address. You supply a <strong>view key</strong> (read-only, cannot spend), an address, and a webhook URL. We POST you a notification on every balance change. <strong>Prepaid credit meter: $0.02 per day idle + $0.005 per webhook delivered</strong> — no account, no API key, no node.</p>
@@ -104,6 +109,8 @@ <h2>Private Watch — the headline product</h2>
104
109
105
110
<p><strong>How the meter works:</strong> the first $0.10 (paywall on watch creation) buys 5 idle days. After that, top up <strong>any amount</strong> via dedicated paywalled paths: $0.10, $1.00, or $5.00 a pop. Every webhook body carries a <code>credit</code> block so your receiver always knows how much it has left. We’ll fire one <code>low_credit</code> warning when you have ~2 idle days remaining, even if no payments have come in.</p>
106
111
112
+
<p><strong>Pay in privacy coin, not just USDC.</strong> A Monero/Zcash service that only took stablecoins on a transparent chain would be missing the point. So you can top a watch up by sending <strong>XMR or ZEC</strong> directly: <code>POST /v1/private/topup-crypto</code> is free to call and returns a receiving address plus the exact amount to send (Monero uses a unique-amount invoice tag; Zcash uses a memo) at a USD rate locked for the quote window. We detect your payment with the <em>same view-key scanner this product sells</em> — dogfooding the whole way down — and we hold only a view key for that wallet, never a spend key. No wallet connection, no x402, no API key.</p>
113
+
107
114
<p><strong>Why it’s cheap:</strong> small users pay cents per month even with no traffic. Heavy users pay a few dollars even after thousands of webhook deliveries. Compare to a self-hosted full node (~$30/mo VPS + storage), light-wallet subscriptions ($5–$50/mo), or merchant gateways (1–2%): the only ones with skin in the game.</p>
108
115
109
116
<pre><code># 1. Create a watch (one x402 payment of $0.10 seeds $0.10 credit)
@@ -123,6 +130,15 @@ <h2>Private Watch — the headline product</h2>
123
130
-H 'content-type: application/json' \
124
131
-d '{"watchId":"...","watchToken":"..."}'
125
132
133
+
# 2b. ...or pay in Monero/Zcash instead (FREE quote, no x402, no key):
134
+
curl -X POST https://api.seneschal.space/v1/private/topup-crypto \
<p><code>POST /v1/private/topup{,-1,-5}</code> — $1 buys ~50 idle days. <code>low_credit</code> webhook tells you when to top up.</p>
218
+
<pclass="pw-price"><strong>USDC (x402) or XMR/ZEC</strong> · any amount</p>
219
+
<p><code>POST /v1/private/topup{,-1,-5,-custom}</code> — $1 buys ~50 idle days. Or pay in coin (free quote) via <code>POST /v1/private/topup-crypto</code>. <code>low_credit</code> webhook tells you when to top up.</p>
<td><strong>Top up an existing watch.</strong> Three explicit tiers so the x402 paywall can quote each price up front. $0.10 buys ~5 idle days, $1.00 buys ~50, $5.00 buys ~250. Body: <code>{watchId, watchToken}</code>.</td>
651
+
<td><strong>Top up an existing watch (USDC via x402).</strong> Explicit tiers so the x402 paywall can quote each price up front. $0.10 buys ~5 idle days, $1.00 buys ~50, $5.00 buys ~250; <code>topup-custom</code> takes any amount. Body: <code>{watchId, watchToken}</code> (plus <code>amountAtomic</code> for custom).</td>
<td><strong>FREE quote<br>(pay in coin)</strong></td>
656
+
<td><strong>Top up by paying in Monero/Zcash.</strong> The POST is free and returns a quote — a receiving address, the exact coin amount to send (Monero: a unique-amount invoice tag; Zcash: a memo), and a USD rate locked for ~15 min. Send the payment, then poll the GET (header <code>x-watch-token</code>) until <code>status=settled</code>. We detect it with our own view-key scan and credit the watch after the stated confirmations; we never hold a spend key. Body: <code>{watchId, watchToken, chain, amountUsdCents}</code> ($2–$500).</td>
<metaname="description" content="Get a webhook the moment a Monero or Zcash payment lands at your address, using only the (read-only) view key. $0.02/day idle + $0.005/webhook delivered via x402 USDC on Base. Plus an Ethereum mainnet block builder and free liquidation telemetry.">
7
+
<metaname="description" content="Get a webhook the moment a Monero or Zcash payment lands at your address, using only the (read-only) view key. $0.02/day idle + $0.005/webhook, paid in x402 USDC on Base — or fund your watch by paying in XMR/ZEC directly. Plus an Ethereum mainnet block builder and free liquidation telemetry.">
<pclass=muted>Ethereum mainnet block builder & pay-per-call data services. <code>extra_data = Seneschal/0.1</code>.</p>
112
-
113
-
<sectionclass="hero">
124
+
<pclass="lead">An independent <strong>Ethereum mainnet block builder</strong> that turns its own node, privacy-coin scanners and on-chain rails into <strong>pay-per-call services</strong>. <strong>No account, no API key, no subscription</strong> — you pay a few cents in USDC on Base (or in Monero/Zcash) only for what you actually use.</p>
<spanclass="g-desc">Get a webhook the instant a Monero or Zcash payment lands at your address — from a read-only view key, no node to run.</span>
131
+
<spanclass="g-for"><b>For</b> merchants, wallets & payment bots</span>
132
+
</a>
133
+
<ahref="#builder">
134
+
<spanclass="g-name">Block builder</span>
135
+
<spanclass="g-desc">Send bundles to a permissionless mainnet builder bidding into six relays. No registration.</span>
136
+
<spanclass="g-for"><b>For</b> searchers & MEV matchmakers</span>
137
+
</a>
138
+
<ahref="#data">
139
+
<spanclass="g-name">Liquidation & builder data</span>
140
+
<spanclass="g-desc">Free REST telemetry: loans near liquidation across Aave / Morpho / Spark / Compound, plus builder market share.</span>
141
+
<spanclass="g-for"><b>For</b> liquidators, analysts & dashboards</span>
142
+
</a>
143
+
<ahref="#paymaster">
144
+
<spanclass="g-name">Stablecoin gas paymaster</span>
145
+
<spanclass="g-desc">ERC-4337 paymaster on Base — let smart accounts pay gas in USDC, EURC, USDT, DAI or cbBTC instead of ETH.</span>
146
+
<spanclass="g-for"><b>For</b> wallet & smart-account developers</span>
147
+
</a>
148
+
<ahref="#premium">
149
+
<spanclass="g-name">Penny Oracle & x402 APIs</span>
150
+
<spanclass="g-desc">Single-fact DeFi & privacy-chain data endpoints from $0.001, paid per call in USDC via x402.</span>
151
+
<spanclass="g-for"><b>For</b> AI agents & automated systems</span>
152
+
</a>
153
+
</nav>
154
+
155
+
<sectionclass="hero" id="private-watch">
114
156
<h2>Private Watch — get pinged when a Monero or Zcash payment lands</h2>
115
157
<p>Hand us a <em>view key</em> (read-only — it cannot spend), an address, and a webhook URL. We POST you an HMAC-signed notification the moment funds arrive. <strong>Prepaid credit meter: $0.02/day idle + $0.005/webhook delivered, top up any time.</strong> No node, no subscription, no API key, no account.</p>
<p><code>POST /v1/private/topup{,-1,-5}</code><br>$1 buys ~50 idle days; $5 buys ~250. The <code>low_credit</code> webhook tells you when to top up.</p>
202
+
<pclass="tile-price"><strong>USDC (x402) or XMR/ZEC</strong> · any amount</p>
203
+
<p><code>POST /v1/private/topup{,-1,-5,-custom}</code> in USDC ($1 buys ~50 idle days), or <strong>pay in Monero/Zcash</strong> via <code>POST /v1/private/topup-crypto</code> — a free quote locks a rate; we detect your coin payment with the same view-key scanner this product runs on. The <code>low_credit</code> webhook tells you when to top up.</p>
162
204
</div>
163
205
164
206
<!-- Historical -->
@@ -384,11 +426,12 @@ <h3>Try it now — derive a Zcash viewing key from a BIP-39 phrase (free, in-bro
Copy file name to clipboardExpand all lines: docs/llms.txt
+8-3Lines changed: 8 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,14 @@
1
1
# Seneschal
2
2
3
-
> View-key payment webhooks for Monero and Zcash, plus an Ethereum mainnet block builder and free DeFi-liquidation telemetry. Pay-per-call in USDC via the x402 standard; free read tier; an MCP server for AI agents (no API key).
3
+
> View-key payment webhooks for Monero and Zcash, plus an Ethereum mainnet block builder and free DeFi-liquidation telemetry. Pay-per-call in USDC via the x402 standard — or fund a watch directly in Monero/Zcash. Free read tier; an MCP server for AI agents (no API key).
4
4
5
5
Seneschal lets a receiver get an HMAC-signed webhook the instant a Monero (XMR) or Zcash (ZEC) payment lands at their address, using only a read-only *view key* — no node to run, no custody (view keys cannot spend). Premium endpoints are paid per call in USDC on Base via the x402 protocol; many read endpoints are free.
- Create a watch: POST https://api.seneschal.space/v1/private/watch (x402, $0.10 seeds credit) — body { chain, address, viewKey, webhookUrl }. Returns a webhookSecret; verify deliveries with HMAC-SHA256.
10
-
- Top up credit: POST https://api.seneschal.space/v1/private/topup | /topup-1 | /topup-5
10
+
- Top up credit (USDC via x402): POST https://api.seneschal.space/v1/private/topup | /topup-1 | /topup-5 | /topup-custom
11
+
- Top up credit by paying in Monero/Zcash (FREE to quote, no x402, no key): POST https://api.seneschal.space/v1/private/topup-crypto — body { watchId, watchToken, chain, amountUsdCents }. Returns a receiving address, the exact coin amount (Monero: a unique-amount invoice tag; Zcash: a memo) and a USD rate locked for a short window. Poll GET https://api.seneschal.space/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 — we never hold a spend key.
11
12
- One-off historical scan: POST https://api.seneschal.space/v1/private/historical (x402)
12
13
- Free UFVK derivation from a seed phrase (rate-limited): POST https://api.seneschal.space/v1/private/derive-viewkey
13
14
@@ -19,13 +20,17 @@ Seneschal lets a receiver get an HMAC-signed webhook the instant a Monero (XMR)
19
20
- WalletConnect control panel: https://panel.seneschal.space/
20
21
21
22
## Pricing
22
-
- Private Watch: $0.02 per idle day + $0.005 per webhook delivered; creation seeds $0.10 credit; top-ups of $0.10 / $1 / $5.
23
+
- Private Watch: $0.02 per idle day + $0.005 per webhook delivered; creation seeds $0.10 credit; top-ups of $0.10 / $1 / $5 (or any amount $0.10–$25 via /topup-custom).
24
+
- Pay-in-coin top-ups: fund a watch in XMR/ZEC, $2–$500 per quote, credited at a rate locked for the quote window (small spread covers volatility).
23
25
- Atomic "single-fact" endpoints (Monero/Zcash chain facts; DeFi facts): about $0.001 each, ideal for agent loops.
24
26
25
27
## Free / public (no key)
26
28
- DeFi liquidation telemetry for Aave, Morpho, Spark and Compound on Ethereum mainnet.
27
29
- Ethereum block-builder market-share data from the Seneschal shadow recorder.
28
30
31
+
## Background / writing
32
+
- The Zcash Orchard bug (2026-06) and why view-key payment monitoring is unaffected: https://docs.seneschal.space/orchard-bug-view-keys.html — explains the non-canonical-proof soundness bug (supply, not privacy), the Zebra 5.0.0 / NU6.2 fix, the analogous Monero bug class (2017 key-image, Bulletproofs audit), and why read-only view-key payment detection (Private Watch) keeps working.
0 commit comments