Place Order
Rate limits
A max of 100 pending trigger orders per subaccount
Request
POST [TRIGGER_ENDPOINT]/execute
Body
{
"place_order": {
"product_id": 1,
"order": {
"sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43746573743000000000000000",
"priceX18": "9900000000000000000000",
"amount": "1000000000000000000",
"expiration": "4294967295",
"nonce": "1757062078359666688"
},
"trigger": {
"price_below": "9900000000000000000000"
}
"signature": "0x",
"id": 100
}
}
Request Parameters
product_id
number
Yes
Id of spot / perp product for which to place order. Use All products query to retrieve all valid product ids.
signature
string
Yes
Hex string representing hash of the signed order. See Signing section for more details.
trigger
object
Yes
Trigger criteria could be any of: {"price_above":"{PRICE}"}
, {"price_below":"{PRICE}"}
, {"last_price_above":"{PRICE}"}
,{"last_price_below":"{PRICE}"}
digest
string
No
Hex string representing a hash of the order.
spot_leverage
boolean
No
Indicates whether leverage should be used; when set to false
, placing the order fails if the transaction causes a borrow on the subaccount. Defaults to true
.
id
number
No
An optional id that when provided is returned as part of Fill
and OrderUpdate
stream events when the order is triggered / executed
Order Nonce
To compute a nonce for a trigger order with a random integer of 1000
, and a discard time 50 ms from now, we can do the following:
import time
unix_epoch_ms = int(time.time()) * 1000
nonce = ((unix_epoch_ms + 50) << 20) + 1000 | (1 << 63)
Response
Success
{
"status": "success",
"signature": {signature},
"data": {
"digest": {order digest}
},
"request_type": "execute_place_order"
"id": 100
}
Failure
{
"status": "failure",
"signature": {signature}
"error": "{error_msg}"
"error_code": {error_code},
"request_type": "execute_place_order"
}
Last updated