GuidesBuild schemas by venue
PredictStreet
Step zero — from nothing to your first trade
Section titled “Step zero — from nothing to your first trade”PredictStreet settles on ADI Chain and holds your collateral in a vault that belongs to your account, not to Predictefy.
- Create the account and its vault. Start at adipredictstreet.com
and provision the caller-specific vault. The vault must exist before you can build an order — the
execution lane resolves
vaultOfand will not create one for you. - Obtain the API key. Provision the account and vault first, then obtain its PredictStreet API key. You need it before submitting, though not to build.
- Connect the signing EOA. An EOA on ADI Chain (
36900) signs the VAULT-type EIP-712 order. That private key stays in your process; only the signature crosses the API. - Fund the vault. Deposit six-decimal ADI-chain USDC.e: approve the dynamic vault, then call
depositERC20. There is no hosted funding helper for this venue. - Check access. This lane is default off and unregistered — an empty or unknown-only
PREDICTSTREET_EXCHANGE_ADDRESSESregisters nothing. CallGET /v1/exec/venuesbefore building, and note the lane serves build and submit only, with no hosted cancel.
What you need first
Section titled “What you need first”- Production status: Armed for build and submit as verified on 2026-08-15; cancel, caller-key status refresh and native account reads were added on 2026-09-19 (see below).
- Wallet and chain: An EOA on ADI Chain (
36900) signs a VAULT-type EIP-712 order. - Venue account: Yes. Provision the caller-specific PredictStreet vault before building and obtain the caller’s PredictStreet API key before submitting.
- Credentials: The EOA private key stays client-side. The API key transits only submit, after signature recovery over the stored digest, and is never retained.
- Funding: Deposit six-decimal ADI-chain USDC.e into the caller’s vault. Approve that dynamic
vault and call
depositERC20; the execution lane only resolvesvaultOfand has no funding helper.
PredictStreet is a strict server-built lane with no client-echo compatibility path. It is
source-ready but default off and unregistered. An empty or unknown-only
PREDICTSTREET_EXCHANGE_ADDRESSES registers nothing; check GET /v1/exec/venues before building.
Send the native decimal token id as asset, or outcome + outcomeSide, with isBuy, a
0.01-tick probability-dollar price from 0.01 through 0.99, up to six-decimal share size,
and the EOA owner. Optional
expiresAt: 0 builds GTC, postOnly defaults false, and the only accepted signature type is VAULT
1. The server resolves the catalog outcome, then rechecks the live condition id, token id,
open/tradable state, taker fee, and NegRisk flag. It also calls the verified VaultFactory’s
read-only vaultOf(owner); a missing vault fails before any execution is persisted.
The artifact pins ADI Chain 36900, six-decimal USDC.e
0x9cb8142aEBBcdc60AF7c97Af897A67A8f3CA71C2, buildVersion: 1, and EIP-712 domain
PredictStreet version 1. Standard markets use exchange
0x90EA87493E208A14011EC700Ac9cbAf4d064acc0; NegRisk markets use
0x79ACbb874dd01044FA38a89c1478E60FaAB40D00. The signed 11-field order is salt, maker,
signer, taker, tokenId, makerAmount, takerAmount, expiration, feeRateBps, side, and
signatureType. BUY notional rounds up one collateral atom; SELL notional rounds down.
Sign the returned typed data in the owner’s wallet. Submit
{ executionId, signature, owner, apiKey }. Predictefy validates the versioned server-stored
artifact and recovers the signer over its stored digest before it reads the API key. It then relays
that exact stored order once and discards the key. Hosted settlement is not implemented.
Predict Street Limited states it operates under Gibraltar licence 167, and FIFA
names it the official prediction-market partner of the FIFA World Cup 2026; jurisdiction and user
eligibility remain the operator’s and integrator’s compliance responsibility.
What the lane carries beyond build and submit (2026-09-19)
Section titled “What the lane carries beyond build and submit (2026-09-19)”Every verb below authenticates with the caller’s own PredictStreet API key, sent once and never
stored. The key needs the matching scope: orders:write for submit and cancel, orders:read for
status and fills, portfolio:read for positions and balances.
- Wallet attribution — every authenticated request carries
X-User-Walletbeside the key: the stored order’s signer for place, cancel and status, theowneryou state for account reads. PredictStreet requires that header formulti_walletpartner keys and ignores it forsingle_walletkeys; you never send it yourself. - Cancel —
POST /v1/exec/predictstreet/orders/{id}/cancelbuilds a cancel artifact from the stored order only (it accepts no fields); submit{ executionId, owner, apiKey }. Only the venue’s exactcancelledreceipt for that order id maps tocanceled. PredictStreet answersnot_found(HTTP 200) for an unknown order and for one that is already terminal, so that answer is reported as unconfirmed — refresh the order to learn which. - Status refresh —
POST /v1/exec/predictstreet/orders/{id}/refreshwith{ owner, apiKey }reads the order by id. The answer is used only when its id, wallet, vault and client order id all belong to the stored execution; otherwise the stored status is kept and the response’sobservation.reasonsays why. Fills are appended only when the recorded fills plus the venue’s new trades add up to the order’sfilledQtyexactly; when they do not, the status still follows the venue andobservation.fillsReconciledisfalse. Afailedorder (rejected, or settlement failed) records no fills. There is no credential-free background poll. - Positions and balances —
POST /v1/exec/predictstreet/positionsand/balancewith{ owner, apiKey }(positions also acceptfilter:openby default, orwon,lost,voided,all). The answer must be for the wallet you named: asingle_walletkey answers for its own bound wallet, and a mismatch is refused rather than served. Accounting fields appear only where the venue returned them; balances keep the venue’s decimal strings verbatim. A paginated positions answer is refused for now, because the venue does not document its cursor parameter. - Redeem / settlement — not implemented. PredictStreet’s gasless redeem needs an owner-signed
EIP-712
RedeemAuthorizationwhose field types the venue has not published;intent: "redeem"stays501 NOT_IMPLEMENTEDuntil it does. - Modify, batch cancel, cancel-all, open-orders listing — not implemented.