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

# 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://testnet.arcscan.app/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
documented in full on the [EVM differences](/arc/references/evm-differences)
page:

* **`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).

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