> ## 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.

# Stablecoin native model

> Arc is built around stablecoins as first-class assets, with USDC as the native gas token, EURC for euro-denominated transfers, and USYC for yield-bearing use cases.

Transaction fees on Arc are denominated in dollars, not a volatile asset. USDC,
EURC, and USYC are integrated at the protocol level. No bridging or wrapping is
required.

## USDC as the native gas token

On most EVM blockchains, a volatile token (such as ETH) serves as the native
asset for gas fees and value transfer. Arc replaces this with USDC. Every
transaction fee, native balance, and native transfer on Arc is denominated in
USDC.

This means:

* Fees are predictable in dollar terms.
* You hold a single asset for both gas and application-level transfers.
* There is no need to acquire or manage a separate gas token.

### Two interfaces, one balance

USDC on Arc has two interfaces that share the same underlying balance:

| Interface | Decimals | Purpose |
| :- | :- | :- |
| **Native** | 18 | Gas accounting, native sends, and `msg.value` |
| **ERC-20** | 6 | application-level transfers, approvals, and allowances |

The native representation uses 18 decimals, consistent with how ETH works on
Ethereum. The ERC-20 interface at
[`0x3600000000000000000000000000000000000000`](/arc/references/contract-addresses#usdc)
uses 6 decimals to match the standard USDC representation on other EVM networks.

This design also affects how DeFi protocols should handle USDC on Arc. On other
EVM blockchains, a WETH-style wrapper contract gives the native asset an ERC-20
interface. On Arc, USDC is the native token and already has a built-in ERC-20
interface. The wrapping step does not exist; protocols should use this address
directly. No wrapper is deployed or supported. Don't alias the
[EIP-7528](https://eips.ethereum.org/EIPS/eip-7528) native-asset sentinel
(`0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE`) that DeFi SDKs use in routing
tables as a stand-in for native ETH to this address: aliasing it conflates
native value transfers with ERC-20 transfers. For the protocol-level details,
see [EVM differences](/arc/references/evm-differences).

This native asset design behaves differently from other EVM chains in ways that
can break common assumptions:

* `USDC.balanceOf(addr)` (6 decimals) and `addr.balance` / `eth_getBalance` (18
  decimals) represent the same underlying balance. The ERC-20 interface
  truncates the last 12 decimal places of the native value; amounts smaller than
  1×10⁻⁶ USDC are not represented in `balanceOf` but are still present in the
  native balance.
* Transfers through either interface affect the same underlying balance.
* A native transfer can revert even with a sufficient balance, for example
  because of the blocklist or zero-address rules.

If you're porting an existing contract, see the
[Porting contracts to Arc checklist](/arc/tutorials/porting-contracts-to-arc)
and [value transfer rules](/arc/references/evm-differences#value-transfer-rules)
for the full set of differences.

For fee parameters and gas pricing details, see
[Gas and fees](/arc/references/gas-and-fees). For the rationale behind stable
fee denomination, see [Stable fee design](/arc/concepts/stable-fee-design).

### Indexing USDC movements

Every USDC send, ERC-20 transfer, mint, and burn emits a `Transfer` log (18
decimals) from the system emitter, Arc's
[EIP-7708](https://eips.ethereum.org/EIPS/eip-7708) implementation. Gas
deductions don't emit events. The ERC-20 USDC contract additionally logs its own
`Transfer` (6 decimals) for ERC-20-interface activity, so a single ERC-20
transfer emits both; match on the emitter address to avoid double-counting. For
the full event reference, including emitter addresses, the mint and burn
mapping, and legacy native events, see
[USDC system events](/arc/references/usdc-system-events). For a step-by-step
walkthrough, see [Index Arc events](/integrate/infrastructure/indexing-events).

## Natively supported stablecoins

Beyond USDC, Arc natively supports additional stablecoin assets at the protocol
level, meaning they are deployed as pre-configured contracts at genesis, not
bridged or wrapped from other blockchains.

### EURC

EURC is Circle's euro-denominated stablecoin. It is deployed as a standard
ERC-20 token on Arc with 6 decimals, enabling euro-denominated payments, FX
workflows, and multi-currency applications without relying on third-party
bridges. For the EURC contract address, see
[Contract addresses](/arc/references/contract-addresses#eurc).

### USYC

USYC is a yield-bearing token representing shares of a tokenized money market
fund, a regulated investment vehicle that holds short-duration U.S. Treasury
securities and distributes yield to token holders. It provides onchain access to
regulated, low-risk yield for institutional participants.

USYC is only accessible to institutions outside the United States, subject to
eligibility restrictions and a \$100,000 USD minimum investment.

For token addresses and testnet faucet instructions, see
[Contract addresses](/arc/references/contract-addresses).

## Design rationale

Arc's stablecoin-native model is a deliberate architectural choice, not a
compatibility layer added after launch. Three principles guided the design.

### No volatile native token

Traditional blockchains require users to hold a volatile native token to pay
fees. This creates friction for financial applications: users must acquire the
token, manage price exposure, and convert between the fee token and the assets
they actually want to use. Arc eliminates this by making USDC the native token
from day one.

### Single gas denomination at launch

Arc launches with USDC as the sole gas token rather than supporting multi-token
gas payments from the start. A single denomination simplifies the fee market,
avoids oracle dependencies for gas price conversion, and keeps the protocol's
economic model straightforward. Multi-stablecoin gas payment through paymasters
(smart contracts that sponsor or redirect gas fees on behalf of a user) is not
supported at launch.

### Stablecoins as first-class primitives

USDC, EURC, and USYC are not tokens added after launch. They are integrated at
the protocol level, which means applications can compose across stable assets
with consistent interfaces and without external dependencies. This positions Arc
as infrastructure specifically designed for payments, lending, FX, and treasury
management.
