Pons is the bonding-curve launchpad on Robinhood Chain, and the third busiest venue on the chain behind Uniswap v4 and v3. We decode the curve contracts and the factory directly from the chain, then filter three tables down to Pons alone, so you are not scanning chain-wide data to find it. A row in pons_token_creations is one token with its metadata and supply; a row in pons_trades is one buy or sell against a token's curve, priced in USD at block time; a row in pons_launches_graduations is one step in a token's life.
The query most buyers run first is the launch-to-graduation funnel: group TokenLaunched by deployer, join to PoolGraduated on the token address, and measure how long the gap was. TokenLaunched carries graduationThreshold, the quote amount a curve must reach, so progress is an exact figure rather than an inference. Watch the decimal strings, casting large amounts to float loses precision, and join on contract addresses rather than symbols, which repeat.
Use cases
Launch cohort analysis across 602,000 launches, by deployer or by token
Sniper detection from buys landing in a token's own launch block
Bundler detection using Call_CallPath inside a single transaction
Copycat and name-reuse detection across launches
3 tables
124 columns · free sample for each table
pons_trades
53 columns
One row per Pons bonding-curve buy or sell. Same schema as the chain-wide dex_trades table, pre-filtered to pons_v2.
datashare/robinhood/pons/trades<start_block>_<end_block>.parquet50 blocks per file
One row per Pons lifecycle event: launch, curve completion, graduation, token lock and sweep. Same schema as the chain-wide events table, pre-filtered to the Pons factory and the curves it launched.
datashare/robinhood/pons/launches_graduations<start_block>_<end_block>.parquet50 blocks per file
pons_token_creations26 columnsOne row per token created by a Pons launch, joining the creation call to the launch event, the token's ERC-20 metadata and its initial mint.
ColumnTypeDescription
Other8
ChainIdUInt64Robinhood Chain id; always 4663
TokenStringContract address of the token that was created; join on this, never on the symbol
DeployerStringWallet that launched the token and paid for it
CurveStringBonding curve contract assigned to the token
PairTokenStringQuote token the curve is denominated in
LaunchConfigIdStringLaunch configuration id from the TokenLaunched event
GraduationThresholdStringQuote amount the curve must reach to graduate, as a decimal string; the denominator for progress to graduation
InitialSupplyStringFirst mint from the zero address, decimal adjusted as a string
Block3
Block_DateDateUTC date of the block
Block_TimeDateTimeBlock timestamp, UTC
Block_NumberUInt64Block height the token was created in
Transaction3
Transaction_IndexUInt64Position of the transaction within the block
Transaction_HashStringHash of the transaction this row settled in; the join key to the other tables
Transaction_FromStringAddress that sent the launch transaction
Call3
Call_IndexUInt64Index of the creating call within the transaction
Call_GasUsedUInt64Gas consumed deploying the token contract
Call_SuccessStringWhether the deployment succeeded; the string true or false
Token7
Token_FactoryStringContract that deployed the token
Token_NameStringToken name as reported by the contract; copycat launches reuse names freely
Token_SymbolStringToken symbol as reported by the contract; repeats across tokens, so join on Token
Token_DecimalsInt64Decimals of the token
Token_ProtocolNameStringToken standard, for example erc20
Token_FungibleStringWhether the token is fungible; the string true or false
Token_HasURIStringWhether the token carries a metadata URI; true or false
InitialSupply1
InitialSupply_ReceiverStringAddress the initial supply was minted to
InitCode1
InitCode_BytesUInt64Size of the deployment bytecode
pons_launches_graduations45 columnsOne row per Pons lifecycle event: launch, curve completion, graduation, token lock and sweep. Same schema as the chain-wide events table, pre-filtered to the Pons factory and the curves it launched.
ColumnTypeDescription
Other2
ArgumentsStringDecoded event arguments as [Index, Name, Path, Type, Value]; TokenLaunched carries graduationThreshold here, PoolGraduated carries tokenAmount and pairTokenAmount
ChainIdUInt64Robinhood Chain id; always 4663
Block3
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Call13
Call_CallPathArrayIndices of the parent calls; identifies buys bundled inside one transaction
Call_CallerIndexInt64Index of the calling frame; -1 at the top level
Call_CreateStringWhether the call created a contract; true or false
Call_ErrorStringRevert reason for the call; empty when it succeeded
Call_FromStringAddress that made the call
Call_GasUInt64Gas supplied to the call
Call_GasUsedUInt64Gas consumed by the call
Call_IndexUInt64Index of the call within the transaction
Call_InternalCallsUInt64Number of calls nested inside this one
Call_RevertedStringWhether this call reverted while the transaction still succeeded; true or false
Call_SelfDestructStringWhether the call self-destructed a contract; true or false
Call_ToStringAddress the call went to
Call_ValueStringNative value sent with the call, in wei as a decimal string
Call_Signature5
Call_Signature_AbiStringABI fragment for the function, as JSON
Call_Signature_NameStringDecoded function name
Call_Signature_SignatureStringFull function signature
Call_Signature_SignatureHashStringFour-byte selector, hex without a 0x prefix
Call_Signature_SignatureTypeStringHow the signature was resolved
Fee1
Fee_SenderFeeStringNetwork fee paid by the sender, in wei as a decimal string
Log11
Log_EnterIndexUInt64Call index the log was entered at
Log_ExitIndexUInt64Call index the log was exited at
Log_IndexUInt64Log index within the transaction
Log_LogAfterCallIndexUInt64Index of the call this log followed
Log_PcUInt64Program counter at which the log was emitted
Log_Signature_AbiStringABI fragment for the event, as JSON
Log_Signature_NameStringDecoded event name, for example TokenLaunched or PoolGraduated
Log_Signature_SignatureStringFull event signature
Log_Signature_SignatureHashStringEvent topic0, hex without a 0x prefix
Log_Signature_SignatureTypeStringHow the signature was resolved
Log_SmartContractStringContract that emitted the log; the token's curve for curve events, the factory for lifecycle events
LogHeader4
LogHeader_AddressStringAddress on the raw log header
LogHeader_DataStringRaw log data, hex without a 0x prefix
LogHeader_IndexUInt64Log index as reported by the node
LogHeader_RemovedStringWhether the node marked the log removed; true or false
Topics1
Topics_HashArrayLog topics, hex without a 0x prefix
Transaction4
Transaction_FromStringAddress that sent the transaction
Transaction_HashStringHash of the transaction this row settled in; the join key to the other tables
Transaction_IndexUInt64Position of the transaction within the block; with Log_Index it orders same-block activity exactly
Transaction_ToStringContract the transaction called
TransactionStatus1
TransactionStatus_SuccessStringWhether the transaction succeeded; the string true or false
Send this dataset’s full schema to an assistant and ask it anything. It reads the plain-text brief ↗ first, so the answer comes from the real column list rather than a guess.
Opens a new chat with the question filled in. Nothing about you is sent to Bitquery, and the assistant sees only the public brief.
Delivery
Parquet files in a Requester Pays S3 bucket or a Cloudflare R2 bucket, chosen at checkout. On S3 you download with your own AWS account and AWS bills the transfer; on R2 you download with a read-only API key and pay no egress. Layout:
# pons_trades: 50 blocks per file
datashare/robinhood/pons/trades<start_block>_<end_block>.parquet# pons_token_creations: 50 blocks per file
datashare/robinhood/pons/token_creations<start_block>_<end_block>.parquet# pons_launches_graduations: 50 blocks per file
datashare/robinhood/pons/launches_graduations<start_block>_<end_block>.parquet
Download a free sampleNo email needed.
Pay nowName, work email and licence check.
Pay the invoiceBy card or bank transfer.
Download from S3 or R2The team prepares the export and emails the bucket path, plus a read-only API key for R2 orders.
Time windows
Every window includes all 3 tables and 124 columns. Only the time range changes.
Three Parquet tables. pons_token_creations is one row per token launched, with its name, symbol, decimals, initial supply, deployer and graduation threshold; pons_trades is one row per bonding-curve buy or sell; pons_launches_graduations is one row per lifecycle event, TokenLaunched, CurveCompleted, PoolGraduated, GraduationTokensPermanentlyLocked and LaunchSwept. 124 columns between them.
How big is it?
About 27.9 million trades across roughly 483,000 tokens, and about 602,000 launch events, as of 24 September 2026. Figures are approximate until the delivery manifest is generated; that manifest lists every file with its row count and sha256.
How far back does it go?
To 3 August 2026, the day the Pons factory went live. Launches, graduations and token creations run from that date, including the 16,080 launches recorded before the public ABI existed. Bonding-curve trades are decoded from 14 August in the standard index; when an order reaches further back we decode the curve logs for those days as it is filled, so you receive the whole window you bought. Pons is younger than the chain it runs on, so complete history here is a matter of weeks rather than years.
Which tokens graduated, and how long did it take?
Join pons_launches_graduations to itself on the token address in Arguments, taking the TokenLaunched timestamp and the PoolGraduated timestamp. About 9,400 tokens in 602,000 have both, a rate of 1.56%, so most launches never reach the threshold.
What do I get about the token itself?
pons_token_creations carries the contract address, name, symbol, decimals, initial supply, the wallet that deployed it and the graduation threshold set at launch. Names and symbols repeat heavily on a launchpad, in one 50-block sample, two of eight tokens were both called Super Inu with the symbol SI, so join on the Token address rather than the symbol.
Can I tell which launches were sniped?
Yes. Every trade carries Block_Number, Transaction_Index, Log_Index and Call_CallPath, so buys landing in a token's own launch block, or bundled inside a single transaction, are identifiable without an RPC.
How are these produced, and how were they checked?
All three tables are decoded from Robinhood Chain and filtered: trades to Trade_Dex_ProtocolName = pons_v2, token creations to the contract-creating call for each launched token, and lifecycle events to the Pons factory 0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e. The schemas were diffed field by field against the chain-wide dex_trades and events samples, and every sample file was read back with pyarrow before publishing.
What should I watch out for?
Amounts are decimal strings, so casting to float loses precision on large uint256 values. Token symbols come from the contract and repeat across tokens, so join on the contract address. Failed and reverted transactions are kept, which is deliberate but means a naive count of launches is higher than the count of successful ones.
What is not included?
No OHLCV and no per-second candles. No pool reserve tracking after a token graduates onto Uniswap, since the chain-wide pool-event table is not populated for this chain. CurveCompleted is emitted by each token's curve rather than the factory, so it appears under the curve's address.
How do I load it?
One line in DuckDB: SELECT * FROM read_parquet('pons_trades/*.parquet') LIMIT 10. Pandas works too: pandas.read_parquet(path). All three sample files open without credentials.
How current is it, and how is it delivered?
Refreshed daily with T+1 latency, so a purchase made today includes everything to yesterday. Delivered as flat Parquet under a stable layout, one prefix per table, with a JSON manifest listing every file and its sha256. We prepare the files within 7 business days of purchase and email you the location. You choose at checkout where to collect them: a Requester Pays S3 bucket, downloaded with your own AWS account, or a Cloudflare R2 bucket with a read-only API key and no egress fees. Files stay available for 7 days from delivery.