> For the complete documentation index, see [llms.txt](https://docs.surged.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.surged.fun/integration/arc.md).

# Arc, in practice

[Arc](https://arc.io) is Circle's chain. It is an EVM chain and viem talks to it like any other, but four things differ enough to break an integration written for Ethereum.

## USDC is the native coin, with 18 decimals

There is no ether here. Balances, `msg.value` and gas are all USDC, and as the native coin it has **18 decimals**, not the 6 you know from USDC on other chains.

There is also an ERC-20 view of the same balance, at `0x3600000000000000000000000000000000000000`, and **that one has 6 decimals**. Same money, two decimal scales, and moving between them is where integrations lose three orders of magnitude.

Everything in these docs is in 18-decimal native units unless it says otherwise. The SDK gives you the only two conversions you should use:

```ts
import { toNativeUnits, toErc20Units } from '@surged/sdk'

toNativeUnits(1_000_000n) // 1 USDC, 6 decimals -> 18
toErc20Units(10n ** 18n) // 1 USDC, 18 decimals -> 6
```

Anything that goes through the ERC-20 view, which includes bundle consents, must be a whole micro-unit: a multiple of `1e12` in native units. Anything else reverts.

## Gas is paid in the asset you are trading

A buy spends USDC and so does its gas. A transaction sized at the full balance cannot pay for itself.

The base fee has a floor of 20 gwei but **it is not fixed**: Arc runs normal EIP-1559 on top, and on the day mainnet opened the fee went from 20 to 196 gwei within hours. Read the base fee of the latest block, the realtime feed publishes it on every `block` message, and leave headroom over it. A hardcoded reserve will be smaller than one transaction on a busy day.

## Blocks are 500 ms and there is no public mempool

Two consequences.

**Time is measured in blocks.** The snipe tax decays over six blocks, about three seconds. Anything you schedule should count blocks, not seconds.

**You cannot watch for pending transactions.** There is nothing to front-run and nothing to watch. The flip side is that a transaction you send is not visible until it is mined, which is why the anti-snipe window is measured from the launch block rather than from a transaction's arrival.

## Nodes cap `eth_getLogs`

Public nodes return at most 20,000 results per call, which at mainnet load is roughly 42 blocks. If you index the chain yourself, narrow the range when a node refuses instead of retrying the same one.

## Endpoints

|            |                                            |
| ---------- | ------------------------------------------ |
| Chain id   | `5042`                                     |
| RPC        | `https://rpc.mainnet.arc.io`               |
| Websocket  | `wss://rpc.quicknode.mainnet.arc.io`       |
| Explorer   | [explorer.arc.io](https://explorer.arc.io) |
| Block time | 500 ms                                     |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.surged.fun/integration/arc.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
