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

# Base

> EVM asset identifiers, the ERC-20 approval step, gasless offramps, and minimum offramp size on Base.

![Base](https://mintcdn.com/etherfuse/XRSchVFGUgreQatD/img/chains/base.svg?fit=max\&auto=format\&n=XRSchVFGUgreQatD\&q=85\&s=2e66b7c72272a611f386d0912e488507)

Base is supported for onramps and offramps. As an EVM chain, assets are plain ERC-20 contracts and offramps need a one-time **token approval** before the customer can sell — with **gasless offramps**, the user doesn't even need ETH. The end-to-end flows live in the [Onramps](https://docs.etherfuse.com/guides/testing-onramps.md) and [Offramps](https://docs.etherfuse.com/guides/testing-offramps.md) guides.

## Supported operations

| Operation | Supported |
| - | - |
| Onramp (fiat → token) | ✓ |
| Offramp (token → fiat) | ✓ |
| Swap (token → token) | ✗ — not yet on Base ([Stellar](https://docs.etherfuse.com/guides/chains/stellar.md) / [Solana](https://docs.etherfuse.com/guides/chains/solana.md) / [Monad](https://docs.etherfuse.com/guides/chains/monad.md) only) |

## Asset identifiers

Base assets are identified by the **raw token contract address only** — e.g. `0xcC77c598d42f2f78Beb42C91d12B9d4041a5cE29`.

> [!WARNING]
>
> **Do not prefix with a symbol.** Using `SYMBOL:0x...` (the Stellar-style format) on an EVM chain returns `UnsupportedBlockchain`. Pass just the `0x…` address from [`GET /ramp/assets?blockchain=base`](https://docs.etherfuse.com/api-reference/assets/list-assets).

## Stablebond addresses

Live token-contract addresses for every stablebond on Base, each linked to Basescan:

## Offramps: approve the token first

Selling an ERC-20 requires a standard `approve()` so Etherfuse's contracts can move the token. Generate that approval with [`POST /ramp/evm/approve`](https://docs.etherfuse.com/api-reference/sponsored/approve-evm-token) **before** creating the offramp order — otherwise the offramp transaction fails on-chain.

```bash theme={null}
curl -X POST https://api.sand.etherfuse.com/ramp/evm/approve \
  -H "Authorization: <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "blockchain": "base",
    "wallet": "0xf82567432381D1326484E5A9140ABCa4294f82D0",
    "assetId": "0xcC77c598d42f2f78Beb42C91d12B9d4041a5cE29"
  }'
```

* **Omit `amount`** (recommended) to approve the maximum — a one-time approval per token per chain covers all future offramps. Or pass `amount` in base units to approve a specific amount.
* If a sufficient allowance already exists, the response is `{"transaction": null}` — nothing to sign, go straight to the order.
* Otherwise, have the user **sign and submit** the returned transaction, then create the offramp via [`POST /ramp/order`](https://docs.etherfuse.com/api-reference/orders/create-order).

## Gasless offramps

When gasless offramps are enabled for your organization, **Etherfuse covers the native gas** (ETH on Base) for the offramp and bundles that cost into the offramp fee — so your users don't need to hold ETH.

> [!WARNING]
>
> **Minimum offramp size.** Because the combined fee can never exceed **50% of the order**, very small offramps are rejected with `OrderTooSmall` ("Combined fee … exceeds maximum (5000 bps / 50%)"). The bundled gas cost is roughly \$0.50, so offramp at least \~50 CETES (or equivalent) at a time. See [Errors](https://docs.etherfuse.com/errors.md).

> [!NOTE]
>
> Gasless offramps and the `POST /ramp/evm/approve` flow are **feature-gated per organization** — contact Etherfuse to enable them.

## Related

> [card] [Onramps](https://docs.etherfuse.com/guides/testing-onramps.md)

> [card] [Offramps](https://docs.etherfuse.com/guides/testing-offramps.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.