# Swapper On-ramp

On-ramp from fiat or any supported EVM chain into Fast network — via CLI or AllSet SDK.

## What the On-ramp Does

The on-ramp bridges funds from the outside world into Fast:

* **Fiat → Crypto**: Buy USDC with a credit card or bank transfer; USDC is then bridged to Fast as `fastUSDC`
* **EVM → Fast**: Deposit USDC from any supported EVM chain (Arbitrum, Base, Ethereum) directly into Fast via the AllSet bridge

Funds arrive on Fast as `fastUSDC` and are immediately usable for agent payments, x402 requests, or cross-chain workflows. No exchange account or CEX KYC is required for EVM deposits.

## How to Use

### CLI

The [Fast CLI](https://github.com/fastxyz/fast-sdk/blob/main/app/cli/README.md) provides funding flows for both crypto deposits and fiat on-ramp entry points. In the current monorepo, `fast fund crypto` covers EVM-to-Fast deposits, while `fast fund fiat` returns a mainnet on-ramp URL for the selected Fast address.

The CLI wraps the underlying SDK flows where appropriate. For scripted integrations or custom orchestration, use the SDK directly.

### SDK

Use `@fastxyz/allset-sdk` to execute deposits programmatically. The SDK provides `createEvmWallet()`, `createEvmExecutor()`, and `executeDeposit()` for bridging from EVM chains to Fast. All functions are pure — you pass all addresses and RPC URLs explicitly.

For complete API documentation and runnable code examples, see the [AllSet SDK README on GitHub](https://github.com/fastxyz/fast-sdk/blob/main/packages/allset-sdk/README.md). See the [AllSet SDK reference](/sdk-references/core-sdk-execution/allset-sdk.md) for an overview of how deposits, withdrawals, and intents work.

## How AllSet SDK Enables the Bridge

The AllSet bridge is a two-step protocol built into `@fastxyz/allset-sdk`:

1. **Approve + Deposit** (EVM side): `executeDeposit` submits an ERC-20 `approve` (if needed) and a deposit transaction to the AllSet bridge contract on the source EVM chain
2. **Mint on Fast** (Fast side): The AllSet relayer observes the EVM event, cross-signs the proof, and mints `fastUSDC` to the receiver's Fast address

This means:

* No liquidity fragmentation — funds arrive as Fast-native USDC (`fastUSDC`)
* No waiting for finality — Fast settlement is sub-second once the EVM deposit confirms
* No user-controlled bridging keys — the relayer handles cross-chain proof generation

For advanced intent-based flows (custom calldata, deposit-back, revoke), see `executeIntent()` in the [AllSet SDK reference](/sdk-references/core-sdk-execution/allset-sdk.md).

## Supported Tokens and Chains

### EVM Source Chains

| Chain            | Chain ID | USDC Address                                 | Status |
| ---------------- | -------- | -------------------------------------------- | ------ |
| Ethereum Sepolia | 11155111 | `0x...` (test USDC)                          | ✅      |
| Arbitrum Sepolia | 421614   | `0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d` | ✅      |
| Arbitrum         | 42161    | `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | ✅      |
| Base             | 8453     | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | ✅      |
| Ethereum         | 1        | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | ✅      |

### Fast Tokens (on Fast network)

| Token      | Description                 | Minted via AllSet? |
| ---------- | --------------------------- | ------------------ |
| `fastUSDC` | Fast-native USDC (1:1 USDC) | ✅ (from EVM USDC)  |
| `testUSDC` | Testnet equivalent          | ✅ (from test USDC) |

### Fiat On-ramp

| Method        | Region     | Token Out     | Status      |
| ------------- | ---------- | ------------- | ----------- |
| Credit Card   | US, EU, UK | USDC/testUSDC | Coming soon |
| Bank Transfer | US, EU     | USDC/testUSDC | Coming soon |

> Fiat on-ramp is integrated via third-party providers. The current CLI exposes the entry point, while broader SDK wrappers and provider coverage continue to evolve. Track the high-level roadmap in the [Funding Abstraction](/sdk-references/funding-abstraction.md) overview.

## SDK Reference

| SDK                                                                                                  | Use for                                      |
| ---------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| [@fastxyz/allset-sdk](https://github.com/fastxyz/fast-sdk/blob/main/packages/allset-sdk/README.md)   | EVM ↔ Fast deposits, withdrawals, intents    |
| [@fastxyz/sdk](https://github.com/fastxyz/fast-sdk/blob/main/packages/fast-sdk/README.md)            | Fast address conversion, transaction signing |
| [@fastxyz/x402-client](https://github.com/fastxyz/fast-sdk/blob/main/packages/x402-client/README.md) | Pay for x402 APIs with Fast or EVM funds     |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fast.xyz/sdk-references/funding-abstraction/swapper-on-ramp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
