Request parameters.
Withdraw funds from the user's CEX account (SPOT/FUNDING) to their bound CeDeFi MPC wallet address. Unlike v1/capital/withdraw/apply, the caller does NOT pass address; the backend resolves the user's bound CeDeFi MPC wallet address by userId and reuses the existing capital withdraw flow with that address as the target.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Notes:
| Value | Behavior |
|---|---|
null |
Allowed — defaults to SPOT |
0 |
Allowed — source = SPOT |
1 |
Allowed — source = FUNDING |
Other (e.g. 99) |
Rejected — returns validation error |
walletType (INT 0/1) for the source CEX account, while Apply MM Deposit uses accountType (STRING SPOT/FUNDING) for the target. The difference is intentional: withdraw reuses the existing v1/capital/withdraw/apply flow, which inherits that flow's integer walletType field."Request parameters.
Cancel one or more active prediction orders in a single request. Requires SAS authorization.
Known Issue — Bracket Encoding Incompatibility:*
This endpoint uses indexed bracket notation (cancelInfoList[0].orderId). Binance SAPI signature verification runs over the raw, unencoded canonical string. However, mainstream HTTP libraries (Python requests, Java HttpURLConnection/URI, Go net/url, Node.js url) automatically percent-encode [ → %5B and ] → %5D, producing a signature mismatch with error -1022 Signature for this request is not valid. Postman is unaffected because it does not encode keys.
Workarounds* (use low-level HTTP APIs that do not normalize URLs):
http.client (stdlib) and hand-build the body string.HttpURLConnection and write the raw body bytes directly.strings.NewReader with a hand-built body instead of url.Values.Encode().Weight(IP): 1
Security Type: PREDICTION_TRADE
Notes:
cancelInfoList[0].orderId, cancelInfoList[1].orderId, etc.vendor does not need to be supplied. The server automatically sets the correct vendor (predict_fun) for every item in the batch.Request parameters.
Redeem one or more settled prediction tokens on-chain to claim winnings. Requires SAS authorization.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Transfer funds from the prediction wallet back to the user's CEX account (SPOT or FUNDING). Requires SAS authorization.
⚠️ SAS Authorization Required: This endpoint enforces SAS (Self-Authorization Service) authorization. If SAS is not enabled for the wallet, the request will be rejected with -31003 SAS authorization required. Enable SAS for your wallet before calling this endpoint.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Create an OTC blocktrade as the maker (BID to buy outcome shares with USDT, or ASK to sell outcome shares for USDT). The maker wallet is resolved server-side by userId; signing is done server-side via SAS typedDataSign. Returns orderId and a one-time secretToken to share out-of-band with the intended taker.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
| side | makerAmount | takerAmount |
|---|---|---|
BUY |
USDT (wei) | shares (wei) |
SELL |
shares (wei) | USDT (wei) |
side encoding: this request uses a string enum (BUY/SELL). Responses from Get Blocktrade Detail / Preview / List return side as an integer and also include a quoteType string — both encode the same concept."Request side |
Response side (Integer) |
Response quoteType |
|---|---|---|
BUY |
0 |
"Bid" |
SELL |
1 |
"Ask" |
Request parameters.
Transfer funds from the user's CEX account (SPOT or FUNDING) into the prediction wallet. Requires SAS authorization.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Fulfil an open maker blocktrade as the taker, using the secretToken the maker shared out-of-band. All-or-nothing fill (no partial fill); the taker order is the server-derived symmetric inverse of the maker order.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Get full details for a specific prediction market topic, including variant data and timeline.
Weight(IP): 1
Response Notes:
status is a case-sensitive string. REGISTERED: registered and not yet resolved, this value alone does not guarantee that trading is available. RESOLVED: the outcome has been determined, it does not mean that the user has already claimed the payout. PAUSED: trading is temporarily suspended and may resume. CLOSED: closed for display, for example the end time has passed or the market was removed, it does not guarantee that trading is closed.markets[].tradingStatus shows whether new orders may be attempted. OPEN: new orders may be attempted, this is the only value that allows new orders. MATCHING_NOT_ENABLED: order matching is not enabled. CANCEL_ONLY: only cancellation is allowed. CLOSED: trading has stopped. Use markets[].tradingStatus, not status, to decide whether to place an order, because a market whose status is CLOSED can still have tradingStatus OPEN. A topic can contain several markets and an order is placed on one market, so only the tradingStatus of that market matters. A successful quote does not guarantee that an order is accepted or filled.outcomes[].winner is returned only after the market is resolved. There is no separate cancelled, invalid or refunded status. A resolved market can pay more than one outcome, in that case several outcomes have winner set to true and price is the settled value per share, for example 0.5 for each of two outcomes.Request parameters.
Query the maker's own blocktrade by orderId. Returns full order data including status and secretToken.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Paginated feed of blocktrade lifecycle and settlement events (CREATE, FULFIL, MATCH_SUBMIT, MATCH_SUCCESS, EXPIRE, FAILED, etc.).
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Query PredictFun reserved balances for the caller's bound wallet — these are funds locked by the caller's open OTC blocktrade orders (maker BID locks USDT, maker ASK locks shares). Not tied to a specific blocktrade id; the path nesting under otc/blocktrade reflects the cause of the lock, not a per-order query. Returns one entry per requested asset, aligned with the request order. Pass {type:"USDT"} for reserved USDT, or {type:"SHARE", tokenId:"..."} for a specific outcome token's reserved shares.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | STRING | YES | Asset type. Enum: USDT, SHARE |
| tokenId | STRING | NO | Outcome token id (present for SHARE entries only) |
Request parameters.
Get the authenticated user's prediction portfolio overview including active positions count, aggregated PnL, and full position list.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get the authenticated user's position detail for a specific prediction token.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Query the current user's daily trading quota limit and remaining allowance for prediction markets.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get a price quote for a prediction order. The returned quoteId must be used in the subsequent Place Order request.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Response Notes:
feeAmount is a string because it is denominated in wei (18 decimals) and may exceed JavaScript's safe integer range. feeDiscountBps is also a string to allow fractional basis-point values in the future. feeRateBps and slippageBps are integers and will never exceed safe integer bounds.BUY orders are checked by amount (amountIn) and SELL orders by share quantity, for both MARKET and LIMIT orders. If the amountIn of a BUY order is below the minimum, the server returns -9000 with the message Your order amount is too small. A successful quote does not guarantee that the order is accepted or filled, so check the error message and the final order status.Request parameters.
Query the on-chain transaction status of a previously submitted redeem request.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Response Notes:
| Value | Description |
|---|---|
PENDING |
Transaction submitted, awaiting confirmation |
CONFIRMED |
Transaction confirmed on-chain |
FAILED |
Transaction failed |
NOT_FOUND |
Transaction hash not found |
Request parameters.
List the maker's own blocktrades with optional status filter and cursor pagination.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Get all available prediction market categories (L1 and L2).
Weight(IP): 1
Get a paginated list of prediction market topics, with optional category and sort filters.
Weight(IP): 1
Response Notes:
status and markets[].tradingStatus, see Get Market Detail.Request parameters.
Get all prediction wallets registered for the authenticated user.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Semantic search for prediction market topics by keyword.
Weight(IP): 1
Request parameters.
Place a prediction order using a previously obtained quote. Requires SAS authorization.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Notes:
| orderType | timeInForce | priceLimit |
|---|---|---|
MARKET |
Must be FOK |
Not required |
LIMIT |
Must be GTC |
Required, must be > 0 |
Request parameters.
Inspect an open blocktrade by secretToken (no orderId needed). Taker uses this to preview the maker order before fulfilling. Returns the same shape as Get Blocktrade Detail, but orderId is null and secretToken is never returned from this endpoint.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Get active (open) prediction orders for the authenticated user.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get the most recent trade price for a prediction market.
Weight(IP): 1
Request parameters.
Get the current order book (bids and asks) for a specific prediction market outcome token.
Weight(IP): 1
Request parameters.
Get historical prediction orders (all statuses) for the authenticated user, with optional filters.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get available balances for each payment option that can be used for prediction trading.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Query profit and loss records for the authenticated user's prediction positions. When tokenId is provided, returns a single record in pnl; otherwise returns a list in pnlList.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get the authenticated user's prediction token positions with portfolio summary and tab-based filtering.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get prediction positions filtered by wallet address and/or market topic ID. Both parameters are optional.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Get the authenticated user's settled (resolved) prediction position history with optional filters.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Response Notes:
0.5 for each of two outcomes. This is not a refund of the purchase cost. Use finalOutcome, isWinner, claimAmount and redeemStatus together with your own claim records, and Get Market Detail for outcomes[].winner.Request parameters.
Get the authenticated user's prediction wallet transfer history within a date range.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Query the current status of a prediction wallet transfer by transfer ID.
status values:* Terminal states are COMPLETED and FAILED. Intermediate states are PROCESSING and PENDING. Do not poll for SUCCESS — it is not a valid terminal state.
Weight(IP): 1
Security Type: PREDICTION_TRADE
Request parameters.
Cancel open or fulfilled-but-unsettled blocktrades. Terminal orders (already MATCHED/CANCELLED/EXPIRED/FAILED) are returned in noop instead of removed.
Weight(IP): 200
Security Type: PREDICTION_TRADE
Notes:
Request parameters.
Generic function to send a request.
The API endpoint to call.
HTTP method to use (GET, POST, DELETE, etc.).
Query parameters for the request.
Body parameters for the request.
A promise resolving to the response data object.
Generic function to send a signed request.
The API endpoint to call.
HTTP method to use (GET, POST, DELETE, etc.).
Query parameters for the request.
Body parameters for the request.
A promise resolving to the response data object.
Move funds from the user's bound CeDeFi MPC wallet to their CEX account (SPOT/FUNDING) via a contract escrow + credit flow. The maker wallet is resolved server-side by
userId; the caller does not pass wallet or signature.Weight(IP): 1
Security Type: PREDICTION_TRADE
Notes:
fromToken/toToken: typically the same symbol (e.g. bothUSDT). When they differ, the backend may attempt a swap, but cross-symbol conversion is not guaranteed for all pairs — prefer using the same symbol."