Submits an EIP-712-signed order to the matching engine. Strict balance lock runs inside a single PG transaction before the matcher is called. The signer (your key’s associatedWallet) must equal the EIP-712 signer — impersonation is refused. Rate limited at 20 req/s per wallet. Sign the EIP-712 struct with Order.expiration = 0 to avoid MatchFailed(OrderExpired) (selector 0xc56873ba) on on-chain settlement — settlement is asynchronous, and a tight TTL races the submitter.
Partner / integrator key — format ps_live_<keyId>_<secret>. Issued by PredictStreet ops via the admin panel; never self-service. Never ship to a browser. multi_wallet partners must additionally send X-User-Wallet: 0x<40-hex> on every authenticated request to declare the acting wallet. See the API keys guide for scope taxonomy, partner kinds, rate limits, and rotation procedure.
Required for multi_wallet partners on every authenticated request; ignored for single_wallet. Declares the acting end-user wallet for this request — drives KYC checks, balances/positions/orders attribution, rate-limit buckets, and audit. Lower-cased server-side. Missing on a multi_wallet key → 401 api_key_user_wallet_required; malformed → 401 api_key_user_wallet_invalid. The on-chain CTFExchange/Vault contracts still verify EIP-712 signer ↔ vault binding, so loosening API-layer attribution is safe by construction.
^0x[a-fA-F0-9]{40}$"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb3"
App-level market symbol. The platform resolves the on-chain tokenId for the chosen outcome automatically.
"NC26-BIN-83479265"
buy, sell 0 = first outcome (YES for binary), 1 = second outcome (NO for binary). Index into market.outcomes[] for N-ary.
0, 1 Decimal USDC price per outcome token. Strictly between 0 and 1, max 6 decimals.
"0.42"
Decimal outcome-token quantity. Strictly > 0, max 6 decimals.
"2"
Decimal-string of the salt field used in the signed EIP-712 Order struct (uint256).
Unix-seconds = Order.expiration in the signed struct. Recommended 0 (no on-chain expiry); a tight TTL races async settlement and surfaces as MatchFailed(OrderExpired) (selector 0xc56873ba).
x >= 00
Vault address (= VaultFactory.vaultOf(signer)). Must equal Order.maker in the signed struct. The backend recomputes vaultOf(signer) and rejects mismatches with 400 bad_signature.
^0x[a-fA-F0-9]{40}$"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb3"
EIP-712 signature over the full on-chain CTFExchange Order struct (11 fields). verifyingContract = the binary CTFExchange or neg-risk PredictStreetNegRiskCtfExchange for the market.
^0x[a-fA-F0-9]+$Idempotency key scoped per associatedWallet. A retry with the same (wallet, clientOrderId) returns the original response.
128Order type. limit rests in the book at price (or matches incoming counterparties at price-or-better). market consumes the best resting prices up to price as a slippage cap. market requires timeInForce ∈ {ioc, fok} — market + gtc is rejected with code: invalid_tif because a MARKET order cannot rest.
limit, market Time-in-force. gtc (Good-Till-Cancelled) — default for limit; rests until filled, expired, or cancelled. ioc (Immediate-Or-Cancel) — match what is available at price-or-better, cancel any unfilled remainder immediately; partial fills are allowed. fok (Fill-Or-Kill) — fully fill or cancel without any partial fill. Default for market is ioc; sending market + gtc returns 400 with code: invalid_tif.
gtc, ioc, fok Server-side order id (UUID). Empty string when status=REJECTED.
Lifecycle state at the moment of response. Note: a 200 response may carry status=REJECTED together with a populated code / message — partner SDKs MUST inspect the body, not just the HTTP code (audit M5).
PENDING, OPEN, FILLED, CANCELLED, REJECTED, EXPIRED, SETTLEMENT_FAILED Cumulative quantity filled at response time (decimal string).
quantity - filledQty (decimal string).
Synchronous fills produced by IOC/FOK or aggressive LIMIT orders.
Reject reason code (insufficient_balance, invalid_amounts, market_not_open, bad_signature, position_limit_breached, …). Present when status=REJECTED.
Human-readable explanation; pairs with code.