> For the complete documentation index, see [llms.txt](https://docs.zestprotocol.com/start/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zestprotocol.com/start/stacks-swap/stacks-swap-faq.md).

# Stacks Swap FAQ

Find answers about Zest Protocol Stacks Swap custody, execution, supported wallets, routing, price protection and listed tokens.

<details>

<summary>Is Zest Protocol Stacks Swap custodial?</summary>

No. Tokens move from the user’s wallet, through the selected liquidity pools and back to the wallet within one transaction.

The swap contracts do not hold user funds between swaps. There are no deposits, account balances or later withdrawals.

</details>

<details>

<summary>Can a swap fill below the quoted minimum?</summary>

No. The minimum-received amount is enforced by the Stacks transaction’s post conditions.

If the route cannot deliver at least that amount, the transaction reverts and the tokens remain in the user’s wallet.

</details>

<details>

<summary>What happens if a swap fails?</summary>

The transaction reverts completely. This can happen if the price moves beyond the user’s specified minimum, the transaction deadline passes or another execution check fails.

Request a new quote before trying again.

</details>

<details>

<summary>Which wallets are supported?</summary>

Stacks Swap supports standard Stacks wallets, including Leather and Xverse.

</details>

<details>

<summary>Which DEXes does Stacks Swap aggregate?</summary>

Stacks Swap compares liquidity across Bitflow, Velar, ALEX and Arkadiko.

For stSTX and stSTXbtc, routes can also use direct protocol conversions through Stacking DAO. See [Supported DEXes and Tokens](/start/stacks-swap/supported-dexes-and-tokens.md).

</details>

<details>

<summary>Why does a swap transaction call a contract named `zr-...`?</summary>

These are Zest Protocol’s onchain router contracts. Each swap route executes through one or more of these contracts. See the [Smart Contracts Overview](/start/stacks-swap-smart-contracts/contracts.md).

</details>

<details>

<summary>Why is a token not listed?</summary>

The supported token list is curated to reduce exposure to malicious or incompatible contracts. Tokens are added after completing the relevant technical and risk checks.

Projects seeking support for a new token can contact the Zest Protocol team.

</details>

<details>

<summary>Does routing through multiple DEXes cost more?</summary>

Split and multihop routes can require more contract calls than a direct swap. Stacks Swap compares routes by the final output shown to the user and selects a split route only when it is expected to deliver a better result.

The wallet displays the transaction fee before confirmation.

</details>
