Each table covers a single endpoint and is updated from support tickets at each release. Jump straight to the endpoint you’re calling.Documentation Index
Fetch the complete documentation index at: https://new-docs.velora.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Market API
GET /prices
| Symptom | Root cause | Fix |
|---|---|---|
400 Invalid srcToken or Invalid destToken | Native ETH sent as 0x0 or lowercase 0xeee...e | Use the mixed-case placeholder 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE |
422 Unsupported chain | network not in the supported-chain list for the current API host | Hit GET /chains to confirm the live list; see Chains & contracts |
priceRoute.maxImpactReached: true | Price impact exceeds the configured ceiling for this route | Reduce trade size, split into hops, or pass an explicit higher maxImpact if your product accepts the risk |
Stale priceRoute rejected by POST /transactions/:network | More than ~30s elapsed between quote and tx-build, route became invalid | Re-quote and pass the fresh priceRoute verbatim; never cache across user gestures |
| 429 from the gateway | Rate-limited without a partner key, or partner-key tier exceeded | See Authentication to attach a partner key, or back off and retry |
Updated from support tickets at each release. Last updated: 2026-05-15.
POST /transactions/:network
| Symptom | Root cause | Fix |
|---|---|---|
400 Invalid priceRoute or Stale priceRoute | priceRoute modified between quote and tx-build, or older than ~30s | Pass the priceRoute block from GET /prices verbatim; re-quote if more than ~30s elapsed |
Calldata reverts on-chain with INSUFFICIENT_OUTPUT | Slippage tolerance too tight for current market depth | Increase slippage (in bps) on the rebuild, or surface a higher tolerance to the user before retrying |
Calldata reverts with TransferHelper: TRANSFER_FROM_FAILED | ERC-20 allowance to the v6.2 router insufficient (or pointed at the legacy v5 router) | Approve the Augustus v6.2 router address — see Chains & contracts; migrating off v5 → Augustus v5 → v6.2 |
txData gas estimate fails on the user’s RPC | RPC gas estimation can’t simulate the exact block conditions | Use the gas field returned in the response as a baseline + 15–25% headroom |
| Calldata builds for the wrong chain | network path parameter mismatched against the priceRoute.network | Always derive :network from priceRoute.network, not from a client-side variable |
422 Partner not allowed | Partner-key tier doesn’t permit the requested fee/surplus configuration | Drop the disallowed param, or contact partnerships to upgrade the tier |
Updated from support tickets at each release. Last updated: 2026-05-15.
Delta API
GET /quote
| Symptom | Root cause | Fix |
|---|---|---|
400 Invalid srcToken | Native ETH sent as 0x0 or lowercase 0xeee...e | Use the mixed-case placeholder 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE |
Response has market instead of delta | mode=ALL and Market won the routing decision | Force mode=DELTA if Delta is required, or branch on response.delta vs response.market |
400 Slippage required | slippage omitted on a Delta quote | Pass slippage in basis points (e.g. 100 = 1%) |
422 Unsupported chain for Delta | chainId is supported by Market but Delta hasn’t shipped on that chain yet | Check GET /chains for the Delta-enabled subset; see Chains & contracts |
delta block present but delta.partiallyFillable is unexpectedly false | The pair / size combination doesn’t have partial-fill liquidity from solvers | Reduce size, or design the UX around all-or-nothing fills for this pair |
/orders/build returns 400 after a successful quote | delta block mutated between calls (recomputed amounts, decoded/re-encoded) | Pass the delta object verbatim as price; hmac unchanged from the quote response |
Updated from support tickets at each release. Last updated: 2026-05-15.
POST /delta/orders/build
| Symptom | Root cause | Fix |
|---|---|---|
400 Invalid price after a fresh quote | The delta block from GET /quote was mutated, re-encoded, or re-stringified before submit | Pass the delta object verbatim as price. Don’t run it through JSON normalizers, sorters, or schema validators |
400 Invalid hmac | The hmac from the quote response was dropped, modified, or paired with a different delta | Always send the hmac paired with the exact delta returned from the same quote response |
| EIP-712 typed-data signature is rejected by the order server | Wallet signed against a different chain id, verifying contract, or version | Verify domain.chainId, domain.verifyingContract, and domain.name/version match what POST /delta/orders/build returned — see EIP-712 typed data reference |
| Approval reverts before signing | Token approval granted to the Augustus router instead of the Delta contract | Approve the Delta contract as spender — it’s the spender on Delta flows, not Augustus. See Chains & contracts |
Build succeeds but downstream /delta/orders returns expired | Long delay between build and signature (user wandered off, app backgrounded) | Re-quote and rebuild when the user returns; treat order-server expiry as a hard ceiling, surface a countdown in your UI |
400 Permit / Permit2 required | The token requires Permit or Permit2 and the build request didn’t include the payload | Detect Permit/Permit2 capability up front; see Permit & Permit2 patterns |
Updated from support tickets at each release. Last updated: 2026-05-15.
POST /delta/orders
| Symptom | Root cause | Fix |
|---|---|---|
400 Invalid signature | Signed payload doesn’t match the order field byte-for-byte | Sign the exact order returned by POST /delta/orders/build. Don’t re-sort, re-stringify, or re-encode |
400 Order expired immediately | More than ~30s elapsed between build and submit | Submit the signed order within the validity window; if the user pauses, re-quote and rebuild |
200 OK, but order stays at pending indefinitely | Solver auction returned no fill (size, pair, or chain conditions) | Poll GET /delta/orders/:id; if still pending past your SLA, cancel and re-quote — see Order lifecycle & status codes |
Order transitions to failed post-acceptance | Allowance revoked, balance moved, or token-approval points at the wrong spender | Confirm allowance to the Delta contract spender persists for the order’s full lifecycle — see Chains & contracts |
partialFill order settles partial then stalls | Solver network couldn’t source the remainder at the signed price | Decide whether to cancel and re-quote the remainder, or wait for the full validity window |
| 200 OK but no order id returned | Client treated empty response as success; gateway response was actually a 5xx | Always check status and presence of id; retry on 5xx with idempotent re-submission of the same signed payload |
Updated from support tickets at each release. Last updated: 2026-05-15.