curl --request POST \
--url https://api.velora.xyz/v2/delta/orders/build \
--header 'Content-Type: application/json' \
--data '
{
"route": {
"origin": {
"input": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"output": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
},
"destination": {
"input": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"output": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
},
"bridge": {
"protocol": "<string>",
"estimatedTimeMs": 123,
"tags": [],
"contractParams": {
"protocolSelector": "<string>",
"outputToken": "<string>",
"scalingFactor": 123,
"protocolData": "<string>"
}
},
"fees": {
"gas": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"bridge": [
{
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
]
}
},
"owner": "<string>",
"deadline": 123,
"side": "SELL",
"beneficiary": "<string>",
"nonce": "<string>",
"permit": "<string>",
"slippage": 100,
"limitAmount": "<string>",
"metadata": "0x",
"partiallyFillable": false,
"partnerAddress": "<string>",
"partnerFeeBps": 0,
"partnerTakesSurplus": false,
"capSurplus": true,
"orderType": "Order",
"handler": "<string>",
"data": "<string>",
"strategy": "<string>",
"useShares": true,
"interval": 61,
"numSlices": 3,
"totalSrcAmount": "<string>",
"totalDestAmount": "<string>",
"maxSrcAmount": "<string>"
}
'{
"toSign": {
"domain": {
"name": "<string>",
"version": "<string>",
"chainId": 123,
"verifyingContract": "<string>"
},
"types": {},
"value": {}
},
"orderHash": "<string>"
}/v2/delta/orders/build
Server-built EIP-712 typed data ready to sign. Pass the route from /v2/delta/prices verbatim.
curl --request POST \
--url https://api.velora.xyz/v2/delta/orders/build \
--header 'Content-Type: application/json' \
--data '
{
"route": {
"origin": {
"input": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"output": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
},
"destination": {
"input": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"output": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
},
"bridge": {
"protocol": "<string>",
"estimatedTimeMs": 123,
"tags": [],
"contractParams": {
"protocolSelector": "<string>",
"outputToken": "<string>",
"scalingFactor": 123,
"protocolData": "<string>"
}
},
"fees": {
"gas": {
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
},
"bridge": [
{
"token": {
"chainId": 123,
"address": "<string>"
},
"amount": "<string>",
"amountUSD": "<string>"
}
]
}
},
"owner": "<string>",
"deadline": 123,
"side": "SELL",
"beneficiary": "<string>",
"nonce": "<string>",
"permit": "<string>",
"slippage": 100,
"limitAmount": "<string>",
"metadata": "0x",
"partiallyFillable": false,
"partnerAddress": "<string>",
"partnerFeeBps": 0,
"partnerTakesSurplus": false,
"capSurplus": true,
"orderType": "Order",
"handler": "<string>",
"data": "<string>",
"strategy": "<string>",
"useShares": true,
"interval": 61,
"numSlices": 3,
"totalSrcAmount": "<string>",
"totalDestAmount": "<string>",
"maxSrcAmount": "<string>"
}
'{
"toSign": {
"domain": {
"name": "<string>",
"version": "<string>",
"chainId": 123,
"verifyingContract": "<string>"
},
"types": {},
"value": {}
},
"orderHash": "<string>"
}Body
Pass the unmodified route from GET /v2/delta/prices. The chain ID is derived from the route.
Show child attributes
Show child attributes
Required. Unix seconds after which the order is unfillable.
SELL, BUY Defaults to owner.
Permit / Permit2 payload, or 0x if approved on-chain.
Slippage in basis points.
0 <= x <= 10000Override the SDK-computed destAmount (SELL) / srcAmount (BUY).
Defaults to zero address.
0 <= x <= 200Order, ProductiveOrder, ExternalOrder, TWAPOrder, TWAPBuyOrder Required for ExternalOrder.
Required for ExternalOrder. Handler-specific encoded bytes.
Required for ProductiveOrder.
Required for TWAP. Slice interval in seconds.
x >= 60Required for TWAP.
x >= 2Required for TWAPOrder. route.origin.input.amount must equal floor(totalSrcAmount / numSlices).
Required for TWAPBuyOrder. route.origin.output.amount must equal floor(totalDestAmount / numSlices).
Required for TWAPBuyOrder. Maximum total source the user is willing to spend.
Was this page helpful?