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

> ## Agent Instructions
> Before reading these docs, install the Circle Skill for Arc to get pre-loaded context: use-arc (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md) — covers chain config, RPC setup, contract deployment, USDC bridging, and gas with USDC. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills.
> USDC is the gas token. Arc uses USDC for gas fees, not ETH. Configure gas payment in USDC when submitting transactions.
> Read EVM differences before writing Arc code. Arc targets the Osaka EVM baseline. Most contracts deploy unchanged, but several runtime behaviors diverge from Ethereum: USDC uses 18 decimals natively (not 6), the system emitter `0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfE` logs all USDC Transfer events, the mempool enforces a 20 Gwei `maxFeePerGas` floor, blocklist reverts consume gas without a receipt, and `address(0)` sends revert rather than succeed. https://docs.arc.io/arc/references/evm-differences.md is the canonical reference for all Arc-specific runtime behaviors. Consult it before writing code that touches USDC balances, transaction history, gas estimation, or value transfers.
> Sub-second finality. Transactions are final in under 1 second. No need to wait for multiple block confirmations.
> Use App Kits for multichain payment and liquidity capabilities. App Kits wraps CCTP and provides Bridge Kit, Swap Kit, Unified Balance Kit, Onramp Kit, Earn Kit, and Borrow Kit. Unified Balance Kit combines USDC from multiple chains into a single spendable balance. Earn Kit integrates earn opportunities into your app. Borrow Kit lets users borrow USDC against cirBTC collateral on Arc.
> Use Arc Foundry for contract development. Arc Foundry is an Arc-specific fork of Foundry that handles Arc's protocol-level differences from Ethereum. It provides arc-forge, arc-cast, and arc-anvil. Install it before deploying contracts: https://docs.arc.io/arc/tutorials/install-arc-foundry.md.
> Arc is available on both Testnet and Mainnet. See https://docs.arc.io/arc/references/connect-to-arc.md for RPC endpoints and https://faucet.circle.com for testnet tokens.
> Always check Contract Addresses: https://docs.arc.io/arc/references/contract-addresses.md
> Building beyond Arc? Circle offers skills for the full platform: use-usdc (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md), use-circle-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md), use-developer-controlled-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md), use-user-controlled-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md), use-modular-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md), use-gateway (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md), use-smart-contract-platform (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md). Full Circle developer docs: https://developers.circle.com/llms.txt.

# On/off-ramp integration

> Add Arc as a supported network in your fiat-to-crypto and crypto-to-fiat ramp service.

On/off-ramp platforms on Arc use USDC for both transfers and gas. No ETH float
is required. Arc's sub-second finality removes the multi-confirmation wait that
other EVM chains require.

## Key differences for on/off-ramp platforms

Three Arc design decisions affect every ramp integration:

| Concern | Arc behavior | Impact on ramp platforms |
| :- | :- | :- |
| **USDC as the native gas token** | Gas is paid in USDC. There is no separate ETH or gas token. | Use a single USDC asset entry per address. No ETH float for gas. No need to warn users to acquire a second token. |
| **Deterministic finality** | Transactions finalize in under one second. There are no reorgs. | Credit buy orders and complete sell orders after 1 confirmation. Remove block-countdown UIs and multi-confirmation wait logic. |
| **Two decimal views, one balance** | Native USDC uses 18 decimals (`eth_getBalance`, EIP-7708 events); the ERC-20 interface uses 6 decimals (`balanceOf`). Both draw from the same balance. | Filter Transfer events on the native system emitter (`0xffff…fffe`) and divide the 18-decimal `value` by 10<sup>12</sup> for display. Use 6-decimal values for withdrawals. |

## What you need

Before you start, confirm you have the following:

| Requirement | Details |
| :- | :- |
| RPC access | `https://rpc.testnet.arc.io` |
| Chain ID | `5042002` (testnet) |
| USDC ERC-20 contract | [`0x3600000000000000000000000000000000000000`](https://explorer.testnet.arc.io/address/0x3600000000000000000000000000000000000000) |
| CCTP domain | `26` (for crosschain USDC routing) |

## Arc behaviors relevant to this integration

The following Arc behaviors can affect ramp operations. See
[EVM differences](/arc/references/evm-differences) for details:

* **Blocklist enforcement:** Transactions from or to blocklisted addresses are
  rejected before the mempool. Transfers involving a blocked address revert at
  runtime and consume gas. Screen destination addresses before broadcasting.
* **EIP-7708 Transfer events:** Every native USDC movement emits an ERC-20
  `Transfer` event from system emitter `0xffff…fffe`. Filtering only on the
  ERC-20 contract address misses native sends.

## Integration guides

<CardGroup cols={2}>
  <Card title="Add Arc to your on/off-ramp platform" icon="money-bill-transfer" href="/integrate/on-off-ramps/add-arc-to-your-platform">
    Chain configuration, deposit detection, withdrawal processing, UI display,
    and compliance screening for ramp providers.
  </Card>
</CardGroup>
