Skip to main content
POST
Create order

Body

application/json
order_id
string
required
owner_address
string
required
signer_address
string
required
subaccount_id
string
required
recipient_id
string
required
nonce
string
required
asset_address
string
required
worst_fee
string
required
expiry
integer
required
action_json
any
required
signature
string
required
side
enum<string>
Available options:
buy,
sell
sub_id
string
default:0
desired_amount
string
filled_amount
string
default:0
limit_price
string
order_entry_spec
string

cNGN-USDC and cNGN-PERP only — sending it on an order for any other market is rejected. Optional: omit both this and ui_intent to submit raw engine values. If either is present, this must be the market's own spec — cngn_usdc_spot_v1 on spot, cngn_usdc_perp_v1 on the perp — and ui_intent becomes required. The retired usdc_cngn_spot_v1 and usdc_cngn_perp_v1 specs, and the other market's spec, are refused.

Example:

"cngn_usdc_spot_v1"

ui_intent
object

cNGN-USDC and cNGN-PERP only — sending it on an order for any other market is rejected. Optional, and paired with order_entry_spec: sending one without the other is rejected. When present, the service derives side, limit_price and desired_amount from it as the identity: side = ui_intent.side, limit_price = ui_intent.price (USDC per cNGN), desired_amount = ui_intent.size (cNGN). If you send those fields as well, each must equal its ui_intent counterpart or the order is rejected.

Response

Accepted order

order
object