> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mayan.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Guaranteed Price

> The amount quoted is the amount received.

On most cross-chain swaps a quote is an estimate. The user is shown an expected output and a minimum, and the swap settles somewhere between the two. That range is fine for a trade, where a few basis points either way is the cost of doing business.

It does not work for a payment. A merchant cannot display one number and receive another, and a payroll run cannot land short. Guaranteed Price replaces the estimate with a commitment: the output is locked before the swap executes, so the number shown at signing is the number that arrives.

## How it works

<Steps>
  <Step title="Request a quote as normal">
    There is no flag to set and nothing to enable. Mayan determines whether an order is eligible and returns the guarantee on the quote when it is.
  </Step>

  <Step title="Check the settlement mode">
    Read `swiftAuctionMode` on each quote in the response. A value of `3` is a Guaranteed Price quote.
  </Step>

  <Step title="Show the locked amount">
    Surface it in your interface so the user knows the number is fixed rather than estimated. On a mode `3` quote, `expectedAmountOut` is the exact amount that will arrive.
  </Step>

  <Step title="The swap settles exact-out">
    The recipient receives exactly `expectedAmountOut`.
  </Step>
</Steps>

## Key concepts

* **Two settlement modes, one field.** Swift quotes come back tagged with `swiftAuctionMode`. On mode `2` the user receives at least `minAmountOut` and typically lands near `expectedAmountOut`. Mode `3` is exact-out: `expectedAmountOut` is what arrives.
* **Eligibility is set by the route, not by a parameter.** There is nothing to pass and no allowlist to join. If a quote comes back as mode `3`, Guaranteed Price is available on that order.
* **`minAmountOut` stops mattering.** On a mode `2` quote it is the floor that protects the user. On an exact-out quote the output is already fixed, so the number to display is `expectedAmountOut`.
* **The guarantee covers the amount, not the timing.** An exact-out order still has a deadline, and an order that no driver fills before it is refunded rather than settled short. See [refunds](/how-mayan-works/refunds).

## Detecting it in a quote

| `swiftAuctionMode` | Behaviour                                                      | What to display                                         |
| ------------------ | -------------------------------------------------------------- | ------------------------------------------------------- |
| `2`                | Drivers compete and the user receives at least `minAmountOut`. | Both `expectedAmountOut` and `minAmountOut`.            |
| `3`                | Exact-out. The user receives exactly `expectedAmountOut`.      | `expectedAmountOut` alone, presented as a fixed amount. |

Handle both. A pair that returns a Guaranteed Price quote on one order may return a mode `2` quote on another, so branch on the field rather than assuming a route always behaves one way.

## Supported assets

| Transfer                      | Guaranteed Price |
| ----------------------------- | ---------------- |
| USDC to USDC                  | Yes              |
| USDT to USDT                  | Yes              |
| ETH to ETH                    | Yes              |
| Any other same-asset transfer | No               |
| Any cross-asset swap          | No               |

Eligibility is not restricted by chain. Any pair of supported chains qualifies as long as the asset matches on both sides, so USDC on Arbitrum to USDC on Solana works the same way as USDC on Base to USDC on Ethereum.

Everything else settles between the expected and minimum amounts.

## Where it is used

Guaranteed Price applies wherever the amount shown has to match the amount received.

* **Checkout and payments.** The invoice, the confirmation screen and the settlement all carry the same figure, so nothing has to be reconciled afterwards. See [Pay](/use-cases/pay).
* **Payouts and payroll.** A recipient is paid what they were promised, rather than what the market allowed at the moment of settlement.
* **Trading and treasury interfaces.** The interface can commit to the number it displays, without the caveat that usually sits next to a cross-chain quote.

## Next steps

<CardGroup cols={2}>
  <Card title="Fetching Quotes" icon="magnifying-glass" href="/build/sdk/fetching-quotes">
    Reading `swiftAuctionMode` and `expectedAmountOut` off a quote.
  </Card>

  <Card title="Pay" icon="credit-card" href="/use-cases/pay">
    Where exact-out settlement actually matters.
  </Card>
</CardGroup>
