Place a limit order
place_limit_orderPlace a limit order. Default timeInForce=GTT (long-term, durable, broadcast-commit so errors return synchronously). Use SHORT_TERM only for latency-sensitive orders (expire within ~20 blocks, broadcast async). NOTE: stateful (GTT) orders are rate-limited to 2/block and 20 per 100 blocks — pace placements. Returns confirmation with the REAL outcome verified via the indexer (filled / partially_filled / resting / unfilled / pending) — broadcast code: 0 only means the tx was accepted, NOT that it filled. Report from confirmation.outcome; if it is pending, the indexer is lagging — re-check shortly.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"market": "<market>",
"side": "<side>",
"price": "<price>",
"size": "<size>"
},
"name": "place_limit_order"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | Size in base units | |
| price | Yes | ||
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | Verify the real outcome via the indexer after broadcast (default true). | |
| clientId | No | ||
| postOnly | No | Reject if it would cross (maker-only). Defaults to server config. | |
| reduceOnly | No | ||
| timeInForce | No | GTT | |
| goodTilBlockOffset | No | SHORT_TERM blocks ahead (default 10) | |
| goodTilTimeSeconds | No | GTT lifetime (default 3600) |