Deterministic routing rules that map user intent, quote responses, wallet state, and errors to the next Velora action.
Use these tables when an agent needs to choose the next Velora action. Prefer explicit rules over model judgment, and branch on the data returned by the API rather than on assumptions from the prompt.
Call GET /v2/quote with mode=ALL, chainId, token addresses, amount, slippage, and the app or project partner value.
Velora can choose the best available path.
”Gasless swap” or “I have no gas”
Delta
Call GET /v2/quote with mode=DELTA. Continue only if the response includes a delta block.
Delta uses an EIP-712 signature, a solver auction, and protocol settlement.
”Place a limit order” or “trade only if price reaches X”
Delta LIMIT order
Collect the target price, side, token pair, chain, amount, expiry, recipient, and partially-fillable preference before building the order.
New limit orders are Delta orders over the Delta API, not AugustusRFQ.
”TWAP this trade” or “split this order over time”
Delta TWAP
Collect side, total amount, number of slices, cadence/interval, chain, token pair, slippage/price constraints, deadline/expiry, recipient, and max source spend for buy TWAPs.
TWAP is one scheduled Delta order, not repeated independent swaps. Preserve sell-vs-buy amount semantics.
”Best price”
mode=ALL
Quote with mode=ALL, then branch on delta vs market.
Velora can choose the best available path.
”Protect me from MEV”
Delta
Call GET /v2/quote with mode=DELTA. Continue only if the response includes a delta block.
MEV protection is a Delta-only scenario.
”Swap now” or “settle in this transaction”
Market API
Call GET /v2/quote with mode=MARKET, then build a Market transaction.
Market returns calldata the user sends on-chain.
”Sell exactly this amount”
Sell quote
Treat the user amount as the source amount.
The user fixed input. Do not reinterpret it as a target output.
”Buy exactly this amount”
Buy quote
Treat the user amount as the destination amount and cap source spend.
The user fixed output. The agent should protect max spend.
”Embed swaps in my app”
SDK or Widget
Use the SDK for custom UX, or the Widget for fastest integration.
The agent should not build raw API plumbing when the requested job is app embedding.
”OTC” or “RFQ with a counterparty”
AugustusRFQ
Route to the AugustusRFQ flow.
AugustusRFQ is for OTC/RFQ settlement, not standard limit orders.
Use mode=ALL when the user has not explicitly chosen Delta or Market. A mode=ALL response returns one execution path. Do not expect both.
GET /v2/delta/prices → POST /v2/delta/orders/build → user signs toSign → POST /v2/delta/orders with type=LIMIT.
Pass route and toSign.value verbatim. Use limitAmount when the target-price constraint needs an explicit amount override.
Sell TWAP
GET /v2/delta/prices for one source slice → POST /v2/delta/orders/build with orderType=TWAPOrder, interval, numSlices, and totalSrcAmount.
Preserve total source amount and split source across slices. route.origin.input.amount must equal floor(totalSrcAmount / numSlices).
Buy TWAP
GET /v2/delta/prices for one destination slice → POST /v2/delta/orders/build with orderType=TWAPBuyOrder, interval, numSlices, totalDestAmount, and maxSrcAmount.
Preserve total destination amount, split destination across slices, and cap source spend. route.origin.output.amount must equal floor(totalDestAmount / numSlices).
Read status
GET /v2/delta/orders/{orderId}, GET /v2/delta/orders/hash/{hash}, or paginated GET /v2/delta/orders.
Narrow on type and onChainOrderType: LIMIT, TWAPOrder, TWAPBuyOrder, FillableOrder, etc.