Timings and limits
Lifecycle timings, per-minute rate limits, and the operating rules that shape a strategy on Cardiv.
Timings
A full lifecycle step, order intent to a confirmed OPEN, runs about 30 to 45 seconds on committed transactions. A cancellation to a confirmed CANCELLED is comparable. Individual steps vary widely with network conditions, so budget the whole range rather than the fast end of it.
That number belongs in the strategy, not only in the timeouts: wider levels, fewer of them, refreshed on market moves rather than on a timer. Concurrency raises throughput, never the speed of a single order.
All figures were measured on devnet. Production runs precompiled and is not expected to be slower, but measure your own path before you tune tightly.
Rate limits
The defaults are 600 order requests per minute and 1200 reads per minute. Both are set per account and can be adjusted; GET /account reports yours under limits.ordersPerMinute. Going past either returns 429 RATE_LIMITED, with the applicable limit in the body.
Your account may also carry an open order cap, reported as limits.maxOpenOrders. It counts your resting orders, meaning OPEN, PARTIALLY_FILLED and PENDING_TRIGGER, and placing past it returns 429 MAX_OPEN_ORDERS. A null value means no cap.
Submissions run concurrently within a capacity limit set by the venue's available network capacity rather than by a fixed number of slots. A submission arriving when capacity is exhausted waits for room instead of being refused, and fails only if no room becomes available. Bound your own in-flight submissions and treat a wait as normal. Under load the wait can outlast the request timeout and surface as LEDGER_COMMAND_REJECTED; that is a timeout, not a rejection, so check GET /orders/{orderId} before you retry.
Operating rules
- One order per request. There are no batch endpoints, for placement or for cancellation.
- No amend. Re-pricing is a cancellation followed by a placement, which is two full prepare, sign and submit cycles.
- Track orders by
orderId. ThecontractIdrotates on every partial fill. - Never withdraw the funds backing a resting order from your wallet. It strands the order beyond either side's ability to cancel it.
- Self-trading is impossible, in the matching engine and on the Canton Network alike. You need no client-side guard.
- Suspension (
403 MARKET_MAKER_SUSPENDED) stops new placements within about 30 seconds and leaves resting orders untouched. Ask Cardiv if you need your own flow stopped urgently; it takes effect within seconds.
Need help
Write to support@wolfedgelabs.com and include your party ID.