Place Order
Places an order to be triggered if a provided price criteria is met.
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
order
object
Yes
signature
string
Yes
trigger
object
Yes
Trigger criteria could be any of:
{"price_above":"{PRICE}"}
,
{"price_below":"{PRICE}"}
,
{"last_price_above":"{PRICE}"}
,{"last_price_below":"{PRICE}"}
,{"mid_price_above":"{PRICE}"}
,{"mid_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
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