Swap / DEX·EVM
Velora (formerly ParaSwap)
EVM DEX aggregator that rebranded from ParaSwap to Velora in 2025, evolving into an intent-based trading protocol. Offers classic Market swaps via the Augustus router plus Delta (intent / RFQ) and Limit Orders.
- 01EVM swap aggregation
- 02intent-based execution via Delta
- 03limit orders and RFQ
- 04best-price routing with Augustus router
- pnpm add @velora-dex/sdk
- # legacy package still published as @paraswap/sdk during the rebrand transition
| Variable | Scope | Description |
|---|---|---|
| VELORA_PARTNER | Server | Partner identifier (string) registered with Velora for fee attribution / referral. Optional but recommended for integrators. |
| VELORA_API_KEY | Server | Optional API key for higher rate limits on the hosted aggregator API. The public API is keyless at default tiers. |
Use Velora (formerly ParaSwap) for EVM aggregation. Construct the SDK with `constructSimpleSDK({ chainId, axios, version: '6.2' })`. Two-step Market flow: (1) `sdk.swap.getRate({ srcToken, destToken, amount, userAddress, side: SwapSide.SELL })` returns a `priceRoute`. (2) `sdk.swap.buildTx({ srcToken, destToken, srcAmount, destAmount, priceRoute, userAddress, slippage })` returns a tx ready to send. For intent / RFQ, use `sdk.delta.buildDeltaOrder(...)` then `sdk.delta.submitDeltaOrder(...)`. Base URL is `https://api.paraswap.io` (still the canonical aggregator host post-rebrand).
- ⚑Brand transition: package is moving from `@paraswap/sdk` to `@velora-dex/sdk` and the docs site is `developers.velora.xyz` — pin a version and check the changelog when upgrading; some types and method paths shifted.
- ⚑API version matters: pass `version: '6.2'` (latest) to `constructSimpleSDK`. Mixing v5 priceRoutes with v6 `buildTx` will revert.
- ⚑Slippage units: `slippage` is in basis points (e.g. `100` = 1%) on `buildTx`, not a fraction — easy to off-by-1000.
- ⚑Delta (intent) orders settle when an agent fills them — like other RFQ systems, expect variable latency and possible expiry; handle `EXPIRED` and `CANCELLED` states.
- ⚑Augustus router address differs per chain — always read it from `priceRoute.contractAddress` rather than hardcoding, and approve that exact address.
- ⚑Chain coverage: Ethereum, Arbitrum, Optimism, Base, Polygon, BNB, Avalanche, Fantom, zkEVM and a few others — non-EVM chains are not supported.