Arc Testnet API: Circle's Stablecoin L1 via GraphQL, WebSocket and Kafka
Arc is Circle's EVM-compatible Layer 1 built for stablecoin finance: USDC is the native gas token, blocks finalize in well under a second on the Malachite BFT consensus, and the chain carries USDC, EURC and a growing set of DeFi deployments led by Uniswap v4. Bitquery indexes the Arc testnet as EVM(network: arc_testnet) and publishes it as Kafka topics under arc-testnet.*, so you can build and test against the chain before mainnet with the same queries you already use on Ethereum, Base or Robinhood Chain.
This page is the map. Use it to pick the cube that answers your question, then jump to the linked guide.
To query or stream data outside the Bitquery IDE, you need an API access token.
Follow the steps here: How to generate Bitquery API token ➤
Arc testnet at a glance
| Property | Value |
|---|---|
| Bitquery network name | arc_testnet in EVM(network: arc_testnet) |
| Kafka topic prefix | arc-testnet. |
| Chain ID | 5042002 |
| Stack | EVM, Circle Arc Layer 1, Malachite BFT consensus |
| Gas token | USDC, tracked as Currency.Native: true |
| USDC (ERC-20 interface, 6 decimals) | 0x3600000000000000000000000000000000000000 |
| EURC (6 decimals) | 0x89b50855aa3be2f677cd6303cec089b5f319d72a |
| Uniswap v4 PoolManager | 0x1d70945634f618eefdf9edaadb59b9a183cef929 |
| Public explorer | testnet.arcscan.app. Bitquery is an indexed data API, not an explorer or an RPC node |
| GraphQL endpoint | https://streaming.bitquery.io/graphql for queries and subscriptions |
What is different on a testnet
Arc testnet is indexed with the same EVM schema as every other chain, with four differences you should know before writing queries.
| Difference | What it means for your query |
|---|---|
| USD values are 0 | Every ...InUSD field (AmountInUSD, PriceInUSD, ValueInUSD, CostInUSD) returns 0. There is no token price index on a testnet. Native prices such as Trade.Price work, and since most pairs quote in USDC they are effectively dollar prices. |
| Realtime dataset only | There is no archive for the testnet. Leave the dataset argument out; archive and combined return errors. The realtime window is a rolling range of recent blocks; measure it with Block { Time(minimum: Block_Time) }. |
No Trading cubes | Trading.Trades, Tokens and Pairs cover mainnet chains with USD pricing. Use the chain-level DEXTrades and DEXTradeByTokens cubes. |
| Some cubes are unavailable | Holders needs the archive and is not served. DEXPoolEvents and DEXPoolSlippages have no data yet. Balances, BalanceUpdates and TransactionBalances work. |
Arc mainnet will be indexed with USD pricing from the token price index and an archive dataset.
Quick start: stream every swap on Arc testnet
Paste this into the Bitquery IDE to watch the network trade in real time. Uniswap v4 carries most of the volume, with v3, v2, Curve and Aerodrome deployments behind it.
▶️ Run in IDE
subscription {
EVM(network: arc_testnet) {
DEXTrades {
Block {
Number
Time
}
Transaction {
Hash
From
}
Trade {
Dex {
ProtocolFamily
ProtocolName
SmartContract
}
Buy {
Amount
Buyer
Seller
Price
Currency {
Name
Symbol
SmartContract
}
}
Sell {
Amount
Buyer
Seller
Price
Currency {
Name
Symbol
SmartContract
}
}
}
}
}
}
Change subscription to query, add limit: {count: 10} and orderBy: {descending: Block_Time}, and the same selection set returns the latest trades instead. OHLCV candles, token prices, top tokens and trader activity are on the Arc Testnet DEX Trades API page.
Pick the right API
| What you want | Use this | Guide |
|---|---|---|
| Live swaps, OHLCV, token prices, top tokens, DEX breakdown, trader activity | DEXTrades, DEXTradeByTokens | Arc Testnet DEX Trades API |
| Who sent what to whom, wallet ledgers, large transfers, most-transferred tokens | Transfers | Arc Testnet Transfers API |
Any decoded contract event, new Uniswap v4/v3/v2 pools, an eth_getLogs replacement | Events | Arc Testnet Events API |
| Method calls, internal traces, contract deployments, reverts | Calls | Arc Testnet Calls & Traces API |
| Transactions, receipts, blocks, USDC gas fees | Transactions, Blocks | Arc Testnet Transactions, Blocks & Fees API |
| A wallet's portfolio, balance history, active holders, token total supply | Balances, BalanceUpdates, TransactionBalances | Arc Testnet Balances & Token Supply API |
USDC on Arc: native and ERC-20
USDC is both the gas token and an ERC-20 on Arc, and Bitquery tracks the two as separate currencies.
| Form | How it appears | Decimals |
|---|---|---|
| Native USDC | Currency.Native: true with SmartContract: "0x" in Transfers and Balances; the zero address with name USD Coin in DEXTrades and DEXTradeByTokens | 18 |
| ERC-20 USDC | SmartContract: "0x3600000000000000000000000000000000000000", symbol USDC | 6 |
| System ledger | 0xfffffffffffffffffffffffffffffffffffffffe, no symbol, raw 18-decimal integers mirroring native movements | 0 |
Filter on Native: true for gas-token value transfers and on the 0x3600... contract for the ERC-20 interface. Exclude the system ledger from token rankings. Transaction fees are in native USDC, so Fee.SenderFee on the Transactions API is already a dollar figure.
DEXes on Arc testnet
| Protocol | Dex.ProtocolName | Notes |
|---|---|---|
| Uniswap v4 | uniswap_v4 | Most swaps on the testnet. Pools live in the PoolManager singleton, so Dex.SmartContract is 0x1d70945634f618eefdf9edaadb59b9a183cef929 and new pools are Initialize events. |
| Uniswap v3 | uniswap_v3 | Several factory deployments; Dex.SmartContract is the pool. |
| Uniswap v2 | uniswap_v2 | Several factory deployments; Dex.SmartContract is the pair. |
| Curve | curve_v1 | Stablecoin pools. |
| Aerodrome | aerodrome_v1 | Light activity. |
The DEX Trades API has a live breakdown by protocol, and the Events API streams new pools as they are created.
Real-time streams: WebSocket and Kafka
- WebSocket. Every query on every page above runs as a subscription: swap
queryforsubscriptionand keep the same selection set. See WebSocket subscriptions and authorizing a WebSocket connection. - Kafka. For firehose-scale workloads, Arc testnet is published as protobuf topics under the
arc-testnet.prefix:arc-testnet.transactions.proto(transactions, calls, events),arc-testnet.tokens.proto(transfers, balances),arc-testnet.dextrades.proto(DEX trades) andarc-testnet.raw.proto(raw blocks). The message schemas are the same as every other EVM chain; USD fields in the messages are 0 on the testnet. See Kafka streaming concepts and the EVM protobuf streams.
Datasets and history
Only the realtime dataset exists for Arc testnet. It holds a rolling window of recent blocks, and its depth is not fixed, so measure it before relying on a time range:
{
EVM(network: arc_testnet) {
Blocks {
count
earliest: Block {
Time(minimum: Block_Time)
}
latest: Block {
Time(maximum: Block_Time)
}
}
}
}
dataset: archive and dataset: combined return errors on the testnet. The archive dataset, and with it the Holders cube and long time ranges, will be available for Arc mainnet.
FAQ
What is Arc and what is its chain ID?
Arc is Circle's EVM-compatible Layer 1 for stablecoin finance, with USDC as the native gas token and sub-second finality on the Malachite BFT consensus. The testnet chain ID is 5042002. In Bitquery it is EVM(network: arc_testnet). Solidity ABIs, topic0 hashes and 4-byte selectors work exactly as they do on Ethereum.
Why are all USD values zero?
There is no token price index for a testnet, so every ...InUSD field is 0. Native prices such as Trade.Price are correct, and because most pairs quote in USDC they are effectively dollar prices. Arc mainnet will carry USD values from the price index.
How far back does Arc testnet data go?
Only the realtime dataset exists, holding a rolling window of recent blocks. There is no archive for the testnet, so dataset: archive and dataset: combined return errors. Measure the window with the dataset probe before assuming a range.
Can I use the Trading cubes or the Holders cube on Arc testnet?
No. The Trading cubes cover mainnet chains with USD pricing, and Holders is served from the archive dataset. Use DEXTrades and DEXTradeByTokens for trades, and BalanceUpdates summed per address for holder rankings.
Are there Kafka topics for Arc testnet?
Yes. Topics are published under the arc-testnet. prefix (transactions, tokens, dextrades and raw) with the same protobuf schema as other EVM chains. USD fields in the messages are 0 on the testnet. See the streams section.
Does Bitquery provide an Arc RPC endpoint, faucet or block explorer?
No. Bitquery is an indexed data API. Circle's testnet explorer is testnet.arcscan.app and test USDC comes from Circle's faucet. Every explorer lookup has an API equivalent here that can be queried in bulk and streamed: address history (Transfers, Balances), transaction receipts (Transactions), contract logs (Events) and internal traces (Calls).
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.