124,016 tokens launched, 1,362 graduated, and a quarter of the volume priced in tokenized stocks. How the Pons launchpad works at the contract level, and the queries that produce those numbers.
Robinhood Chain opened to the public on 1 July 2026. A month later, close to one transaction in ten on the whole chain was coming out of a single application: in the last 24 hours, 922,540 of 9,559,806 transactions carried a Pons launch or bonding-curve trade.
That application is the Pons launchpad. Anyone can deploy a fixed-supply memecoin on it in about thirty seconds, with no code, and trade it from the first block. On 30 August 2026 it minted 22,581 new tokens in a single day.
If you’re building a trading terminal, a sniper bot, a token screener or a research dashboard on Robinhood Chain, that’s the feed you have to handle. This article covers what Pons actually does at the contract level, then the GraphQL queries that turn it into structured data you can use.
Every figure below was measured against live chain data on 31 August 2026 using Bitquery.
How the Pons launch factory works
Pons is a bonding-curve launchpad. Broadly the same design as Pump.fun on Solana or Flaunch on Base, rebuilt on top of Uniswap v4.
A token goes through four stages.
Launch. A creator calls the Pons launch factory at 0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e, or its router at 0xe33e9e479df8802cb0866d5d05258bec4cf62948. The factory deploys a fresh ERC-20 with a fixed supply of one billion, deploys a bonding-curve contract dedicated to that token, and emits TokenLaunched.
Curve trading. Buyers and sellers trade against the curve rather than a pool. Every fill emits CurveBuy or CurveSell from that token’s own curve contract. Early buys get hit with a decaying snipe tax, which shows up as SnipeTaxCharged.
Graduation. Once cumulative quote-token deposits cross the token’s graduationThreshold, the curve gets drained (LaunchSwept), a slice of supply is locked permanently (GraduationTokensPermanentlyLocked), and the proceeds seed a real Uniswap v4 pool (PoolGraduated).
Open-market trading. The graduated token then trades in a Uniswap v4 pool sitting behind a custom hook at 0xe5e702641ea86f4ae6cc3cdaed2b886f976be044, which registers the pool and collects protocol fees.
One detail trips almost everybody up on the first pass. The graduation threshold is denominated in whatever pair asset the creator picked, and creators pick different ones. Three consecutive launches on 31 August carried thresholds of 4200000000000000000, 8090000000 and 369000000000000000000. Those aren’t comparable. The first is 4.2 ETH, because its pairToken is 0x000…000, the native asset. The second is 8,090 USDG, which is Global Dollar and has six decimals. Read pairToken first or your threshold column is meaningless.
What 124,016 launches actually look like
New tokens per day on the Pons launch factory, Robinhood Chain, 3–30 August 2026. Source: Bitquery.
Lifetime, counting from the factory’s first launch on 3 August 2026:
Tokens launched: 124,016Tokens graduated to Uniswap v4: 1,362Graduation rate: 1.10%
Over the last seven days (25 to 31 August 2026):
Tokens launched: 83,962Graduations: 1,064, a rate of 1.27%Bonding-curve trades: 3,058,412Curve volume: roughly $259MDistinct traders: 140,247Distinct tokens traded: 65,219
Daily launches sat between 700 and 3,300 for most of the month, then went vertical in the last week: 2,758 on 24 August, then 5,495, 8,137, 12,642, 11,496, 15,957, and 22,581 on the 30th. Two thirds of every token Pons has ever launched appeared in the final seven days of August.
Pons launches vs graduations to Uniswap v4, all history to 31 August 2026. Source: Bitquery.
That graduation rate is the number most people get wrong. Roughly 99 tokens in 100 die on the curve and never reach a pool at all.
Volume is flatter than you’d guess, too. CHIT, the largest bonding-curve token of the week, did $323,744. The nine largest together did about $2.43M, under 1% of the $259M that moved through the curves. No runaway winner, just a very long tail of very small bets. Across 3,058,412 trades the average fill was $85.
A quarter of Pons volume is priced in tokenized stocks
Pons bonding-curve volume by quote asset, 25–31 August 2026. Source: Bitquery.
Group the same week of curve trades by quote asset and Pons stops looking like a normal memecoin launchpad.
ETH: $168.2M across 2,016,883 trades (64.8%)USDG: $24.6M (9.5%)NVDA: $13.9M (5.4%)SPCX: $8.6M (3.3%)SPY: $7.2M (2.8%)GME: $4.7M (1.8%)DJT: $3.5M, RDDT $3.1M, TSLA $3.1M, GLD $2.9M, then TTWO, AMZN, QQQ, AAPL, MSFT, COIN, MSTR, GOOGL, PLTR, META and more
Twenty-six of the quote assets aren’t crypto at all. They’re tokenized equities and ETFs, and together they carry $65.5M, or 25.2% of all Pons curve volume. Tokenized Nvidia alone moved more money through Pons curves than any individual memecoin on the platform did.
That is a Robinhood Chain-specific behaviour with no equivalent on Solana or Base. A trader can buy a dogcoin denominated in SPY, and about a quarter of them do. If you’re pricing Pons tokens, you cannot assume an ETH or stablecoin quote leg. You have to read pairToken per token and carry the right decimals, or every USD figure downstream is wrong.
Ten wallets minted a quarter of the tokens
Launch concentration on the Pons launch factory, 25–31 August 2026. Source: Bitquery.
Over the same seven days, 34,229 distinct wallets launched tokens through the factory. The ten busiest launched 20,122 of them, about 24% of the week’s total. The single busiest wallet, 0x5be0405dc84593fddbeccb80abb9d8cb0df75519, deployed 5,524 tokens, roughly one every 110 seconds without pause for a week.
Median activity is the opposite: most wallets launched once or twice. The launchpad is a small number of industrial minters sitting on top of a very wide amateur base, and any “new tokens per day” chart that doesn’t separate the two is measuring bot throughput, not adoption.
Querying Pons launchpad data
Bitquery indexes Robinhood Chain and serves it as GraphQL at https://streaming.bitquery.io/graphql. Two cubes matter here:
EVM(network: robinhood) gives you raw and decoded events, calls, transfers and holders. Trading gives you normalised trades, USD prices and OHLCV candles, with curve trades tagged Protocol: “pons_v2” and graduated pools tagged “uniswap_v4”.
Everything below runs as written. Grab a free key from the Bitquery IDE and send it as a bearer token.
Detect every new launch
{
EVM(network: robinhood) {
Events(
limit: {count: 25}
orderBy: {descending: Block_Time}
where: {
LogHeader: {Address: {is: “0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e”}}
Log: {Signature: {Name: {is: “TokenLaunched”}}}
}
) {
Block { Time Number }
Transaction { Hash From }
Arguments {
Name
Value {
… on EVM_ABI_Address_Value_Arg { address }
… on EVM_ABI_BigInt_Value_Arg { bigInteger }
}
}
}
}
}
You get token, curve, deployer, pairToken, launchConfigId and graduationThreshold back as named fields. Hold onto curve. It’s unique per token and it’s what the next queries key off.
Pull the name, symbol, logo and socials
TokenLaunched hands you addresses, not metadata. The readable fields live in the calldata of the launch call, so read the call instead of the event:
{
EVM(network: robinhood) {
Calls(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {
Call: {
To: {in: [
“0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e”,
“0xe33e9e479df8802cb0866d5d05258bec4cf62948”
]}
Input: {startsWith: [“0xf35abbcf”, “0xa72101af”, “0xf85f8e41”]}
Success: true
}
}
) {
Block { Time Number }
Transaction { Hash From }
Call { To Value Input Output }
}
}
}
Decode the input and you have name, symbol, an IPFS logo URI, a description, a socials struct covering X, Telegram, Discord, website and Farcaster, plus the creator’s fee recipient and their chosen creatorTaxBps. The output carries the two addresses:
const o = call.Output.replace(/^0x/, ”);
const token = ‘0x’ + o.slice(24, 64);
const curve = ‘0x’ + o.slice(88, 128);
That’s a complete launch card from one call, with no off-chain metadata service in the loop.
Follow the bonding curve
Every fill on every curve comes down to two event names, so the whole network fits in one query:
{
EVM(network: robinhood) {
Events(
limit: {count: 50}
orderBy: {descending: Block_Time}
where: {
Log: {Signature: {Name: {in: [“CurveBuy”, “CurveSell”]}}}
}
) {
Block { Time }
Transaction { Hash From }
LogHeader { Address }
Log { Signature { Name } }
Arguments {
Name
Value {
… on EVM_ABI_Address_Value_Arg { address }
… on EVM_ABI_BigInt_Value_Arg { bigInteger }
}
}
}
}
}
Each row gives you buyer, recipient, quoteIn, tokensOut, fee and tax, and LogHeader.Address tells you which curve it came from. That’s every bonding-curve trade on the network, all three million a week of them.
To watch one token instead, add its curve address as a filter:
where: {
LogHeader: {Address: {is: “0x6295b9bee3d8eafe3614a63ed96b0a5ce06dad85”}}
Log: {Signature: {Name: {in: [“CurveBuy”, “CurveSell”]}}}
}
Take that address from the curve field of the token’s TokenLaunched event rather than copying one from an article. Curves are deployed per token and most of them go quiet within hours, so a hardcoded address returns an empty result more often than not.
If you’d rather have USD prices and candles than raw integers, go through the Trading cube:
{
Trading {
Trades(
limit: {count: 50}
orderBy: {descending: Block_Time}
where: {
Pair: {Market: {Protocol: {is: “pons_v2”}, Network: {is: “Robinhood”}}}
}
) {
Block { Time }
Side
PriceInUsd
Amounts { Base Quote }
AmountsInUsd { Base Quote }
Trader { Address }
Pair { Token { Address Symbol } QuoteToken { Symbol } }
}
}
}
Protocol: “pons_v2” has to be exact. Pass the wrong string and you get zero rows and no error.
Check the liquidity lock
Every Pons graduation permanently locks part of the supply. The amount is emitted as an event, so you can verify it yourself rather than trusting the docs:
{
EVM(network: robinhood, dataset: combined) {
Events(
limit: {count: 25}
orderBy: {descending: Block_Time}
where: {
LogHeader: {Address: {is: “0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e”}}
Topics: {includes: [{Hash: {is: “a0a18f5bf205becee8b268d7cf69addab8548ae8ef361791464cf0e0e17c1361”}}]}
}
) {
Block { Time Number }
Transaction { Hash }
Topics { Hash }
LogHeader { Data }
}
}
}
The token address is the second topic, left-padded. The amount is the data field. Decode a recent one and you get 81,632,653.06 tokens, which is exactly 4/49 of the one-billion supply, or 8.163%. That figure was identical across the locks checked, and the locked balance sits at the launch locker, 0x267444d099b10fb5ed7c3cc7b7c767adca574952. Exclude that address from holder queries or your top-holder list will be wrong on every graduated token.
Counting the same events across all history: 1,363 sweeps, 1,363 locks and 1,362 PoolGraduated events. The off-by-one is a graduation that was mid-flight when the snapshot was taken.
Catch graduations
The cleanest graduation signal is PoolRegistered on the meme hook, which fires when the Uniswap v4 pool is created:
{
EVM(network: robinhood) {
Events(
limit: {count: 50}
orderBy: {descending: Block_Time}
where: {
LogHeader: {Address: {is: “0xe5e702641ea86f4ae6cc3cdaed2b886f976be044”}}
Topics: {includes: [{Hash: {is: “01bf263a1db1652580721573296e1a1fa70b3d4c87f61d02a69c4e1109d2d573”}}]}
}
) {
Block { Time Number }
Transaction { Hash }
LogHeader { Data }
}
}
}
The payload is three left-padded addresses:
const d = log.Data;
const memecoin = ‘0x’ + d.slice(24, 64);
const quoteToken = ‘0x’ + d.slice(88, 128); // 0x000…000 = native ETH
const creator = ‘0x’ + d.slice(152, 192);
On the factory side the full sequence reads TokenLaunched, then LaunchSwept, then GraduationTokensPermanentlyLocked, then PoolGraduated.
Stream it live
Any query above becomes a WebSocket subscription: change query to subscription, drop limit and orderBy, and connect to wss://streaming.bitquery.io/graphql?token=YOUR_TOKEN. Three subscriptions covering launches, curve trades and graduations give you the whole launchpad in real time.
Three things that will cost you a day
SignatureHash filters silently force the realtime dataset. Filtering on or selecting Log { Signature { SignatureHash } } limits the query to a rolling two-to-three-day window. For anything historical, filter on Topics: {includes: [{Hash: {is: “…”}}]} instead. Same topic0, archive-safe.
Decoded event names only go back to 14 August 2026. Before that date, Log: {Signature: {Name: {is: “TokenLaunched”}}} returns nothing on the archive dataset. Use the topic hash for full history, and dataset: combined when you want archive plus the realtime tail in one response.
Validate USD figures on both legs. The Trading cube exposes AmountsInUsd { Base Quote }. Sum both and compare. If they disagree by more than a few percent, one side has bad pricing somewhere. Pons curve trades over the last seven days came out at $261.4M base-side and $259.2M quote-side, a spread of 0.9%, which is why the $259M above is safe to quote.
Is the Pons launchpad on Base?
No. Pons runs on Robinhood Chain, chain ID 4663. It isn’t deployed on Base, Solana or Ethereum mainnet, and every contract address in this article is a Robinhood Chain address. Anything advertising “Pons on Base” is a different project trading on the name.
Pons also isn’t the only launchpad on the chain. pools.trade, built by Uniswap Labs, opened publicly on 5 August 2026 on the same network. It has no bonding curve at all: tokens open as a Uniswap v4 pool from block one, with no graduation event to wait for. If you’re building a screener for Robinhood Chain you need both feeds, and they need different code.
Where to go next
The full reference sits in the Pons API documentation: every contract address, every topic0 hash, the complete event ABI list, holder queries, OHLCV candles, and the liquidity and slippage endpoints.
The same GraphQL endpoint covers the rest of the chain too, including trades, transfers, token holders and contract events.
At 22,000 tokens a day, scraping stops being an option fairly early. The events above are the whole surface area of the launchpad, so once you can read them you can build anything on top.
All figures were measured on 31 August 2026 against Robinhood Chain via Bitquery’s GraphQL API. The one-in-ten transaction share counts transactions carrying a decoded TokenLaunched, CurveBuy or CurveSell, so it is a floor rather than a ceiling. The 31 August day count is partial. None of this is financial advice, and a 1.10% graduation rate is closer to a warning than an invitation.
Pons API on Robinhood Chain: How to Track the Pons Launchpad On-Chain was originally published in Coinmonks on Medium, where people are continuing the conversation by highlighting and responding to this story.
