Skip to main content

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.

Each table covers a single endpoint and is updated from support tickets at each release. Jump straight to the endpoint you’re calling.

Market API

GET /prices

SymptomRoot causeFix
400 Invalid srcToken or Invalid destTokenNative ETH sent as 0x0 or lowercase 0xeee...eUse the mixed-case placeholder 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
422 Unsupported chainnetwork not in the supported-chain list for the current API hostHit GET /chains to confirm the live list; see Chains & contracts
priceRoute.maxImpactReached: truePrice impact exceeds the configured ceiling for this routeReduce trade size, split into hops, or pass an explicit higher maxImpact if your product accepts the risk
Stale priceRoute rejected by POST /transactions/:networkMore than ~30s elapsed between quote and tx-build, route became invalidRe-quote and pass the fresh priceRoute verbatim; never cache across user gestures
429 from the gatewayRate-limited without a partner key, or partner-key tier exceededSee 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

SymptomRoot causeFix
400 Invalid priceRoute or Stale priceRoutepriceRoute modified between quote and tx-build, or older than ~30sPass the priceRoute block from GET /prices verbatim; re-quote if more than ~30s elapsed
Calldata reverts on-chain with INSUFFICIENT_OUTPUTSlippage tolerance too tight for current market depthIncrease slippage (in bps) on the rebuild, or surface a higher tolerance to the user before retrying
Calldata reverts with TransferHelper: TRANSFER_FROM_FAILEDERC-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 RPCRPC gas estimation can’t simulate the exact block conditionsUse the gas field returned in the response as a baseline + 15–25% headroom
Calldata builds for the wrong chainnetwork path parameter mismatched against the priceRoute.networkAlways derive :network from priceRoute.network, not from a client-side variable
422 Partner not allowedPartner-key tier doesn’t permit the requested fee/surplus configurationDrop 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

SymptomRoot causeFix
400 Invalid srcTokenNative ETH sent as 0x0 or lowercase 0xeee...eUse the mixed-case placeholder 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
Response has market instead of deltamode=ALL and Market won the routing decisionForce mode=DELTA if Delta is required, or branch on response.delta vs response.market
400 Slippage requiredslippage omitted on a Delta quotePass slippage in basis points (e.g. 100 = 1%)
422 Unsupported chain for DeltachainId is supported by Market but Delta hasn’t shipped on that chain yetCheck GET /chains for the Delta-enabled subset; see Chains & contracts
delta block present but delta.partiallyFillable is unexpectedly falseThe pair / size combination doesn’t have partial-fill liquidity from solversReduce size, or design the UX around all-or-nothing fills for this pair
/orders/build returns 400 after a successful quotedelta 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

SymptomRoot causeFix
400 Invalid price after a fresh quoteThe delta block from GET /quote was mutated, re-encoded, or re-stringified before submitPass the delta object verbatim as price. Don’t run it through JSON normalizers, sorters, or schema validators
400 Invalid hmacThe hmac from the quote response was dropped, modified, or paired with a different deltaAlways send the hmac paired with the exact delta returned from the same quote response
EIP-712 typed-data signature is rejected by the order serverWallet signed against a different chain id, verifying contract, or versionVerify domain.chainId, domain.verifyingContract, and domain.name/version match what POST /delta/orders/build returned — see EIP-712 typed data reference
Approval reverts before signingToken approval granted to the Augustus router instead of the Delta contractApprove the Delta contract as spender — it’s the spender on Delta flows, not Augustus. See Chains & contracts
Build succeeds but downstream /delta/orders returns expiredLong 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 requiredThe token requires Permit or Permit2 and the build request didn’t include the payloadDetect Permit/Permit2 capability up front; see Permit & Permit2 patterns
Updated from support tickets at each release. Last updated: 2026-05-15.

POST /delta/orders

SymptomRoot causeFix
400 Invalid signatureSigned payload doesn’t match the order field byte-for-byteSign the exact order returned by POST /delta/orders/build. Don’t re-sort, re-stringify, or re-encode
400 Order expired immediatelyMore than ~30s elapsed between build and submitSubmit the signed order within the validity window; if the user pauses, re-quote and rebuild
200 OK, but order stays at pending indefinitelySolver 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-acceptanceAllowance revoked, balance moved, or token-approval points at the wrong spenderConfirm allowance to the Delta contract spender persists for the order’s full lifecycle — see Chains & contracts
partialFill order settles partial then stallsSolver network couldn’t source the remainder at the signed priceDecide whether to cancel and re-quote the remainder, or wait for the full validity window
200 OK but no order id returnedClient treated empty response as success; gateway response was actually a 5xxAlways 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.