{Arc testnet} {live} {Mainnet Sep 16}

Every token on Arc. 0.40 s after it exists.

Needle sees every token on Arc at its first transfer, long before it has a pool, and shows the evidence behind it. For traders, bots and agents. No launcher, no trading.

New on Arc {block 8,123,456}
0.40 s
Preview of the Needle feed with simulated data
tokenvenueagemcap5mholderscurvetrust
Preview with simulated data. Click a row for its trust signals.Live feed in the app

Latency is block-to-row p50, measured on Arc testnet (395 ms; p99 under 1 s). At launch the number reads from live metrics.

{Block → row}
395ms p50

Block close to queryable row on Arc testnet. p99 stays under one second.

{Burst ingest}
2,628events / s

Decode and transactional SQL write ceiling, WAN latency excluded.

{Backfill}
92.6blocks / s

Real USDC history caught up over a public RPC, zero RPC errors.

{Gaps}
0

Event inserts and the cursor commit in one transaction. A commit, or nothing.

Measured on the Arc public testnet, reading only Postgres rows and /metrics. Methodology and raw results: docs/benchmarks.

What Needle shows

Four views out of the box, plus the ones you build. Every venue on Arc is measured the same way, and the chain itself gets a dashboard.

Feed

New, graduating, graduated and trending, or any view you define yourself. Filter by venue, age, market cap, holders, concentration and trust. One row per token, updated every block.

Feed, filtered to graduating
tokenvenuecurvemcapholders
USDCATexamplepad94%$61.2k412
PLEXexamplepad88%$57.9k380
ARCFROGotherpad81%$52.4k295
DOLLAotherpad77%$49.1k301

Token page

The bonding-curve phase and the DEX phase on one chart, with the graduation marked. Trades, holders, concentration, creator wallet, creator history and liquidity status. Links out to the venue where it trades. There is no buy button here.

Price, USDC. Curve phase, then Uniswap v4 after graduation
graduated curve phase uniswap v4

Launchpad leaderboard

Launches per day, graduation rate, median token lifetime, share still trading after 24 hours, rug rate. Same metrics for every launchpad, computed from the same tables. Not listed means not compared.

Illustrative values
launchpadlaunches / daygraduationmedian liferug rate
examplepad1843.1%2.4 h11%
otherpad964.7%3.9 h8%
thirdpad411.9%1.1 h19%

Network

USDC and EURC flows, CCTP inflows, DEX volume, active wallets, tokens created per day. The chain's dashboard, in plain numbers, from the same Postgres.

Network, last 24 hours (illustrative)
{USDC transferred}
$184.2M
{CCTP inflow}
$21.7M
{DEX volume}
$9.4M
{Tokens created}
1,208

Describe the needle you're looking for

Everyone hunts something different. Describe it once: conditions on any metric, including ones you define yourself. The rule runs on every block, and Needle hands you the match, never the decision.

1 — write itAge under 45 minutes, more than 8 holders, top 10 below 45%, no bundle signal, any venue. Add holders / age_min as your own metric and screen on that too.
2 — backtest itBefore you trust a rule, see what it would have caught: how often it fires, how many of those graduated, how many rugged, the median peak. History is modelled from block 0, so the answer takes a second.
3 — put it to workSave it as a feed tab, send it to Telegram or a webhook, run it as SQL, subscribe over WebSocket, or hand it to an agent as an MCP tool. One rule, five exits.
Backtest, last 7 days
{fires / day}
31.4
{graduated}
12%
{rugged}
19%
{median peak}
4.6×
Base rate for any new token: 3.4% graduate

Needle measures and hands you the evidence. It does not decide, and it does not trade.

Built to be trusted

Discovery only works if the layer showing you the market has no position in it.

Neutral by design

Needle has no launcher and no swap. Rankings cannot be bought. Every launchpad is measured the same way, and the leaderboard includes the ones that would rather not be on it.

Open data

Every table Needle reads is available to you: read-only SQL, a documented schema, a token list and an API. The trust rules are published, so a signal can be checked, not just believed.

Explained, not scored

Each trust signal shows its evidence, and the rules are public. A number without a reason is just another opinion.

Bundle 3 wallets bought in the creation block, all funded from 0x9f21…c04a within 40 s.

How it works

Chain events in, tables out, reasons attached. Needle is an application on top of the tables, nothing more.

//01

Watch

Every ERC-20 transfer on Arc, plus every launchpad and DEX pool that has an adapter. New tokens are seen at their first transfer, not at their first pool.

//02

Index

Every event lands in Postgres in one transaction with the cursor that tracks it. A crash resumes exactly where it stopped; the invariant is gaps equal zero.

//03

Explain

Trust rules run on the tables and attach their evidence. The feed, charts, holders, alerts, API, SQL and MCP read the same rows.

# trust rule, published exactly as it runs
signal: bundle
severity: high
when:
  buyers_in_creation_block: ">= 3"
  same_funding_cluster: true
  funded_within: "60s"
evidence: "{n} wallets bought in block {block},
  all funded from {source} within {seconds} s"

Why Needle is different

Everything else on Arc starts at the pool, or at someone else's API. Needle starts at the block, with its own indexer reading Arc nodes directly. The same tables, read three ways.

 DEX trackersExplorersNeedle
a token is seen atits first poolits contract creationits first transfer: on a curve, in a pool, or issued directly with no market yet
block to screenseconds to minutes, pollinga block or two0.4 s p50, every block
completenesssampled from APIs, gaps possiblecomplete, rawgap-free: rows and cursor commit together, indexed at finality, never rolls back
launchpadseach parsed separately, if at allnot modeledone schema across every launchpad and DEX: tokens, trades, holders
trusta scorenonepublished rules with evidence you can re-run in SQL
wallet clusterspartialnonefull funding graph: gas is USDC, so every wallet's first dollar is on record
accessUI, sometimes RESTUI, RPCWebSocket, REST, SQL, MCP on the same tables
alertspollingnoneper block, to Telegram and webhooks
historyfrom the day they startedfrom genesis, rawfrom block 0, modeled: creator reputation across every launchpad
run it yourselfnoa nodethe same indexer, in your own cluster, on the Builder tier

For traders

BeforeThree launchpad tabs, a tracker that only shows the pool, a rug checker in a fourth tab.

With NeedleOne feed from the first transfer, the evidence in the row, and an alert at the block it happens.

For bots

BeforeRun a node, parse every venue's ABI, handle reorgs, backfill history yourself.

With NeedleSpeed and schema: subscribe to tokens.new, join trades_unified in SQL, trust finalized rows that never roll back, read history from block 0.

For agents

BeforeScrape a UI, or glue three APIs with three schemas.

With NeedleSemantics and evidence: typed MCP tools, SQL as the interface, trust rules published as YAML, so the agent cites the reason instead of a score.

Launchpads: get listed

Add one YAML adapter to the public registry: factory address, event ABIs, graduation rule. When it merges, your tokens appear in the feed and your launchpad appears on the leaderboard.

name: examplepad
chain: arc
factory: "0x1234…abcd"
events:
  created:   TokenCreated(address token, address creator)
  trade:     Trade(address token, address wallet, bool isBuy, uint256 usdc, uint256 amount)
  graduated: Graduated(address token, address pool)
graduation: { rule: usdc_reserve, threshold: 69000 }
-- every table Needle reads is yours to query
select address, launchpad, mcap_usdc, top10_pct
from token_stats
where first_ts > now() - interval '10 minutes'
order by first_ts desc;

Developers

Subscribe over WebSocket, call the REST API, run SQL against a read replica, or point an agent at the MCP server. The schema is documented and stable across chains.

On the Builder tier the whole thing runs where you want it: one Kubernetes manifest brings up the indexer, its Postgres and the read API inside your own cluster, so the data never leaves it. Same schema, same rules, your infrastructure.

Use it on testnet. Earn points.

Points reward use and contribution: alerts you set, queries you run, adapters you add, rugs you report correctly. At mainnet, points unlock the real-time tiers. There is no token and nothing for sale.

Sep 16

Arc mainnet, day 0

Indexing from block 0. Feed, token pages and network view live.

Oct

Registry

Adapter registry public, first launchpads listed, token list endpoint.

Nov

Flows

USDC, EURC and CCTP dashboards. Read-only SQL access.

Dec

Agents

MCP server and hosted indexing for builders.

Questions

What is Needle?

A discovery layer for Arc. It indexes every ERC-20 on the chain, every launchpad that has an adapter, and every DEX pool, then shows the result as a feed, token pages, a launchpad leaderboard and a network dashboard.

Does Needle trade or launch tokens?

No. Needle is data. Token pages link out to the launchpad or DEX where the token trades. Needle does not operate a launchpad, custody assets or execute trades.

Can I define my own metrics and alerts?

That is the main way to use it. The screener takes conditions on any metric, including ones you write as arithmetic over the existing columns, backtests the rule against modelled history, then saves it as a feed tab, an alert, a SQL query, a WebSocket subscription or an MCP tool call. Needle never acts on a rule; it hands the match to you or your bot.

Is there a token?

No. Using Needle on testnet earns points, and points unlock the real-time tiers at mainnet. Nothing is for sale.

How is this different from a DEX tracker?

Trackers start at the pool, so they miss the hours a token spends on a curve and the tokens that never get a pool at all. Needle starts at the first transfer, screens on any metric you define, backtests your rule before you rely on it, and shows the evidence behind every trust signal. Its tables are open SQL.

Where does the data come from?

Directly from Arc nodes. Every ERC-20 transfer, every adapter-listed launchpad and every DEX pool is written to Postgres and read by Needle in under a second. Nothing is scraped from other trackers.