Website and read API
The React/Vite app prepares createIntent and expire; the user’s wallet signs and submits. Node.js provides restricted reads, a SQLite event index, and a KuCoin quote cache. Starlight builds documentation separately.
Application responsibilities
Section titled “Application responsibilities”The browser validates recipients, refreshes Monero/market observations, and computes integer terms before wallet review. Pending operations are stored locally with deployment and sender/nonce context. Matching receipt events establish success; a three-minute timeout leaves Check again available.
HTTP routes
Section titled “HTTP routes”| Route | Interface |
|---|---|
GET /api/history?user=ADDRESS |
Deployment history; limit 1–100 (default 50), optional snapshot cursor |
POST /api/rpc |
One allowlisted Ethereum JSON-RPC request; no query parameters, batches, or transaction submission |
GET /api/kucoin/quote |
Cached combined ETH/USDT and XMR/USDT quote |
GET /api/health |
Loopback-only health check |
A changed history snapshot returns 409; restart pagination. RPC methods cover chain/block/gas information, balances/nonces, transaction/receipt lookup, bounded blocks, and supported contract simulation/estimation. Bodies are limited to 16 KiB, upstream responses to 4 MiB, and simulation to 500,000 gas.
Reads and indexing
Section titled “Reads and indexing”Live RPC reads use no caching, deduplication, batches, or Multicall. The event index and quote cache are intentional separate stores.
The index attests chain ID, runtime, and deployment block, backfills, and polls every three seconds. It supports tip replacement and fails closed on deeper reorganizations. Health requires a caught-up index updated within 60 seconds and a block no older than 120 seconds. Staleness disables refunds; expiry uses indexed chain time.
Capacity limits
Section titled “Capacity limits”| Default limit | Value |
|---|---|
| Concurrent RPC requests | 4/client, 16 globally |
| Weighted minute budget | 240/client, 1,200 globally |
| Nginx request rate | 10/second, burst 20 |
| Daily upstream budget | 500,000 live reads; 100,000 index reads |
Failed attempts and failover consume budget. Private endpoint URLs remain in the server environment.
Documentation architecture
Section titled “Documentation architecture”Starlight provides Markdown pages, sidebar hierarchy, and local Pagefind search. Shared src/theme.css supplies the site appearance. The build generates CSP hashes; Nginx adds header protections. Publish the complete build/ output, including search and assets. Maintainer procedures are in the repository README.