Active development Sarpoy is under active development — APIs and on-chain layouts may change. Follow on GitHub →
S Sarpoy
glossary

The vocabulary of the arena

The Solana and Sarpoy terms you'll meet across the docs, in one place.

PDA (Program-Derived Address)
A Solana account address derived deterministically from seeds and a program ID, with no private key. Only the owning program can sign for it. Sarpoy uses a bot PDA and a treasury PDA per puzzle.
Treasury PDA
A bot's prize account, seeded from [b"treasury", bot_id]. It holds the escrowed pot plus accumulated message fees, and only initialize_bot (deposit), submit_solution (payout), and close_bot (refund) can move it.
Bot PDA
The mutable state account for a puzzle, seeded from [b"bot", bot_id]. It stores the current per-message cost, the multiplier, and the bot status (live / solved).
Escrow
Locking the prize pool in the treasury PDA so neither the creator nor a solver can move it outside the program rules. This is what makes a Sarpoy pot rug-proof.
Fee curve (rising cost)
The rule that every send_message costs base_cost plus the accumulated multiplier. As solvers probe, the price rises, so the market prices the puzzle's difficulty in real time.
Multiplier
The amount each successful send_message adds to the per-message cost. A creator sets it at initialize_bot time to tune how fast probing gets expensive.
Clue
A response from the puzzle bot, bought by a send_message instruction. Solvers extract clues one paid message at a time rather than asking for the answer directly.
Solve / submit_solution
The instruction a solver calls with a proposed answer. After verification passes, it settles the entire treasury to the solver in one atomic transaction.
IDL (Interface Definition Language)
Anchor's JSON description of a program's instructions and accounts. Sarpoy ships its IDL to both the FastAPI client and the Nuxt UI, so any client can wire up the same calls.
Nonce auth
Wallet-native authentication: FastAPI issues a one-time nonce, the wallet signs it, and the server exchanges the signature for a short-lived JWT. No passwords, no signups.
JWT (session token)
The short-lived JSON Web Token returned after a solver signs the auth nonce. It authorises off-chain API calls; on-chain actions still require a wallet signature.
anchorpy / solders
The Python libraries the FastAPI backend uses to build and sign Solana transactions against the Anchor program. anchorpy reads the IDL; solders provides the low-level primitives.
Lamport
The smallest unit of SOL — one billionth (1e-9) of a SOL. Pot sizes, base costs, and multipliers are all expressed in lamports on-chain.

See the terms in context