Skip to main content
POST
Place a limit order
object
required
The draft from prepare, unchanged.
hex
required
The taker’s signature over the draft’s typedData.
object
{ value, deadline, v, r, s } when the sell token supports EIP-2612 and Permit2 is not yet approved.
Returns 201 with the order. The keeper leader auctions it every LIMIT_POLL_MS (5 s) while its price is within 150 bps of the oracle mid, and fills it through executeLimit when a resolver meets the price.
string
number
string
open, filling, filled, cancelled or expired.
object
{ token, max }.
object
{ token, amount, nonce, deadline }.
string
string | null
The quote that filled it.
number
Auctions run so far.
string | null
string | null
string | null
The best offer at the last auction.
string
The EIP-191 text to sign to cancel: panofx-cancel-limit|<chainId>|<orderId>.
object
{ permit2, wordPos, mask }: the invalidateUnorderedNonces call that ends the Permit2 signature itself.
Errors: 400 terms_mismatch, bad_signature, below_minimum, bad_expiry, limit_below_fees, taker_not_ready; 409 nonce_used, wrong_chain; 429 too_many_open.