Every Token on Arc Mainnet: 385 Pools, and 57% Have No Liquidity
We read every Uniswap V2 pool on Arc Mainnet from the chain: 385 pairs, 218 with zero liquidity, $217,430 of USDC in total. The full dataset, and what it means.
There is a question every new chain eventually has to answer: how much of this is real? Not market cap, not follower counts — how many tokens actually exist, and how many of them have enough liquidity that a person can buy or sell one.
For Arc Mainnet that question has a precise answer, because Arc is small enough to read in full. We enumerated every Uniswap V2 pair on the chain, pulled the tokens and reserves out of each one, and wrote the result to a file. This is that data.
Every number below was read from Arc Mainnet at block 21,261,991 on 17 September 2026, and the dataset is public so you can check any of it.
The headline numbers
| Uniswap V2 pairs on Arc Mainnet | 385 |
| Pairs holding liquidity on both sides | 167 (43.4%) |
| Pairs with zero reserves | 218 (56.6%) |
| Pairs quoted in USDC | 368 |
| USDC held on the USDC side of those pools | $217,962 |
| Median USDC per pool | $0.00 |
| Pools holding under $100 | 341 of 368 (92.7%) |
| Pools holding under $1,000 | 344 |
| Share of all pooled USDC in the top 10 pools | 86% |
| Distinct tokens with a pool | 385 |
Read those together and they tell one story: Arc's DEX has a real core and a very large, very empty tail.
218 pools have no liquidity at all
Fifty-seven percent of the pairs on Arc Mainnet contain zero of both tokens. Someone deployed a token, created the pair, and never funded it — or funded it and withdrew everything later.
A pair with zero reserves is not a bad pool. It is not a pool. There is no price, because there is no ratio. There is nothing to buy from and nothing to sell into. What exists is a pair address, an entry in the factory's list, and a token page that can be linked to as though it were tradeable.
This is the single most useful thing in the dataset, because it separates two things that look identical from the outside:
- a token with a pool that quietly holds nothing, and
- a token with a pool that genuinely trades.
On a block explorer both show up as "pair created". Only the reserves distinguish them.
If you are looking at an Arc token and want to know which one you have, this is the check that matters — and it takes one call:
// On the pair address, not the token.
(uint112 r0, uint112 r1, ) = IPair(pair).getReserves();
// r0 == 0 || r1 == 0 -> there is no market here.
The long tail is dust
Of the 368 pools quoted in USDC, 341 hold less than $100. Only 23 hold more than $1,000. Only 10 hold more than $3,600.
The median USDC sitting on the USDC side of an Arc pool is zero, which is the 218 empty pairs showing through.
This matters more than it sounds. A pool with $40 of USDC is not a market — it is a price tag. A $200 buy against $40 of liquidity moves the price by roughly 80%, which means the next person to look at the chart sees a token that "went up 5x" when in reality one person spent $200. Thin liquidity does not just make trading expensive; it makes every price the token displays meaningless.
For scale: if you want a $1,000 trade to move the price by no more than about 2%, the pool needs roughly $50,000 on the USDC side. Exactly one pool on Arc Mainnet currently clears that bar.
86% of the liquidity sits in 10 pools
| # | Token | USDC side |
|---|---|---|
| 1 | USDT | $97,198.54 |
| 2 | Big | $24,382.67 |
| 3 | PI | $21,994.86 |
| 4 | ARC | $10,687.10 |
| 5 | DT | $7,895.15 |
| 6 | Big | $6,326.23 |
| 7 | POGO | $6,025.88 |
| 8 | PEG | $5,254.87 |
| 9 | 401K | $3,905.60 |
| 10 | SYN | $3,651.76 |
Ten pools hold $187,323 of the $217,962 — 86% of all the USDC pooled on the chain. The remaining 358 pools share about $30,600 between them.
For anyone launching on Arc this is the most consequential number in the post. There is no depth to inherit. A new token does not join a liquid market; it creates its own, and its quality is entirely a function of what its creator puts in. The chain will not do it for you.
44 symbols are used by more than one token
Including four different tokens using the symbol USDC, and five using Big.
Big × 5 USDC × 4 COVE × 4
TTA × 3 pUSDC × 3 PRNT × 3
BigShort × 3 short × 3 USDT × 3
DONTBUY × 3 MEME × 3 TEST × 3
Nothing prevents this. A symbol is a string a contract returns; it carries no authority and no uniqueness. Wallets and interfaces that display a symbol as though it identified an asset are showing you something a stranger chose.
Four tokens on Arc Mainnet answer to the name "USDC". One of them is the real ERC-20 USDC at 0x3600…0000. The others are not. If you ever check a balance by symbol rather than by address, this chain will eventually teach you not to.
The only identifier worth trusting is the contract address. Everything else is a label someone typed.
What this means if you are launching on Arc
Three practical conclusions, in order of how much they cost to ignore:
1. Your pool's depth is your token's credibility. With a median of $0 and 92.7% of pools under $100, a thin pool does not make you one of many — it makes you indistinguishable from the 218 that hold nothing. The number a buyer checks is the same number this dataset reports.
2. A pool with no liquidity is worse than no pool. An unfunded pair still appears in the factory's list, still has an address, and still looks like a listing on a block explorer. You have created the appearance of a market without the substance, which is precisely the pattern the rug-checking tools look for.
3. Nobody can do this for you. There is no deep venue to graduate into. The $217,430 in total pooled USDC across the whole chain is the entire basin. Plan your liquidity as though it is the only liquidity, because on Arc, today, it is.
How this was produced
Everything here comes from one read-only script that anyone can run. It enumerates allPairs on the Uniswap V2 factory, reads token0, token1 and getReserves from each pair, resolves the token metadata, and writes three files.
node scripts/arc-pool-list.mjs
The output is served from this site, so you can download exactly what these numbers came from:
- arc-pools.csv — one row per pair: both token addresses, both reserves, the decimals, the LP supply and whether the pair is funded
- arc-tokens.csv — one row per distinct token, with how many pools it appears in
- arc-pool-summary.json — the aggregates quoted above, with the block they were read at
No wallet, no signing, no API key: it reads a public RPC and nothing else. The script is deliberately boring to read, because a dataset you cannot audit is just a claim.
Caveats, stated plainly
- Uniswap V2 only. Arc also has V3 and V4 deployments. Concentrated-liquidity positions are not fungible LP tokens and cannot be enumerated the same way, so they are not in these figures. The V2 number is a floor on the chain's liquidity, not a total.
- $217,430 is not a TVL figure. It is the sum of the USDC side of USDC-quoted pools. Token-to-token pools contribute nothing to it, and the non-USDC side of every pool is not counted.
- This data is already stale. It is a snapshot of block 21,261,991. Pools are funded and drained continuously; re-run the script rather than quoting these numbers next month.
- A funded pool is not a safe pool. Reserves say a market exists. They say nothing about whether the liquidity is locked, whether the token can be minted, or who holds the supply — those are separate checks.
Arctools is an independent project. It is not affiliated with Circle, the Arc Foundation or Uniswap. The dataset above is produced from public chain data and is offered under no licence but the reader's own judgement.