API

Public reads, quotes and the relayer, as JSON over HTTP. Monetary values are decimal strings in lamports or base units; ROI and win rate are basis points.

Public reads

RouteReturns
GET /v1/poolPool totals: SOL shielded, accounts, numbers, Proofs, private swaps and volume, fees held, index lag.
GET /v1/boardEvery number's latest Proof, ranked. sort = netSolLamports | roiBps | winRateBps | trades, direction, cursor, limit.
GET /v1/numbers/nextThe next free number and its fees.
GET /v1/numbers/:numberA number's Record: opened date, latest Proof and its Proofs, or not taken.
GET /v1/numbers/:number/proofs/:sequenceOne Proof, or not found.
POST /v1/verify{ input } — a number, a number/sequence or a card path; verified with slot and signature, or not found.
GET /v1/tokensTradable tokens, searchable by symbol, name or mint.
GET /v1/circuitsThe proving artifacts the browser downloads.

For the account, in the browser

POST /v1/quotesA trade quote: route, amount out, minimum out, fees, the SOL cost or return, and whether a close wins.
POST /v1/feesThe relayer fee for a withdrawal, a number or a Proof.
GET /v1/actionsThe pool's encrypted action stream; the browser decrypts its own and rebuilds notes, the ledger and activity.
GET /v1/scanThe raw stream of encrypted leaves with their public action facts.
POST /v1/nullifiersWhether nullifiers are unspent, in flight or spent.
POST /v1/relaySubmits a proof for a trade, withdrawal, number or Proof; returns the signature.
GET /v1/transactions/:idSubmitted, confirmed, indexed or failed.

No endpoint accepts a key, a signature-derived secret, a witness or a decrypted account.

import { createApiClient } from "@numbered/client";

const api = createApiClient({ baseUrl });
const board = await api.board({ sort: "netSolLamports" });
const check = await api.verify({ input: "/n/1/2" });