tokens_arc.transfers table contains token movement data for assets on Arc, Circle’s Layer-1 built for stablecoin payments. It brings native USDC movement and ERC-20 transfers into one table with a shared schema, prices, and normalized amounts.
This dataset includes:
- Native USDC movement, captured from Arc’s EIP-7708 transfer logs
- ERC-20 transfer events for every other token on the chain
- Normalized amounts alongside raw base units
- USD valuation where a price is available for the token
Arc’s gas token is USDC, so “native” rows on Arc are USDC movements rather than a separate gas asset. Native rows carry the zero address (
0x0000...0000) in contract_address, following the same convention used across Dune’s EVM balance and transfer tables.Utility
The Arc transfers table gives you a single view of token movement on Arc, letting you:- Track USDC flows between wallets and contracts, including gas-token movement
- Analyze transfer activity by token, counterparty, and day
- Measure USD volume for priced tokens
- Join to
tokens_arc.erc20for token metadata, or toprices_arc.minutefor pricing
Methodology
Arc implements EIP-7708, which makes native value transfers emit a log rather than being visible only in traces. On Arc these logs are emitted by the system address0xfffffffffffffffffffffffffffffffffffffffe using the standard ERC-20 Transfer topic, with the amount in 18-decimal base units.
This table is built around that:
- Native USDC comes from the EIP-7708 system emitter at 18 decimals, in place of the traces leg used on other EVM chains.
- All other tokens come from their own ERC-20
Transferevents. - The 6-decimal USDC ERC-20 interface at
0x3600000000000000000000000000000000000000is deliberately excluded, because the EIP-7708 emitter already records the movements made through it. Including both would double-count the same transfer.
The two views of USDC
Arc exposes USDC two ways over the same pool of funds, and the distinction matters when you compare amounts:
The two differ by exactly 1012:
eth_getBalance(addr) / 1e12 == balanceOf(addr). There is no wrapped USDC on Arc — the native asset satisfies IERC20 directly. Because this table sources native movement from the EIP-7708 emitter, amounts for native USDC rows are normalized from the 18-decimal view.