Short answers to the questions support and integrators hit most often. Each section links out to the page that owns the topic. Start here, then go deep where you need to.
Trading basics
Do I need an API key?
No. Every Velora REST endpoint is public: pass &partner=<your-app-name> to identify your traffic and you’re in. The free tier gives 1 RPS and 3,000 requests/day, which is plenty to prototype and ship a real integration. When you outgrow it, Pro API accounts lift the limits and add a dashboard, early features, and SLA.
Should I use Delta (gasless) or Market?
If the user can wait a few seconds and doesn’t want to pay gas, prefer Delta: it’s MEV-protected and solvers compete to fill at or above the quoted price. If you need synchronous on-chain settlement (composing with another contract in the same tx) or the trade is small enough that AMM routing wins, use Market. If you don’t want to commit upfront, call GET /v2/quote?mode=ALL and branch on whichever block (delta or market) the response carries. Full decision matrix: Trading modes.
Slippage & price impact
How do I set slippage?
For Market, pass slippage (basis points) on the quote, or set destAmount directly as a hard floor. Omitting both returns 400.
For Delta, slippage is applied at the build step. Pass slippage to POST /v2/delta/orders/build; the API returns an order with destAmount reduced by that slippage. You then sign and submit via POST /v2/delta/orders. The signed order.destAmount is the limit-order floor: solvers must deliver at least that amount or the fill doesn’t settle.
What slippage tolerance should I use?
Velora doesn’t enforce a default. Typical bps by pair tier:
- Stable ↔ stable (USDC/USDT, DAI/USDC): ~1 bps.
- High-cap pairs (ETH/USDC, WBTC/USDC): 2–5 bps.
- Long-tail / low-liquidity: 10–30 bps, depending on depth.
Market volatility can push these higher. The Widget exposes a user-configurable slippage and a Degen Mode for high-impact trades. For agents, the rule is: use the app’s configured default, or ask if there isn’t one. See Agent decision tables.
How is price impact different from slippage?
Price impact is the trade’s expected effect on the market price, driven by liquidity depth. Bigger trades on thinner pools move the price more, and the impact is already reflected in the quoted output. Slippage is the tolerance you set on top: the maximum further movement you’ll accept between quote and settlement before the trade reverts (Market) or the order doesn’t settle (Delta). See Swaps → Key terms for the canonical definitions.
Token support
How do I trade a token that isn’t in the default list?
For the API, just pass the token’s contract address as srcToken or destToken, with the matching srcDecimals or destDecimals. There’s no allowlist gating on /v2/quote or /prices beyond what liquidity venues quote. For the Widget, add custom token-list URLs via config.tokenLists (spread defaults.tokenLists to keep the curated set, or replace entirely). If the route comes back unpriced, see Route availability below.
What about tax tokens / fee-on-transfer tokens?
Delta doesn’t support tax or fee-on-transfer tokens today; route them through Market instead. On GET /prices, declare the fees so the quote accounts for them:
srcTokenTransferFee / destTokenTransferFee — tax in basis points on every transfer of the token.
srcTokenDexTransferFee / destTokenDexTransferFee — tax in basis points charged only on DEX swaps.
Route availability
Why is no route available for my pair?
A 400 with {"errorType":"PricingError"} from /v2/quote or /prices means neither Market nor Delta could source the pair on the requested chain. Common causes: the token isn’t quoted by any liquidity venue Velora indexes, the trade size exceeds depth, or the chain doesn’t have the relevant DEX. Check Chains & contracts for per-chain coverage and GET /chains at runtime for the authoritative supported-chain list. Failure modes per endpoint: Troubleshooting.
Can I filter on specific DEXs?
Market only. Pass includeDEXS or excludeDEXS to GET /prices as a comma-separated list of DEX names and the router will restrict the route to (or exclude) those venues. Delta has no equivalent: solvers pick their own execution path.
Limit orders & Delta intents
Why hasn’t my limit order filled?
A signed Delta order fills only when a solver can hit your limit price and net the spread. If the market hasn’t reached your price, it stays pending; if it expires past the deadline, it transitions to EXPIRED; if your token allowance to the Delta contract was revoked or balance moved, it transitions to FAILED post-acceptance. Confirm your approval points at the Delta contract per Token approvals for agents.
How do I cancel a pending order?
How you cancel depends on the order type. Non-ETH Delta orders cancel off-chain via signed typed data, so cancellation costs no gas. ETH-source Delta orders cancel on-chain via withdrawAndCancel, a single tx that withdraws the ETH and invalidates the order. OTC orders also cancel on-chain.
Fees & monetization
How do partner fees work?
Pass a partner identifier with each request and you can attach one of two revenue levers: a fixed partnerFeeBps (basis-point cut, predictable) or takeSurplus (50% of any positive slippage from solver competition, variable). The two are mutually exclusive; the fee wins if both are set. On Delta, partners receive 100% of the fee; on Market, Velora takes 15% to fund routing. Full split tables and API parameters: Monetization.
What’s the difference between a free partner ID and a Pro API account?
A free partner ID is just a string you pass as &partner=<your-app-name>; there’s nothing to sign up for and no key to manage. It identifies your traffic, gets you 1 RPS / 3,000 req/day, and if you also attach partnerAddress + partnerFeeBps or takeSurplus, it unlocks the partner-fee economics from Monetization. A Pro API account is a paid plan layered on top: higher sustained and burst RPS, larger daily quotas, an analytics dashboard, early-feature access, and SLA-backed support. Full plan comparison: Pro API accounts.
Troubleshooting
For failure-mode tables by endpoint (GET /prices, POST /transactions/:chainId, GET /v2/quote, POST /v2/delta/orders/build, POST /v2/delta/orders), see Troubleshooting. Each row maps a symptom to a root cause and a fix, and the same data is available machine-readable at /resources/errors.json. Last modified on June 11, 2026