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/proofResponse
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"
}| Field | Type | Meaning |
|---|---|---|
treasury | string | The treasury address. Open it on Solscan to read the same balance yourself |
treasuryLamports | string | Its balance, read from Solana at the confirmed commitment during this request |
owedLamports | string | Credited to recipients, minus payouts confirmed on chain, minus recipient burn orders whose buy has landed |
queuedPayoutsLamports | string | Payouts waiting in the queue. Already inside owed |
inFlightPayoutsLamports | string | Payouts signed and sent, not yet confirmed. Already inside owed: one that expires without landing is replaced by a new payout for the same amount |
pendingBurnLamports | string | Recipient burn orders whose buy has not landed. Already inside owed |
platformAvailableLamports | string | The platform’s own balance from its ledger. Not owed to anyone, part of the surplus |
surplusLamports | string | Treasury minus owed. Can be negative, with a leading minus sign |
solvent | boolean | True when the surplus is zero or more |
checkedAt | string | When the balance was read |
solvent means the treasury covered what it owed at checkedAt. It does not mean the money cannot be moved afterwards. Read what the proof does not prove before relying on it.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
| Property | Value |
|---|---|
| Cache-Control | public, max-age=0, s-maxage=15, stale-while-revalidate=45. Up to 15 seconds old at the edge; checkedAt says exactly how old |
| Rate limit | 60 requests per minute per IP |
| 503 | The treasury balance could not be read from Solana. The proof is refused rather than computed against a guessed balance |