BETAThe Prediction Market API is currently in beta and subject to breaking changes as we continue to improve the product. If you have any feedback, please reach out in Discord.
bisonfi provider, and its outcome tokens can also be traded directly through the Swap API.
Markets
Each Forecast event is one 15-minute BTC round with two binary markets:| Market ID | Wins when |
|---|---|
BISON-<marketPda>-UP | BTC’s price at close is at or above its open |
BISON-<marketPda>-DOWN | BTC’s price at close is below its open |
outcomeMint) worth $1 if it wins and $0 if it loses. Rounds are scheduled by the issuer rather than rotating continuously, so poll /events to find live ones. A round accepts orders only between its openTime and closeTime: a closed round returns bisonfi_market_not_tradable, while an open round with no routable liquidity returns no_route.
Two ways to integrate
| Path | Endpoints | Use it when |
|---|---|---|
| Prediction API (recommended) | /prediction/v1/orders + /prediction/v1/execute | You want Jupiter to track positions, P&L, and settlement. |
| Swap API | /swap/v2/order + /swap/v2/execute | You manage your own position tracking and trade the outcome tokens directly. |
outcomeMint is also tradable through the Swap API. Deposits are USDC only. The Prediction API path enforces a 5 to 250 USDC order size at build time; the direct Swap API path has no such cap.
Prerequisites
- An API key from the Developer Platform, sent as the
x-api-keyheader. The Prediction API is IP-restricted in some regions. - A Solana wallet funded with USDC (plus a little SOL for fees).
@solana/web3.jsfor signing.
Prediction API path
Every order, buy or sell, is built by the API, signed by you, then submitted to/execute with the build’s execution.context. This helper covers the sign-and-execute half:
Discover markets
Filter events by thebisonfi provider, with markets inline:
Buy
executionModel: "atomic_swap"), so there is no keeper order to poll: the position appears in GET /positions as soon as /execute returns. See Create Order for the full build response.
Sell
DELETE returns a sell transaction in the same shape, so it reuses the helper. You can sell only while the round is tradable, down to a minimum of 0.01 tokens (smaller dust returns bisonfi_position_too_small). There is no claim step for Forecast: after a round resolves, winning tokens settle automatically and are redeemed on the issuer side.
GET /positions?ownerPubkey=<wallet> (filter to Forecast by a marketId starting BISON-); see Position Data & History for the fields.
Swap API path
To manage your own position tracking, trade the outcome token directly as a swap from USDC intomarket.outcomeMint, using the standard Order & Execute flow. Use a high slippageBps because outcome prices swing sharply near expiry. To exit, swap the outcome token back to USDC.
Reference
Verified on-chain configuration for Forecast (mainnet-beta):| Item | Value |
|---|---|
| Issuer program | 2sVcg2dBSUzXkmdZ8M5cp1LbnzDrWJmr6hktkHwB8nY3 |
| Config PDA | 8LczfBkVZJhGnTYH8nQke2YC3b83GFZ8qZtfuMRe6AN6 |
| Deposit / settlement mint | USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Outcome token program | Token-2022 TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb |
| BTC Chainlink feed | 0x00039d9e45394f473ab1f050a1b963e6b05351e52d71e507509ada0c95ed75b8 |
Related
Execute Order
API reference and “try it” panel for
/execute.About Prediction
How events, markets, positions, and settlement work.
Order & Execute
The Swap API flow behind the direct outcome-token path.
Position Data & History
Read holdings, P&L, and trade history.
