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

# Fast Swaps

> Your first token swap on Fast Swaps — a step-by-step guide

This guide walks you through performing your first token swap on [Fast Swaps](https://fastprotocol.io). By the end, you will have swapped tokens on Ethereum with near-instant preconfirmations and started earning mev rewards (Fast Miles).

<Info>
  **What you need before starting:**

  * A web browser (Chrome, Firefox, or Brave recommended)
  * A wallet extension installed ([MetaMask](https://metamask.io) or [Rabby](https://rabby.io) recommended)
  * ETH in your wallet for gas fees (if swapping ETH) or for the one-time token approval
  * The tokens you want to swap
</Info>

***

<Steps>
  <Step title="Go to Fast Swaps">
    Open your browser and navigate to **[fastprotocol.io](https://fastprotocol.io)**.

    You will see the Fast Swaps landing page with the swap interface.

    <Frame>
      <img src="https://mintcdn.com/primev-24/jG--guvHemykjznp/v1.2.x/images/fastswaps-landing.png?fit=max&auto=format&n=jG--guvHemykjznp&q=85&s=260bf09a13db32cecb91600974ff522b" alt="Fast Swaps landing page" width="1900" height="1273" data-path="v1.2.x/images/fastswaps-landing.png" />
    </Frame>
  </Step>

  <Step title="Connect Your Wallet">
    Click the **Connect Wallet** button in the top-right corner of the page.

    A wallet selection modal will appear. Choose your wallet provider:

    * **MetaMask**
    * **Rabby**
    * **WalletConnect** (for mobile wallets or other providers)

    Your wallet extension will prompt you to approve the connection. Confirm the connection in your wallet.

    <Tip>
      Make sure your wallet is set to **Ethereum Mainnet**. For the best experience, set your Ethereum RPC to [FAST RPC](/v1.2.x/get-started/fastrpc) (`https://fastrpc.mev-commit.xyz`). This enables preconfirmations and mev rewards on all your Ethereum transactions — not just Fast Swaps. See the [FAST RPC setup guide](/v1.2.x/get-started/fastrpc#usage-for-wallets) for instructions.
    </Tip>
  </Step>

  <Step title="Select the Token You Want to Sell">
    The swap interface has two sections: **Sell** (top) and **Buy** (bottom).

    Click the token selector dropdown in the **Sell** section. By default, it shows ETH.

    A token selector modal opens where you can:

    * **Search** by token name, symbol, or contract address
    * **Browse popular tokens** in the quick-select bar (ETH, DAI, USDT, WBTC)
    * **Add a custom token** by pasting any ERC-20 contract address

    Select the token you want to sell. For this guide, we will use **ETH**.

    <Frame>
      <img src="https://mintcdn.com/primev-24/1NbficW1GBV343at/v1.2.x/images/fastswaps-token-selector.png?fit=max&auto=format&n=1NbficW1GBV343at&q=85&s=b4bc12abbbd7366b5787c6d3878025e2" alt="Token selector modal" width="850" height="850" data-path="v1.2.x/images/fastswaps-token-selector.png" />
    </Frame>
  </Step>

  <Step title="Select the Token You Want to Buy">
    Click the token selector button in the **Buy** section and choose your desired output token. For this guide, we will select **USDC**.

    <Tip>
      You can click the **switch button** (↕) between the Sell and Buy sections to reverse the swap direction at any time.
    </Tip>
  </Step>

  <Step title="Enter the Swap Amount">
    Click the amount field in the **Sell** section and type the amount you want to swap. For example, enter `0.1` to swap 0.1 ETH.

    As you type, Fast Swaps automatically:

    * **Fetches a real-time quote** via a competitive solver auction
    * **Displays the output amount** in the Buy section (with USD equivalent)
    * **Shows the exchange rate** between the two tokens
    * **Shows price impact** — the effect your trade has on the market price

    The quote refreshes every **15 seconds**. A countdown timer next to the exchange rate shows when the next refresh will occur.

    <Frame>
      <img src="https://mintcdn.com/primev-24/1NbficW1GBV343at/v1.2.x/images/fastswaps-swap-ready.png?fit=max&auto=format&n=1NbficW1GBV343at&q=85&s=eb7fb7e0508ecb1179db69cb780710c7" alt="Swap form with quote" width="1500" height="1300" data-path="v1.2.x/images/fastswaps-swap-ready.png" />
    </Frame>
  </Step>

  <Step title="Review Swap Details">
    Before confirming, review the swap details displayed below the Buy section:

    | Detail            | What It Means                                                                                                                        |
    | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
    | **Exchange Rate** | How much of the output token you get per unit of input token, with a countdown timer showing when the quote refreshes                |
    | **Price Impact**  | How much your swap moves the market price — green is negligible, yellow is moderate, red means you may want to reduce your swap size |

    ### Adjust Settings (Optional)

    Click the **gear icon** (⚙) next to the Swap heading to open settings. Here you can adjust:

    * **Max slippage** — The maximum price movement you are willing to accept (default: 0.5%). You can set a custom percentage.
    * **Swap deadline** — How long (in minutes) the swap remains valid before it expires (default: 30 minutes).

    <Frame>
      <img src="https://mintcdn.com/primev-24/1NbficW1GBV343at/v1.2.x/images/fastswaps-settings.png?fit=max&auto=format&n=1NbficW1GBV343at&q=85&s=dcc725d477d35bae39acad497a469787" alt="Swap settings panel" width="1500" height="800" data-path="v1.2.x/images/fastswaps-settings.png" />
    </Frame>

    <Warning>
      Setting slippage too low may cause the swap to fail if the price moves. Setting it too high may result in a worse exchange rate.
    </Warning>
  </Step>

  <Step title="Approve the Token (First Time Only)">
    <Info>
      **This step only applies to ERC-20 token swaps** (e.g., USDC → ETH). If you are swapping **ETH as the input token**, skip to the next step.
    </Info>

    If this is your first time swapping a particular ERC-20 token on Fast Swaps, you need to approve the **Permit2** contract to access that token. This is a one-time on-chain transaction per token.

    Click the **Approve** button. Your wallet will prompt you to confirm the approval transaction.

    <Tip>
      If you have previously approved this token for Permit2 on another app (like Uniswap), you will not need to approve it again.
    </Tip>

    Once the approval transaction confirms, the button changes to **Swap**.
  </Step>

  <Step title="Confirm the Swap">
    Click the **Swap** button to initiate the swap.

    A confirmation modal appears showing the full details of your swap, including input and output amounts, the exchange rate, price impact, minimum received after slippage, and estimated gas cost.

    Review the details and click **Confirm Swap**.
  </Step>

  <Step title="Sign in Your Wallet">
    Your wallet will prompt you to sign the transaction:

    * **For ERC-20 input tokens**: You will sign an **EIP-712 message** (a signature, not a transaction). This is gasless — you do not pay gas at this step.
    * **For ETH input**: You will sign and submit an **on-chain transaction**. This requires gas.

    Confirm the signature or transaction in your wallet.
  </Step>

  <Step title="Receive Preconfirmation">
    Within seconds of signing, your swap is **preconfirmed**. A confirmation toast appears at the bottom of the screen.

    **Preconfirmed** means Ethereum block builders on the [mev-commit](/v1.2.x/concepts/mev-commit-intro/what-is-mev-commit) network have committed to including your swap in an upcoming block. This gives you near-instant confidence that your swap will settle — no need to wait for the full block to be produced.

    This is the core Fast Swaps experience: your swap feels **instant**.

    <Accordion title="What happens after preconfirmation?">
      After the preconfirmation, your swap progresses to full on-chain confirmation in the background. The toast will update once the swap is included in a finalized Ethereum block. You do not need to wait for this — the preconfirmation is your signal that the swap is done.

      | Status           | What It Means                                                                                                      |
      | ---------------- | ------------------------------------------------------------------------------------------------------------------ |
      | **Pending**      | Your swap intent has been submitted to FAST RPC                                                                    |
      | **Preconfirmed** | Ethereum block builders on mev-commit have committed to including your transaction — your swap is effectively done |
      | **Confirmed**    | The swap has been included in a finalized Ethereum block. Your output tokens are fully settled on-chain            |
    </Accordion>
  </Step>

  <Step title="Swap Complete">
    Once fully confirmed on-chain, the toast updates with a link to the transaction on Etherscan.

    Your output tokens are now in your wallet. The swap form resets, ready for your next trade.

    You will see an **Earning Fast Rewards** indicator below the swap card — this confirms you are accumulating Fast Miles. Check your miles balance from the **My Miles** tab in the top navigation.
  </Step>
</Steps>

***

## Earn Fast Miles

Every swap you make on Fast Swaps earns **Fast Miles** — mev rewards proportional to the value your swaps generate through [Fast Protocol](/v1.2.x/concepts/fast-protocol). The more you swap, the more miles you earn. Users receive at least **90%** of the mev their transactions generate.

Click **My Miles** in the top navigation bar to view your miles balance and swap history.

<CardGroup cols={2}>
  <Card title="View Dashboard" icon="chart-line" href="https://fastprotocol.io/dashboard">
    Check your Fast Miles balance, swap history, and leaderboard position.
  </Card>

  <Card title="Leaderboard" icon="trophy" href="https://fastprotocol.io/leaderboard">
    See how you rank against other Fast Swaps users.
  </Card>
</CardGroup>

***

## Tips & Troubleshooting

<Accordion title="My swap is taking a long time">
  Ethereum block times are approximately 12 seconds. Most swaps are preconfirmed within seconds and fully confirmed within 1-2 blocks (12-24 seconds). If a swap takes longer:

  * Check your wallet for any pending transactions
  * The swap may be waiting for a mev-commit opted-in proposer — see [FAST RPC](/v1.2.x/get-started/fastrpc) for details
  * If the swap times out (exceeds your deadline), it will automatically cancel and your tokens will remain in your wallet
</Accordion>

<Accordion title="My swap failed — what happened?">
  Common reasons for swap failure:

  * **Slippage exceeded** — The price moved more than your max slippage setting between quote and execution. Try increasing slippage via the gear icon (⚙).
  * **Insufficient balance** — Make sure you have enough of the input token plus ETH for gas (if swapping ETH).
  * **Deadline expired** — The swap was not executed before the swap deadline. Try again with a fresh quote.
  * **Price impact too high** — For large swaps, try splitting into smaller amounts.
</Accordion>

<Accordion title="I approved a token but still see the Approve button">
  The Permit2 approval may still be confirming on-chain. Wait for the approval transaction to be mined (check your wallet's activity tab), then refresh the page.
</Accordion>

<Accordion title="Can I swap any token?">
  Fast Swaps supports any ERC-20 token with on-chain liquidity on Ethereum. If a token does not appear in the default list, you can add it by pasting its contract address in the token selector search bar. Always verify the contract address from a trusted source like [Etherscan](https://etherscan.io) or [CoinGecko](https://coingecko.com).
</Accordion>

<Accordion title="Do I need ETH for gas?">
  * **Swapping ERC-20 tokens** (e.g., USDC → ETH): After the initial one-time Permit2 approval, subsequent swaps are **gasless** — you only sign a message.
  * **Swapping ETH** (e.g., ETH → USDC): You submit an on-chain transaction and pay standard Ethereum gas fees.
  * **First-time token approval**: The one-time Permit2 approval requires a small amount of ETH for gas.
</Accordion>

***

## What's Next?

<CardGroup cols={3}>
  <Card title="How Fast Swaps Works" icon="gears" href="/v1.2.x/concepts/fast-swaps">
    Learn about the technical architecture, smart contracts, and mev reward mechanics behind Fast Swaps.
  </Card>

  <Card title="Fast Protocol Economics" icon="coins" href="/v1.2.x/concepts/fast-protocol">
    Understand how mev is captured, distributed, and why users receive at least 90% of the mev their transactions generate.
  </Card>

  <Card title="FAST RPC" icon="forward-fast" href="/v1.2.x/get-started/fastrpc">
    Learn about the FAST RPC that powers preconfirmations and mev capture for Fast Swaps.
  </Card>

  <Card title="What are Fast Swaps?" icon="circle-question" href="/v1.2.x/knowledge-base/what-are-fast-swaps">
    Quick FAQ on Fast Swaps fundamentals.
  </Card>
</CardGroup>
