Slice
API

GET /api/proof

The treasury’s balance, read from Solana during the request, against what the ledger owes recipients in the same moment. The same check as the proof page, as JSON.

Request

Request
GET /api/proof

Response

200 application/json
{
  "treasury": "<base58>",
  "treasuryLamports": "31500000000",
  "owedLamports": "29000000000",
  "queuedPayoutsLamports": "400000000",
  "inFlightPayoutsLamports": "150000000",
  "pendingBurnLamports": "60000000",
  "platformAvailableLamports": "2410000000",
  "surplusLamports": "2500000000",
  "solvent": true,
  "checkedAt": "2026-09-29T12:00:00.000Z"
}
FieldTypeMeaning
treasurystringThe treasury address. Open it on Solscan to read the same balance yourself
treasuryLamportsstringIts balance, read from Solana at the confirmed commitment during this request
owedLamportsstringCredited to recipients, minus payouts confirmed on chain, minus recipient burn orders whose buy has landed
queuedPayoutsLamportsstringPayouts waiting in the queue. Already inside owed
inFlightPayoutsLamportsstringPayouts signed and sent, not yet confirmed. Already inside owed: one that expires without landing is replaced by a new payout for the same amount
pendingBurnLamportsstringRecipient burn orders whose buy has not landed. Already inside owed
platformAvailableLamportsstringThe platform’s own balance from its ledger. Not owed to anyone, part of the surplus
surplusLamportsstringTreasury minus owed. Can be negative, with a leading minus sign
solventbooleanTrue when the surplus is zero or more
checkedAtstringWhen the balance was read

Parsing the surplus

surplusLamports is the one lamport field that can be negative. BigInt parses the sign; a parser that only accepts digits will not.

TypeScript
const proof   = await (await fetch("/api/proof")).json();
const surplus = BigInt(proof.surplusLamports);   // may be below 0n
if (!proof.solvent) console.warn("treasury short by", -surplus, "lamports");

Caching and errors

PropertyValue
Cache-Controlpublic, max-age=0, s-maxage=15, stale-while-revalidate=45. Up to 15 seconds old at the edge; checkedAt says exactly how old
Rate limit60 requests per minute per IP
503The treasury balance could not be read from Solana. The proof is refused rather than computed against a guessed balance