Predict.fun API
Predict.fun is a prediction market on BNB Smart Chain. It runs the same contract design as Polymarket v1: a CTF exchange, Gnosis conditional tokens, a neg-risk adapter and a UMA-style question adapter. Bitquery decodes it into the same PredictionTrades, PredictionManagements and PredictionSettlements cubes used for Polymarket, so the queries below work with EVM(network: bsc).
Network: BSC (network: bsc). Part of the Prediction Market API lifecycle (Management → Trades → Settlement).
predict.fun data on BSC is available from 22 Oct 2026 in the real-time dataset. Historical (archive) data is not available yet, so dataset: archive returns an error for these cubes on BSC.
What is different from Polymarket
- Collateral is BSC USDT (
0x55d398326f99059ff775485246999027b3197955) with 18 decimals, not USDC. - Marketplace.ProtocolName is
predict.funand ProtocolFamily isGnosis_CTF. - Yield-bearing exchanges keep USDT in Venus. Their trades have ProtocolVersion
1-yield. Standard exchanges have1. - Question.MarketId is empty. Use Question.Id or ConditionId to identify a market.
- Short crypto markets. predict.fun runs 5-minute and 15-minute Up/Down markets. Their titles look like
price round: BTC up or down, 5m from 2026-10-26 13:45:00Z.
Exchange contracts
Trades come from four exchange contracts (Trade.Prediction.Marketplace.SmartContract):
| Exchange contract | ProtocolVersion |
|---|---|
0x8bc070bedab741406f4b1eb65a72bee27894b689 | 1 |
0x365fb81bd4a24d6303cd2f19c349de6894d8d58a | 1 |
0x6beb5a40c032afc305961162d8204cda16decfa5 | 1-yield |
0x8a289d458f5a134ba40015085a8f50ffb681b41d | 1-yield |
Market creation, resolution and settlements are emitted by the conditional-token contracts, for example 0x22da1810b194ca018378464a58f6ac2b10c9d244.
predict.fun-only filter
Add this to the where clause of any query to restrict results to predict.fun:
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
For PredictionManagements use Management: { Prediction: { Marketplace: ... } }, and for PredictionSettlements use Settlement: { Prediction: { Marketplace: ... } }.
Trades
Real-time predict.fun trades stream
Subscribe to live predict.fun trades on BSC.
subscription PredictFunTradesStream {
EVM(network: bsc) {
PredictionTrades(
where: {
TransactionStatus: { Success: true }
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Block {
Time
}
Transaction {
Hash
From
}
Trade {
OutcomeTrade {
Buyer
Seller
Amount
CollateralAmount
CollateralAmountInUSD
OrderId
IsOutcomeBuy
}
Prediction {
ConditionId
CollateralToken {
Symbol
SmartContract
}
OutcomeToken {
SmartContract
AssetId
}
Marketplace {
SmartContract
ProtocolName
ProtocolVersion
}
Question {
Title
Id
CreatedAt
}
Outcome {
Label
Index
Id
}
}
}
}
}
}
The price of a trade is CollateralAmount / Amount. Use the Price and PriceInUSD fields in queries (see below).
Latest predict.fun trades
query LatestPredictFunTrades {
EVM(network: bsc) {
PredictionTrades(
limit: { count: 50 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Block {
Time
}
Transaction {
Hash
}
Trade {
OutcomeTrade {
Buyer
Seller
Amount
CollateralAmount
CollateralAmountInUSD
OrderId
Price
PriceInUSD
IsOutcomeBuy
}
Prediction {
ConditionId
CollateralToken {
Name
Symbol
SmartContract
}
OutcomeToken {
SmartContract
AssetId
}
Marketplace {
SmartContract
ProtocolName
ProtocolFamily
ProtocolVersion
}
Question {
Title
Id
CreatedAt
}
Outcome {
Label
Index
Id
}
}
}
}
}
}
Trades of a wallet
A wallet can be the Buyer or the Seller of a trade. Use any to match both. Replace the address with your wallet.
query PredictFunWalletTrades {
EVM(network: bsc) {
PredictionTrades(
limit: { count: 100 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
any: [
{ Trade: { OutcomeTrade: { Buyer: { is: "0x8a7c3c1b1a3c0a5cdd2490130dd52623cb3eb05d" } } } }
{ Trade: { OutcomeTrade: { Seller: { is: "0x8a7c3c1b1a3c0a5cdd2490130dd52623cb3eb05d" } } } }
]
}
) {
Block {
Time
}
Transaction {
Hash
}
Trade {
OutcomeTrade {
Buyer
Seller
Amount
CollateralAmountInUSD
Price
IsOutcomeBuy
}
Prediction {
Question {
Title
Id
}
Outcome {
Label
}
}
}
}
}
}
Top markets by volume (last 24 hours)
query PredictFunTopMarkets {
EVM(network: bsc) {
PredictionTrades(
limit: { count: 20 }
orderBy: { descendingByField: "volume" }
where: {
TransactionStatus: { Success: true }
Block: { Time: { since_relative: { hours_ago: 24 } } }
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Trade {
Prediction {
ConditionId
Question {
Title
Id
}
}
}
trades: count
volume: sum(of: Trade_OutcomeTrade_CollateralAmountInUSD)
}
}
}
Volume per exchange contract (last 24 hours)
Shows how much volume goes through the standard and yield-bearing exchanges.
query PredictFunVolumeByExchange {
EVM(network: bsc) {
PredictionTrades(
where: {
TransactionStatus: { Success: true }
Block: { Time: { since_relative: { hours_ago: 24 } } }
Trade: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Trade {
Prediction {
Marketplace {
SmartContract
ProtocolVersion
}
}
}
trades: count
volume: sum(of: Trade_OutcomeTrade_CollateralAmountInUSD)
}
}
}
Current price of each outcome in a market
Returns the latest trade per outcome token. Replace the ConditionId with your market.
query PredictFunOutcomePrices {
EVM(network: bsc) {
PredictionTrades(
limitBy: { by: Trade_Prediction_OutcomeToken_AssetId, count: 1 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Trade: {
Prediction: {
ConditionId: { is: "0x91b57dec0e909ea9f44d00fa5cfdd61575dfac4bc1b3d3c513aa217c5c7828dd" }
}
}
}
) {
Block {
Time
}
Trade {
OutcomeTrade {
Price
PriceInUSD
}
Prediction {
Question {
Title
}
Outcome {
Label
Index
}
OutcomeToken {
AssetId
}
}
}
}
}
}
Volume and traders per outcome in a market
query PredictFunMarketVolume {
EVM(network: bsc) {
PredictionTrades(
where: {
TransactionStatus: { Success: true }
Trade: {
Prediction: {
ConditionId: { is: "0x91b57dec0e909ea9f44d00fa5cfdd61575dfac4bc1b3d3c513aa217c5c7828dd" }
}
}
}
) {
Trade {
Prediction {
Outcome {
Label
}
}
}
trades: count
volume: sum(of: Trade_OutcomeTrade_CollateralAmountInUSD)
buyers: uniq(of: Trade_OutcomeTrade_Buyer)
}
}
}
Markets (Managements)
Latest new markets
Lists newly created markets. The notLike filter hides the 5m and 15m price rounds, which make up most of the new markets.
query PredictFunNewMarkets {
EVM(network: bsc) {
PredictionManagements(
limit: { count: 20 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Management: {
EventType: { is: "Created" }
Prediction: {
Marketplace: { ProtocolName: { is: "predict.fun" } }
Question: { Title: { notLike: "price round%" } }
}
}
}
) {
Block {
Time
}
Transaction {
Hash
}
Management {
EventType
Prediction {
Condition {
Id
Oracle
QuestionId
Outcomes {
Id
Index
Label
}
}
Question {
Title
Id
CreatedAt
}
CollateralToken {
Symbol
SmartContract
}
}
}
}
}
}
Latest resolved markets
query PredictFunResolvedMarkets {
EVM(network: bsc) {
PredictionManagements(
limit: { count: 20 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Management: {
EventType: { is: "Resolved" }
Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } }
}
}
) {
Block {
Time
}
Transaction {
Hash
}
Management {
EventType
Prediction {
Condition {
Id
Oracle
Outcomes {
Label
Index
}
}
Question {
Title
Id
}
}
}
}
}
}
5m and 15m BTC price rounds
predict.fun opens new Up/Down rounds for crypto prices every few minutes. Filter on the title to get the rounds for one asset. Change BTC to ETH or another asset.
query PredictFunBTCRounds {
EVM(network: bsc) {
PredictionManagements(
limit: { count: 20 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Management: {
EventType: { is: "Created" }
Prediction: { Question: { Title: { includes: "BTC up or down" } } }
}
}
) {
Block {
Time
}
Management {
Prediction {
Condition {
Id
Outcomes {
Label
Index
Id
}
}
Question {
Title
Id
}
}
}
}
}
}
Some rounds show a feed id instead of an asset name in the title, for example price round: feed 0x0003…3f38 up or down, 15m from ….
Market event counts (last 24 hours)
query PredictFunManagementCounts {
EVM(network: bsc) {
PredictionManagements(
where: {
TransactionStatus: { Success: true }
Block: { Time: { since_relative: { days_ago: 1 } } }
Management: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Management {
EventType
}
count
}
}
}
Settlements
Settlements are Split (USDT into outcome tokens), Merge (outcome tokens back into USDT) and Redemption (winning tokens paid out after resolution).
Latest settlements
query PredictFunSettlements {
EVM(network: bsc) {
PredictionSettlements(
limit: { count: 20 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Settlement: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Block {
Time
}
Transaction {
Hash
}
Log {
Signature {
Name
}
SmartContract
}
Settlement {
EventType
Holder
OutcomeTokenIds
Amounts {
Amount
CollateralAmount
CollateralAmountInUSD
}
Prediction {
ConditionId
CollateralToken {
Symbol
SmartContract
}
Question {
Title
Id
}
}
}
}
}
}
Redemptions of a wallet
Shows payouts a wallet received from resolved markets. Replace the address with your wallet.
query PredictFunWalletRedemptions {
EVM(network: bsc) {
PredictionSettlements(
limit: { count: 50 }
orderBy: { descending: Block_Time }
where: {
TransactionStatus: { Success: true }
Settlement: {
EventType: { is: "Redemption" }
Holder: { is: "0xf29f1d048f138a22ba159f530ac3a7575694b69e" }
Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } }
}
}
) {
Block {
Time
}
Transaction {
Hash
}
Settlement {
EventType
Holder
Amounts {
CollateralAmount
CollateralAmountInUSD
}
Prediction {
ConditionId
Question {
Title
}
}
}
}
}
}
Settlement counts by type (last 24 hours)
query PredictFunSettlementCounts {
EVM(network: bsc) {
PredictionSettlements(
where: {
TransactionStatus: { Success: true }
Block: { Time: { since_relative: { days_ago: 1 } } }
Settlement: { Prediction: { Marketplace: { ProtocolName: { is: "predict.fun" } } } }
}
) {
Settlement {
EventType
}
count
collateral: sum(of: Settlement_Amounts_CollateralAmountInUSD)
}
}
}
Related
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.