A minimal Node script that calls GET /v2/quote?mode=DELTA and prints the recommended route’s expected output and the spender from the returned delta block. No SDK, just fetch.
File tree
my-app/
├─ package.json
├─ tsconfig.json
└─ src/
└─ quote.ts
Install
mkdir my-app && cd my-app
pnpm init
pnpm add -D typescript tsx @types/node
pnpm tsc --init
src/quote.ts
const params = new URLSearchParams({
srcToken: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', // ETH
destToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
amount: '1000000000000000000', // 1 ETH
srcDecimals: '18',
destDecimals: '6',
side: 'SELL',
chainId: '1',
mode: 'DELTA',
userAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
partner: 'my-app-name',
});
const res = await fetch(`https://api.velora.xyz/v2/quote?${params}`);
if (!res.ok) {
throw new Error(`HTTP ${res.status}: ${await res.text()}`);
}
const { delta } = await res.json();
console.log('expected output:', delta.route.origin.output.amount);
console.log('spender: ', delta.spender);
Run it
You should see the recommended route’s expected output (USDC, 6 decimals) and the spender address to approve before building the order.
Recommended route vs alternatives
The delta block carries a single recommended route. For crosschain swaps it also returns alternatives: other bridge routes you can offer the user. Pass whichever route you choose, unmodified, into the build step.
const { delta } = await (await fetch(`https://api.velora.xyz/v2/quote?${params}`)).json();
const route = delta.route; // recommended route
const others = delta.alternatives; // crosschain only
Next: build, sign, submit
Pass the unmodified delta.route into POST /v2/delta/orders/build (with owner set to the user address) to get EIP-712 typed data back as { toSign, orderHash }. Sign toSign with an ERC-2098 compact signature, then POST /v2/delta/orders with order (the toSign.value), the signature, chainId, and your partner. Poll GET /v2/delta/orders/{orderId} for status. See Delta → How it works.
Pass delta.route verbatim to /v2/delta/orders/build. Reordering or re-encoding it will cause the build call to reject.
Related pages