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

# Relayers and paymasters

> Submit gasless transfers and sponsor UserOperations on Arc using USDC for gas.

Arc uses USDC as its native gas token. For relayers and paymasters, this means
your gas infrastructure runs entirely on USDC. Fund your signing account or
paymaster contract with USDC and Arc handles the rest.

## Choose your path

| Path | What it is | When to use it |
| :- | :- | :- |
| **EIP-3009 relayer** | An EOA that collects a user's `transferWithAuthorization` signature and submits the transaction, paying gas from its own USDC balance | Users hold USDC and want gasless transfers without account abstraction |
| **ERC-4337 paymaster** | A contract that co-signs UserOperations and pays gas from its USDC balance, deposited into the EntryPoint | You need full account abstraction or are running a bundler service |

## 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) |
| EntryPoint contract (ERC-4337 only) | EntryPoint v0.7 |

## Arc behaviors relevant to this integration

The following Arc behaviors can affect relayer and paymaster operations. Each is
covered in [EVM differences](/arc/references/evm-differences):

* **`PREVRANDAO` always returns `0`**: If any contract in your stack uses
  `PREVRANDAO` for ordering or selection logic, it always reads `0` on Arc. Use
  an oracle or VRF instead. See
  [Execution and opcode differences](/arc/references/evm-differences#execution-and-opcode-differences).
* **Blob transactions (EIP-4844 type-3) are rejected**: Arc does not support
  type-3 transactions. Do not relay or route them. See
  [Execution and opcode differences](/arc/references/evm-differences#execution-and-opcode-differences).
* **The next block's base fee is published in `extra_data`**: If you build
  custom gas-estimation tooling, read the next base fee from the parent header's
  `extra_data` field (8-byte big-endian) rather than re-deriving it. See
  [Fee market and block behavior](/arc/references/evm-differences#fee-market-and-block-behavior).
* **Relay fees use 18-decimal precision**: Native USDC (the gas token) has 18
  decimals. Relay fees and paymaster charges are denominated in native USDC, not
  ERC-20 USDC (6 decimals).
* **EIP-7702 set-code transactions work on Arc**: Arc's Osaka baseline includes
  [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702). EOAs can delegate
  execution to a contract by signing a type-4 authorization. Paymasters may
  receive UserOperations from EIP-7702-delegated accounts; the behavior is the
  same as for smart contract accounts.

## Integration guides

<CardGroup cols={2}>
  <Card title="Operate an EIP-3009 relayer on Arc" href="/integrate/relayers-and-paymasters/eip-3009-relayer">
    Submit gasless USDC transfers using a user's `transferWithAuthorization`
    signature.
  </Card>

  <Card title="Deploy an ERC-4337 paymaster on Arc" href="/integrate/relayers-and-paymasters/deploy-a-paymaster">
    Deploy and operate an ERC-4337 paymaster contract on Arc.
  </Card>
</CardGroup>
