Predict
A market on every basket.
Every Sheaf basket carries one question: will it beat SPY this week? Because a basket's value is held in a vault anyone can read, the answer can be computed from chain state and public prices, with no one's say-so. Panta runs the market: a USDC bonding curve on Solana, opened, traded and claimed through its API.
Powered by Panta- Baskets with a question
- —
- Opening one on Panta
- —
- Ahead of SPY, trailing week
- —
- Panta
- —
The questions
Value per share is read live from each basket's recipe at mainnet prices and dividend multipliers. The trailing week compares the same recipe with SPY over the last five closes.
How a market resolves.
YES if one share, valued from its vault at the closing time, rose more than SPY's close-to-close change over the same week. NO otherwise. The value is published as JSON at /api/nav/<basket>, and the market names that URL as its first source of truth.
Nothing in it needs trusting Sheaf. The recipe (units of each stock per share) and the vault balances are public accounts; each stock's dividend multiplier sits on its mainnet mint; the prices are Jupiter's public API. The JSON lists every input and the curl commands to fetch them yourself.
What /api/nav answers for a basket, live, trimmed
Reading…
Every part of Panta's API, used.
Each write is a session: quote, build an unsigned transaction, the wallet signs, then Panta is told the signature. Sheaf drives all of them and shows Panta's answer at every step.
GET /markets/, GET /categories/This page and every basket pageGET /markets/{id}/, GET /markets/{id}/trades/Positions on /portfolioPOST /markets/create/quote/ → /markets/create/build/ → wallet signs → POST /markets/register/Basket page, “Open it on Panta”POST /primaryorderquote/ → /primaryorderbuild/ → wallet signs → /primaryordersubmit/ → /primaryorderverify/ → POST /trades/Basket page, “Take a side”GET /positions/?wallet=/portfolio, PredictionsPOST /claim/build/ → wallet signs → POST /trades//portfolio, PredictionsPOST /claim/creator-fees/build/Basket page, “Creator fees”Why the sandbox.
Opening a market on Panta costs about 50 USDC plus SOL, and Sheaf spends no real money. A pk_test_ key runs the identical flow against Panta's fixtures: same endpoints, same request bodies, canned answers, nothing on mainnet. Those answers are labelled wherever they appear, so a fixed sandbox quote is never passed off as this basket's price.
What changes for live.
One environment variable: a pk_live_ key in PANTA_API_KEY. Discovery, data, positions and quotes then read Panta's mainnet catalog. Building, signing and reporting stay locked to the sandbox in Sheaf's server code until a market is sponsored, so the live demo cannot move USDC by accident.