Launch Fast Swaps
Start swapping at fastprotocol.io
How Fast Swaps Works
Overview
When a user initiates a swap on Fast Swaps, the following happens:- The user selects tokens and enters an amount — a solver auction runs to find the best available price across liquidity sources
- The user signs an EIP-712 intent (for ERC-20 tokens) or submits a direct transaction (for ETH)
- FAST RPC picks up the signed intent and executes it through the FastSettlement contract on Ethereum
- The winning solver routes the swap through the best available liquidity and the FastSettlement contract settles it on-chain
- mev generated from the swap is captured by Fast Protocol and redistributed to the user as Fast Miles
Execution Paths
Fast Swaps supports two execution paths depending on the input token:| Input Token | Path | User Action | Gas |
|---|---|---|---|
| ERC-20 (e.g., USDC, DAI, WBTC) | Permit2 | Sign an off-chain EIP-712 message | No gas required from the user |
| ETH | Direct | Submit a transaction from wallet | User pays gas |
ERC-20 Path (Permit2)
For ERC-20 token swaps, Fast Swaps uses Uniswap’s Permit2 contract to enable gasless, signature-based token transfers.One-time Permit2 approval
The first time you swap a given ERC-20 token, you must approve the Permit2 contract to spend that token. This is a standard ERC-20
approve transaction. If you’ve already approved the token for Permit2 on another application (like Uniswap), no additional approval is needed.Sign the swap intent
For each swap, you sign an off-chain EIP-712 typed data message. This message encodes a
PermitWitnessTransferFrom that includes:- The token permission (which token and how much FAST RPC can transfer)
- A witness containing your
Intentstruct (input/output tokens, amounts, recipient, deadline, nonce)
FAST RPC executes the swap
FAST RPC receives your signed intent and calls
executeWithPermit on the FastSettlement contract. The contract:- Verifies your Permit2 signature
- Transfers your input tokens via Permit2
- Routes the swap through the solver’s chosen liquidity path
- Sends the output tokens to your wallet
- Returns any surplus to the protocol for mev redistribution
ETH Path
When swapping ETH as the input token, the user submits a transaction directly:Submit the swap transaction
The user signs and broadcasts a transaction that calls
executeWithETH on the FastSettlement contract, sending ETH along with the call.In both paths, the transaction is routed through FAST RPC, which enables mev-commit preconfirmations and mev capture.
Pricing & Quoting
Fast Swaps uses a solver auction to find the best price for each swap. When a user enters a swap amount, the system:- Runs a competitive solver auction — Multiple solvers compete to offer the best execution price across available liquidity sources. The winning solver’s quote is presented to the user.
- Estimates gas costs — Each quote includes a gas estimate so the user can see the total cost of the swap.
-
Calculates price impact — The difference between the quoted price and the mid-market price is displayed to the user. Price impact severity is color-coded:
- Green — Less than 0.1% (negligible)
- Yellow — 0.1% to 1% (moderate)
- Red — Greater than 1% (significant)
- Refreshes every 15 seconds — Quotes have a 15-second validity window. A countdown timer in the UI shows when the next refresh will occur. Users can also manually refresh at any time.
Slippage Protection
Users can configure slippage tolerance to protect against price movement between quoting and execution:| Setting | Description |
|---|---|
| Auto | The system calculates an appropriate slippage based on the token pair and current market conditions |
| Custom | The user sets a specific percentage (e.g., 0.5%, 1%, 3%) |
userAmtOut (minimum output amount) field of the swap intent. If the swap would result in less than this minimum, the transaction reverts.
Transaction Deadline
Each swap intent includes a deadline timestamp. If FAST RPC does not execute the swap before this deadline, the intent expires and cannot be executed. Users can configure the deadline from 5 minutes to 24 hours.Smart Contracts
Fast Swaps is powered by smart contracts deployed on Ethereum L1 (Chain ID: 1).FastSettlement V3
The core settlement contract that executes swaps on behalf of users.| Property | Value |
|---|---|
| Contract | FastSettlementV3 (Upgradeable Proxy) |
| Network | Ethereum Mainnet (Chain ID: 1) |
| Proxy Address | 0x084C0EC7f5C0585195c1c713ED9f06272F48cB45 |
| Implementation Address | 0x9bc916d7cf71ac34e3d407d8ed8838071a3b6ebf |
| Source | GitHub |
Functions
executeWithETH(intent, swapData)
Executes a swap where ETH is the input token. The user sends ETH with the transaction.
executeWithPermit(intent, signature, swapData)
Executes a swap where an ERC-20 token is the input. FAST RPC provides the user’s Permit2 signature.
Data Structures
Intent — Encodes the user’s swap parameters:Permit2
Fast Swaps uses Uniswap’s canonical Permit2 contract for gasless ERC-20 approvals.| Property | Value |
|---|---|
| Contract | Permit2 |
| Network | Ethereum Mainnet |
| Address | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
| Source | GitHub |
EIP-712 Signing
For ERC-20 swaps, Fast Swaps constructs an EIP-712 typed data message that combines a Permit2 transfer with a swap intent witness. The signing domain is:- PermitWitnessTransferFrom — Standard Permit2 transfer with an additional witness field
- TokenPermissions — Specifies which token and amount FAST RPC can transfer
- Intent (witness) — The full swap parameters that the FastSettlement contract will verify on-chain
Supported Tokens
Fast Swaps supports over 2,400 ERC-20 tokens on Ethereum mainnet. Any token with on-chain liquidity can be traded. The token list includes:- Major tokens: ETH, WETH, USDC, USDT, DAI, WBTC
- DeFi tokens: UNI, AAVE, LINK, MKR, SNX, COMP
- Meme tokens: PEPE, SHIB, DOGE (wrapped)
- Custom tokens: Users can add any ERC-20 token by entering its contract address
Fast Miles
Users earn Fast Miles proportional to the mev their swaps generate through Fast Protocol. The mev distribution model is detailed in the Fast Protocol Economics page. Key points:- Users receive at least 90% of the mev their transactions generate under normal conditions
- Fast Miles are tracked in the Fast Swaps dashboard and leaderboard
- Miles are planned to be tokenized — early users accumulate before the official points system launches
- Bonus miles are available through referrals and one-time tasks in the app
Architecture Diagram
The following shows how a swap flows through the Fast Swaps system:Comparison with Traditional DEX Frontends
| Feature | Traditional DEX (e.g., Uniswap App) | Fast Swaps |
|---|---|---|
| Token selection | User selects tokens | User selects tokens |
| Pricing | DEX router quote | Solver auction across liquidity sources |
| Transaction submission | User submits directly to public mempool | Intent signed off-chain, FAST RPC executes |
| mev exposure | User’s swap is visible in mempool; bots can front-run/sandwich | Swap routed through FAST RPC; mev is captured and redistributed |
| mev rewards | None | User earns Fast Miles proportional to mev generated |
| Gas for ERC-20 swaps | User pays gas | FAST RPC pays gas (gasless for user) |
| Settlement | Direct DEX router call | FastSettlement contract with surplus capture |
| Preconfirmations | None | Transaction preconfirmed by Ethereum block builders on the mev-commit network |
Security Considerations
- Intent signing is non-custodial. The user’s wallet signs an EIP-712 message authorizing a specific swap with specific parameters. FAST RPC cannot modify the intent (tokens, amounts, recipient, deadline) after signing.
- Permit2 nonces prevent replay. Each signed intent uses a unique nonce from the Permit2 nonce bitmap. A used nonce cannot be reused.
- Deadline enforcement. Intents expire after the user-specified deadline. Stale intents cannot be executed.
- Minimum output protection. The
userAmtOutfield ensures the user receives at least the expected amount minus slippage tolerance. If the swap would produce less, the transaction reverts. - Smart contract audits. The FastSettlement contracts are open source and subject to security review.