Skip to main content
The Delora API is not yet public. For details, please contact our team.

Purpose

GET /v1/quotes returns a quote for transferring one token to another — either within one chain or cross-chain.
The response includes:
  • an estimated result (outputAmount),
  • the selected tool/route (tool),
  • and a calldata[] array you can pass directly to a wallet for execution.
Base URL: https://api.delora.build/v1 (HTTPS only)

Endpoint

GET /v1/quotes

Query Parameters

NameTypeRequiredDescription
originChainIdnumberChain ID of the sending chain.
destinationChainIdnumberChain ID of the receiving chain.
originCurrencystringToken address on originChainId.
destinationCurrencystringToken address on destinationChainId.
senderAddressstringSending wallet address.
receiverAddressstringReceiving wallet address. If omitted, senderAddress is used.
amountstringAmount in smallest units (e.g., 1000000 for 1 USDC with 6 decimals).
integratorstringFree-form identifier for the API integrator.
Format notes:
– Use canonical addresses for the given chain.
amount is always specified in the smallest units (token decimals applied).

Response

JSON containing the estimate and the transaction data.
FieldTypeRequiredDescription
inputAmountstringInput amount (smallest units) mirrors the requested amount.
outputAmountstringEstimated amount of the destination token (smallest units).
toolstringTool/route used for the transfer.
calldataobject[]An array of transaction objects suitable for a wallet/provider.
feesobject[]Fees are included in the transfer.
Note: This is a quote (estimate), not a guaranteed execution result. Final settlement can differ due to the on-chain state at broadcast time. Use appropriate constraints if included in the returned calldata.

Example Request

GET https://api.delora.build/v1/quotes
  ?originChainId=1
  &destinationChainId=42161
  &originCurrency=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  &destinationCurrency=0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8
  &senderAddress=0xYourSenderAddr
  &receiverAddress=0xYourReceiverAddr
  &amount=1000000
  &integrator=your-app

Example Response (simplified)

{
  "inputAmount": "1000000",
  "outputAmount": "998500",
  "tool": "route-identifier",
  "calldata": [
    {
      "to": "0xRouterOrBridgeAddress",
      "data": "0xabcdef...",
      "value": "0x0"
      // additional fields depend on the route/network
    }
  ],
  "fees": [
    { "name": "protocol", "amount": "1500" }
  ]
}

Behavior & Conventions

  • Single interface: Works for intra-chain and cross-chain transfers.
  • Default receiver: If receiverAddress is not provided, senderAddress is used.
  • Denomination: All amounts are in smallest units for their tokens.
  • Execution-ready: calldata[] is returned in a wallet-friendly format.

Auth, Rate Limits, Errors

  • The API is accessible over HTTPS only.
  • See Rate Limits and API Authentication for key and quota usage.
  • Error formats and codes are listed in Error Codes (e.g., unsupported chain/pair, invalid addresses, bad amount, rate-limit)

Supported Entities

  • Chains — supported networks and their chainIds.
  • Tokens — supported token lists per chain.
  • Tools — available tools/routes used by the API (bridges, DEXs, solvers, etc).

High-Level Flow (API level)

  1. You supply transfer parameters.
  2. The API returns an estimate (outputAmount) and execution instructions (calldata[]).
  3. You pass calldata to a wallet/provider for signing and broadcasting.
This rewrite only clarifies the original behavior; it does not introduce any new functionality.