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

# Conversions

> How a flow converts the payer's asset into the one you settle in, and how to require an exact match instead.

A payer rarely holds exactly the token you want, on the chain you want it. Conversion is the part of a flow that closes that gap, and by default it is entirely automatic.

## Automatic routing

When the source asset does not match your settlement configuration, the flow runs a swap, a bridge, or both. Provider selection, execution, and failover happen behind the scenes: you configure what you want to receive, and the flow works out how to get there.

Which route is chosen depends on the strategy set on the flow. See [Settlement](/docs/flow/settlements) for the strategies and what each optimises for.

<Warning>
  Dynamic does not control the swap, bridge, or routing protocols used to convert and deliver assets. Rates and fees come from third-party providers and can change between quote and execution. Cross-chain transfers carry slippage, partial fills, and failed conversions as real risks, and on-chain transactions cannot be reversed. Make clear to your users that conversion and cross-chain routing are executed by independent third parties, and that they keep control of their assets and sign each transfer themselves.
</Warning>

## Requiring an exact match

Some integrations need the payer to arrive with an asset that already matches a configured settlement. Setting `disableSwaps` on the flow enforces that. It is fixed when the flow is created and applies to every mode.

The restriction is enforced at the quote, not at source attachment, which is worth knowing when you are building the payer experience:

* An incompatible source attaches **successfully**. The rejection comes later, when a quote is requested.
* A quote succeeds when the source chain, chain ID, and token all match a configured settlement, and that settlement chain has a matching destination. Token comparison is case-insensitive.
* A matching wallet quote transfers directly, with no swap provider involved. A matching deposit address is issued as normal, and requesting another quote reuses the existing address.
* A quote that would need a swap or bridge is refused, and a deposit address that would need a route is refused before any provider work happens.
* **Exchange sources are unaffected**, because the exchange provider buys the settlement token directly.

One edge worth designing around: when a quote request omits the source token, it defaults to the chain's native token. A flow settling in USDC will therefore refuse a quote unless that native token is itself the configured settlement.

## Charging your own fee

You can charge a fee on every swap a flow runs, as direct revenue on top of Dynamic's routing costs. See [Adding your own fee](/docs/flow/adding-your-own-fee) for how fee configs, recipients, and claiming work.

## Next

<Columns cols={2}>
  <Card title="Settlement" href="/docs/flow/settlements">
    What you receive, on which chain, and where it lands.
  </Card>

  <Card title="Adding your own fee" href="/docs/flow/adding-your-own-fee">
    Charge a fee on every swap, and claim what accrues.
  </Card>
</Columns>
