---
title: "Get a quote from native units."
method: GET
path: "/quote-native"
tags: ["Quote"]
deprecated: true
---

# Get a quote from native units.

`GET /quote-native`

## Request

- Base URL: `https://chainflip-broker.io`
- URL: `https://chainflip-broker.io/quote-native`
- Auth: one of:
  - API key in query parameter `apiKey`
  - API key in header `X-API-Key`

> **Deprecated.**

Deprecated: use `getNativeQuotes`, which also returns DCA quotes. This endpoint
returns only the regular quote.

## Query parameters

- `apiKey` string
- `sourceAsset` string, required
- `destinationAsset` string, required
- `amount` string, required
- `commissionBps` integer

## Response `200`

A quote for the given assets and amount.

- ChainflipBaasQuoteQuote: A quote: what you send and receive, the fees already taken into account, the recommended slippage protection and retry window, and how long the swap is expected to take. To start the swap, pass `estimatedPrice` reduced by your slippage tolerance as `minimumPrice` to `startSwap`.
  - `type` 'regular' | 'dca', required: `regular`: swapped at once. `dca`: split into `numberOfChunks` chunks swapped `chunkIntervalBlocks` apart, usually at a better price for large amounts.
  - `ingressAsset` string, required: The asset you send.
  - `ingressAmount` number, double, required: The amount you send, in whole units of `ingressAsset`.
  - `ingressAmountNative` string, required: `ingressAmount` in the asset's smallest unit.
  - `intermediateAsset` string, nullable: The asset the swap passes through (USDC), when neither asset is USDC.
  - `intermediateAmount` number, double, nullable: The amount of the intermediate asset, in whole units.
  - `intermediateAmountNative` string, nullable: `intermediateAmount` in the asset's smallest unit.
  - `egressAsset` string, required: The asset you receive.
  - `egressAmount` number, double, required: The amount you receive, in whole units of `egressAsset`, after every fee in `includedFees`. An estimate: the final amount depends on the price when the swap executes.
  - `egressAmountNative` string, required: `egressAmount` in the asset's smallest unit.
  - `includedFees` ChainflipBaasQuoteQuoteFee[], required: Every fee taken from the swap, already accounted for in `egressAmount`.
    - `type` 'ingress' | 'broker' | 'network' | 'liquidity' | 'egress' | 'boost' | 'refund', required: The fee: `ingress` (receiving the deposit on the source chain), `network` (Chainflip's network fee), `broker` (the broker and affiliate commissions), `liquidity` (a pool's liquidity provider fee, also in `poolInfo`), `egress` (sending the output on the destination chain) or `boost` (on Boost quotes). `refund` only appears on swap statuses.
    - `asset` string, required: The asset the fee is processed in.
    - `amount` number, double, required: The fee, in whole units of `asset`.
    - `amountNative` string, required: `amount` in the asset's smallest unit.
  - `recommendedSlippageTolerancePercent` number, double, required: Recommended slippage percentage to use when calculating minimum price.
  - `recommendedRetryDurationInBlocks` integer, nullable: Recommended `retryDurationInBlocks` for `/swap`: Chainflip's recommended retry window (30 minutes when BTC is on either side, otherwise 5 minutes) in 6-second state-chain blocks.
  - `recommendedLivePriceSlippageTolerancePercent` number, double, nullable: Recommended `livePriceSlippageTolerancePercent` for `/swap`: how far, in percent, the execution price may fall below Chainflip's oracle price. Absent when Chainflip has no oracle-based protection to recommend for the pair; `/swap` rejects the parameter when either asset has no oracle price.
  - `lowLiquidityWarning` boolean, required: A warning in case liquidity is low and there is a risk of high slippage.
  - `poolInfo` ChainflipBaasQuotePoolInfo[], required: Liquidity pools involved in the swap, as well as estimated liquidity provider fees.
    - `baseAsset` string, required: The base asset of the pool involved.
    - `quoteAsset` string, required: The quote asset of the pool involved.
    - `fee` ChainflipBaasQuotePoolFee, required: A pool's estimated liquidity provider fee.
      - `asset` string, required: The asset the fee is processed in.
      - `amount` number, double, required: The fee, in whole units of `asset`.
      - `amountNative` string, required: `amount` in the asset's smallest unit.
  - `estimatedDurationSeconds` number, double, required: The estimated time the swap will take.
  - `estimatedDurationsSeconds` ChainflipBaasQuoteEstimatedDurationsSeconds, required: The estimated duration of each step, in seconds: witnessing the deposit, executing the swap and including the output transfer in a block on the destination chain.
    - `deposit` number, double, required: The estimated time for a deposit to be witnessed.
    - `swap` number, double, required: The estimated time for a swap to be fully executed.
    - `egress` number, double, required: The estimated time until the output transaction is included in a block.
  - `estimatedPrice` number, double, required: The estimated price in the destination asset for 1 unit of the source asset. Used for slippage calculations.
  - `chunkIntervalBlocks` integer, nullable: The delay between the "sub-swaps" of a DCA swap in number of blocks.
  - `numberOfChunks` integer, nullable: The number of "sub-swaps" to perform for a DCA swap.
  - `boostQuote` ChainflipBaasQuoteBoostQuote: The same quote with Boost, for Bitcoin deposits: liquidity providers credit the deposit after one confirmation instead of waiting for all of them, so the swap is faster, for the boost fee listed in `includedFees`. To start it, pass `maxBoostFeeBps` as `boostFee` to `startSwap`.
    - `ingressAsset` string, required: The asset you send.
    - `ingressAmount` number, double, required: The amount you send, in whole units of `ingressAsset`.
    - `ingressAmountNative` string, required: `ingressAmount` in the asset's smallest unit.
    - `intermediateAsset` string, nullable: The asset the swap passes through (USDC), when neither asset is USDC.
    - `intermediateAmount` number, double, nullable: The amount of the intermediate asset, in whole units.
    - `intermediateAmountNative` string, nullable: `intermediateAmount` in the asset's smallest unit.
    - `egressAsset` string, required: The asset you receive.
    - `egressAmount` number, double, required: The amount you receive with Boost, in whole units of `egressAsset`, after every fee in `includedFees` including the boost fee. An estimate: the final amount depends on the price when the swap executes.
    - `egressAmountNative` string, required: `egressAmount` in the asset's smallest unit.
    - `includedFees` ChainflipBaasQuoteQuoteFee[], required: Every fee taken from the boosted swap, including the boost fee, already accounted for in `egressAmount`.
      - `type` 'ingress' | 'broker' | 'network' | 'liquidity' | 'egress' | 'boost' | 'refund', required: The fee: `ingress` (receiving the deposit on the source chain), `network` (Chainflip's network fee), `broker` (the broker and affiliate commissions), `liquidity` (a pool's liquidity provider fee, also in `poolInfo`), `egress` (sending the output on the destination chain) or `boost` (on Boost quotes). `refund` only appears on swap statuses.
      - `asset` string, required: The asset the fee is processed in.
      - `amount` number, double, required: The fee, in whole units of `asset`.
      - `amountNative` string, required: `amount` in the asset's smallest unit.
    - `recommendedSlippageTolerancePercent` number, double, required: Recommended slippage percentage to use when calculating minimum price for the boosted swap.
    - `recommendedRetryDurationInBlocks` integer, nullable: Recommended `retryDurationInBlocks` for `/swap`, in 6-second state-chain blocks.
    - `recommendedLivePriceSlippageTolerancePercent` number, double, nullable: Recommended `livePriceSlippageTolerancePercent` for `/swap`. Absent when Chainflip has no oracle-based protection to recommend for the pair.
    - `lowLiquidityWarning` boolean, required: A warning in case liquidity is low and there is a risk of high slippage.
    - `poolInfo` ChainflipBaasQuotePoolInfo[], required: Liquidity pools involved in the swap, as well as estimated liquidity provider fees.
      - `baseAsset` string, required: The base asset of the pool involved.
      - `quoteAsset` string, required: The quote asset of the pool involved.
      - `fee` ChainflipBaasQuotePoolFee, required: A pool's estimated liquidity provider fee.
        - `asset` string, required: The asset the fee is processed in.
        - `amount` number, double, required: The fee, in whole units of `asset`.
        - `amountNative` string, required: `amount` in the asset's smallest unit.
    - `estimatedDurationSeconds` number, double, required: The estimated time the swap will take.
    - `estimatedDurationsSeconds` ChainflipBaasQuoteEstimatedDurationsSeconds, required: The estimated duration of each step, in seconds: witnessing the deposit, executing the swap and including the output transfer in a block on the destination chain.
      - `deposit` number, double, required: The estimated time for a deposit to be witnessed.
      - `swap` number, double, required: The estimated time for a swap to be fully executed.
      - `egress` number, double, required: The estimated time until the output transaction is included in a block.
    - `estimatedBoostFeeBps` number, double, required: The estimated fee (in bps) that the user has to pay (from the deposit amount) to get this swap boosted.
    - `maxBoostFeeBps` integer, required: The maximum boost fee (in bps) to open this boosted swap with: pass it as `boostFee` to `/swap`. The fee actually charged is the lowest one that boosts the deposit, at most this.
    - `estimatedPrice` number, double, required: The estimated price in the destination asset for 1 unit of the source asset. Used for slippage calculations.
    - `chunkIntervalBlocks` integer, nullable: The delay between the "sub-swaps" of a DCA swap in number of blocks.
    - `numberOfChunks` integer, nullable: The number of "sub-swaps" to perform for a DCA swap.
  - `platform` string: The provider that produced this quote. Pass it as `platform` to `startSwap` to open the swap with the same provider.

## Other responses

- `400`: Invalid input (validation errors), or an upstream rejection of the request as sent (code).
- `401`: The partner does not have access.
- `403`: Swaps between these assets are not enabled for the partner.
- `500`: An error occurred.
- `503`: A temporary upstream condition, such as maintenance, a disabled asset or the network channel cap. Retry with backoff.

---

[API](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service.md) · [All operations](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service/llms.txt) · [OpenAPI document](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service/revisions/3c819d79d6b9?raw)
