Builder Code
{
"types": {
"EIP712Domain": [
{ "name": "name", "type": "string" },
{ "name": "version", "type": "string" },
{ "name": "chainId", "type": "uint256" },
{ "name": "verifyingContract", "type": "address" }
],
"RegisterBuilder": [
{ "name": "dexChain", "type": "string" },
{ "name": "name", "type": "string" },
{ "name": "nonce", "type": "uint64" },
{ "name": "expiryAfter", "type": "uint64" }
]
},
"primaryType": "RegisterBuilder",
"domain": {
"name": "SignTransaction",
"version": "1",
"chainId": 421614,
"verifyingContract": "0x0100000000000000000000000000000000000001"
},
"message": {
"dexChain": "Testnet",
"name": "example-builder",
"nonce": 1763023626904,
"expiryAfter": 1763023926904
}
}Body
nonceinteger · int64Required
expiryAfterinteger · int64 · nullableOptional
Sign 0 when omitted or null.
Responses
200
Transaction submitted
application/json
codeintegerOptionalExample:
0 = success. See Error Codes section for non-zero values.
0messagestringOptional
post/exchange/registerBuilder
result = client.exchange.register_builder("example-builder")
# See the linked runnable example above.
200
Transaction submitted
{
"code": 0,
"message": "success",
"data": {
"txHash": "0xabc...",
"txCode": 0,
"txMsg": ""
}
}{
"types": {
"ApproveAgentToBuilder": [
{ "name": "dexChain", "type": "string" },
{ "name": "agentAddress", "type": "address" },
{ "name": "builderAddress", "type": "address" },
{ "name": "maxFeeRate", "type": "string" },
{ "name": "validitySeconds", "type": "uint64" },
{ "name": "nonce", "type": "uint64" },
{ "name": "expiryAfter", "type": "uint64" }
]
},
"primaryType": "ApproveAgentToBuilder",
"domain": { "name": "SignTransaction", "version": "1", "chainId": 421614, "verifyingContract": "0x0100000000000000000000000000000000000001" },
"message": {
"dexChain": "Testnet",
"agentAddress": "0x<builder-agent-address>",
"builderAddress": "0x<builder-master-address>",
"maxFeeRate": "0.0002",
"validitySeconds": 3600,
"nonce": 1763023626904,
"expiryAfter": 1763023926904
}
}Body
nonceinteger · int64Required
expiryAfterinteger · int64 · nullableOptional
Sign 0 when omitted or null.
Responses
200
Transaction submitted
application/json
codeintegerOptionalExample:
0 = success. See Error Codes section for non-zero values.
0messagestringOptional
post/exchange/approveAgentToBuilder
trader.exchange.approve_agent_to_builder(
builder.wallet.master_address, "0.0002", 3600,
agent_address=builder.wallet.agent_address,
)
# See the linked runnable example above.
200
Transaction submitted
{
"code": 0,
"message": "success",
"data": {
"txHash": "0xabc...",
"txCode": 0,
"txMsg": ""
}
}{
"types": {
"RevokeAgentToBuilder": [
{ "name": "dexChain", "type": "string" },
{ "name": "nonce", "type": "uint64" },
{ "name": "expiryAfter", "type": "uint64" }
]
},
"primaryType": "RevokeAgentToBuilder",
"domain": { "name": "SignTransaction", "version": "1", "chainId": 421614, "verifyingContract": "0x0100000000000000000000000000000000000001" },
"message": {
"dexChain": "Testnet",
"nonce": 1763023626904,
"expiryAfter": 1763023926904
}
}Body
nonceinteger · int64Required
expiryAfterinteger · int64 · nullableOptional
Sign 0 when omitted or null.
Responses
200
Transaction submitted
application/json
codeintegerOptionalExample:
0 = success. See Error Codes section for non-zero values.
0messagestringOptional
post/exchange/revokeAgentToBuilder
result = trader.exchange.revoke_agent_to_builder()
# See the linked runnable example above.
200
Transaction submitted
{
"code": 0,
"message": "success",
"data": {
"txHash": "0xabc...",
"txCode": 0,
"txMsg": ""
}
}{
"types": {
"Agent": [
{ "name": "source", "type": "string" },
{ "name": "connectionId", "type": "bytes32" }
]
},
"primaryType": "Agent",
"domain": { "name": "Exchange", "version": "1", "chainId": 421614, "verifyingContract": "0x0100000000000000000000000000000000000001" },
"message": { "source": "b", "connectionId": "0x<keccak256-result>" }
}message MsgPlaceBuilderOrder {
int64 cl_ord_id = 1;
int64 symbol_code = 2;
string ord_px = 3;
string ord_qty = 4;
string trigger_px = 5;
OrdType ord_type = 6;
OrdSide ord_side = 7;
OrdTIF time_in_force = 8;
ReduceOnlyOption reduce_only_option = 9;
int64 parent_ord_id = 10;
ConditionalOrdTriggerType tpsl_trigger_type = 11;
string slippage_pct = 12;
string builder_addr = 13;
string builder_fee_rate = 14;
}Body
nonceinteger · int64Required
expiryAfterinteger · int64 · nullableOptional
Use 0 in the L1 connection ID when omitted or null.
vaultAddressstring · nullableOptional
Responses
200
Transaction submitted
application/json
codeintegerOptionalExample:
0 = success. See Error Codes section for non-zero values.
0messagestringOptional
post/exchange/placeBuilderOrder
result = builder.exchange.place_builder_order(
symbol_code=1, px="65000", qty="0.001",
builder=builder.wallet.master_address, builder_fee_rate="0.0002",
)
# See the linked runnable example above.
200
Transaction submitted
{
"code": 0,
"message": "success",
"data": {
"txHash": "0xabc...",
"txCode": 0,
"txMsg": ""
}
}message MsgPlaceBuilderBracketOrder {
MsgPlaceBuilderOrder main_order = 1;
MsgPlaceBuilderOrder take_profit_order = 2;
MsgPlaceBuilderOrder stop_loss_order = 3;
}Body
nonceinteger · int64Required
expiryAfterinteger · int64 · nullableOptional
Use 0 in the L1 connection ID when omitted or null.
vaultAddressstring · nullableOptional
Responses
200
Transaction submitted
application/json
codeintegerOptionalExample:
0 = success. See Error Codes section for non-zero values.
0messagestringOptional
post/exchange/placeBuilderBracketOrder
result = builder.exchange.place_builder_bracket_order(
[main_order, take_profit_order, stop_loss_order],
builder.wallet.master_address, "0.0002",
)
# See the linked runnable example above.
200
Transaction submitted
{
"code": 0,
"message": "success",
"data": {
"txHash": "0xabc...",
"txCode": 0,
"txMsg": ""
}
}Last updated

