Prepare or place a user-signed limit order. Union on `requiresSignature`: true → sign the returned EIP-712 typedData and resubmit; else the order was placed.
problee_place_limit_orderPrepare or place a limit order. Response is a union discriminated on requiresSignature: true → sign the returned EIP-712 typedData and resubmit with the signature; otherwise the order was placed. The user wallet signs the EIP-712 order; the protocol operator key is never used as user identity. Reusing a live clOrdId with different (market, side, price, amount, kind) returns 409 CLORDID_CONFLICT.
Examples: First call without signature — server returns EIP-712 typedData to sign; Signing branch — sign typedData exactly as returned, then resubmit with orderSignature + nonce; Resubmit with wallet signature and the nonce from the signing payload
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 0=buy/bid, 1=sell/ask | |
| side | Yes | 0=outcome 1, 1=outcome 2 | |
| nonce | No | Order nonce for a user-signed EIP-712 order | |
| price | No | Limit price in basis points. Must land on this market's price grid, published as tradingRules.priceBands: default markets are BANDED — 10-bps rungs below 500 and above 9500, 100-bps rungs in between — and an off-grid price is refused with 400 PRICE_OFF_TICK naming the two nearest legal prices. Resting orders (GTC or postOnly) meet tradingRules.minRestingShares and minRestingExpirySeconds. Passive postOnly orders have no collateral-notional minimum (minRestingNotional is 0). Active BUY orders (postOnly absent or false) retain the book snapshot's effectiveMinBuyAmount: principal notional for GTC, total budget including fees for IOC/FOK. IOC/FOK SELL meets minSellShares. A verified entire-position SELL is exempt from size floors. There is no longer a per-fill collateral floor: settlement stopped asserting the market's minBuyAmount in the 2026-08-31 beacon upgrade, so that field is a deprecated, unenforced record and no size need be checked against it. Provide either price or priceDecimal. | |
| amount | Yes | Order size in OUTCOME-TOKEN smallest units, using the market collateral's decimals (PM: 6 — always read decimals from market metadata). One whole outcome token redeems for one whole collateral token; this field is NOT a collateral amount. Collateral locked = price × amount ÷ 10000. | |
| expiry | No | Unix timestamp expiry | |
| chainId | No | Chain id for the market address. Required when the same market address exists on multiple chains. | |
| clOrdId | No | Client-supplied order id (maximum 200 characters; optional at placement; off-chain and not part of the EIP-712 Order / orderHash). Used for reconciliation, cancel-by-clOrdId, and live-order idempotency: the same (wallet, clOrdId) with matching (market, side, price, amount, kind) returns the existing open/partially-filled order; a divergent body yields 409 CLORDID_CONFLICT. After the order reaches a terminal status the id may be reused. Orthogonal to the HTTP Idempotency-Key header (transport-level). | |
| postOnly | No | Maker-only (off-chain, not signed): reject the order if any part would cross the book on placement, so it can never pay taker. | |
| proofNonce | Yes | Required single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed. | |
| timeInForce | No | Time-in-force (off-chain, not signed): GTC rests until filled/cancelled (default); IOC fills what crosses now and cancels the remainder; FOK fills the full amount or is rejected. | |
| priceDecimal | No | Limit price as a 0–1 decimal probability (agent convention): 0.55 = 5500 bps. Converted by rounding to the nearest whole BPS; the result must then land on this market's price grid (tradingRules.priceBands) or placement returns PRICE_OFF_TICK with the two nearest legal prices — a stated limit price is never silently moved. Provide either price (bps) or priceDecimal — not both. | |
| marketAddress | Yes | Orderbook market address | |
| walletAddress | Yes | Wallet address placing the order | |
| idempotencyKey | Yes | Required write-safety key. Use a new key after signing because the signed submission is a different request. | |
| orderSignature | No | User EIP-712 signature over the order. Omit to receive signing payload. | |
| walletSignature | Yes | Action-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp). | |
| signatureTimestamp | Yes | Unix timestamp (seconds) used in the signed challenge message |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |