# Pons — Bitquery Data Store Every Pons launch, bonding-curve trade and graduation on Robinhood Chain, decoded from the chain and priced in USD. Dataset page: https://bitquery.io/datastore/datasets/pons Network: Robinhood Chain Category: Trades, Events Tables: 3 Columns: 124 Coverage: 2026-08-14 to 2026-09-23 Rows: about 27M Format: Apache Parquet, Snappy compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is 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. ## What people use it for - Launch cohort analysis across 585,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 ## Tables (3) ### 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. S3 prefix: datashare/robinhood/pons/trades File naming: _.parquet, 50 blocks per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/robinhood/pons/trades/68914550_68914599.parquet Sample updated: Sep 24, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Number | UInt64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Fee_SenderFee | String | Network fee paid by the sender, in wei as a decimal string | | Trade_Buy_Amount | String | Amount bought, decimal adjusted, as a decimal string | | Trade_Buy_AmountInUSD | Float64 | Amount bought in USD at block time | | Trade_Buy_Buyer | String | Address receiving the bought token | | Trade_Buy_Currency_Decimals | Int64 | Decimals of the bought currency | | Trade_Buy_Currency_Fungible | String | Whether the bought currency is fungible; the string true or false | | Trade_Buy_Currency_HasURI | String | Whether the bought currency carries a metadata URI; true or false | | Trade_Buy_Currency_Name | String | Name of the bought currency | | Trade_Buy_Currency_ProtocolName | String | Token standard of the bought currency, for example erc20 | | Trade_Buy_Currency_SmartContract | String | Contract of the bought token; 0x for native ETH | | Trade_Buy_Currency_Symbol | String | Symbol of the bought currency; reported by the contract, not unique | | Trade_Buy_Ids | Array | Token ids moved on the buy side; empty for fungible tokens | | Trade_Buy_OrderId | String | Order id on the buy side; empty on a curve trade | | Trade_Buy_Price | Float64 | Price of the bought currency in units of the sold currency | | Trade_Buy_PriceInUSD | Float64 | Price of the bought currency in USD | | Trade_Buy_Seller | String | Counterparty on the buy side | | Trade_Dex_DelegatedTo | String | Address the curve delegates to; 0x when it does not | | Trade_Dex_OwnerAddress | String | Curve owner address | | Trade_Dex_Pair_Decimals | Int64 | Decimals of the pair token | | Trade_Dex_Pair_Name | String | Pair name as reported by the contract | | Trade_Dex_Pair_SmartContract | String | Pair contract address | | Trade_Dex_Pair_Symbol | String | Pair symbol as reported by the contract; not unique | | Trade_Dex_ProtocolFamily | String | DEX protocol family; always Pons here | | Trade_Dex_ProtocolName | String | DEX protocol name and version; always pons_v2 here | | Trade_Dex_ProtocolVersion | String | Protocol version string | | Trade_Dex_SmartContract | String | Bonding-curve contract for this token | | Trade_Fees | String | Fees charged, as [Amount, AmountInUSD, [Currency], Payer, Recipient] | | Trade_Index | UInt64 | Trade index within the transaction | | Trade_PriceAsymmetry | Float64 | Relative difference between buy and sell side USD values | | Trade_Sell_Amount | String | Amount sold, decimal adjusted, as a decimal string | | Trade_Sell_AmountInUSD | Float64 | Amount sold in USD at block time | | Trade_Sell_Buyer | String | Counterparty on the sell side | | Trade_Sell_Currency_Decimals | Int64 | Decimals of the sold currency | | Trade_Sell_Currency_Fungible | String | Whether the sold currency is fungible; true or false | | Trade_Sell_Currency_HasURI | String | Whether the sold currency carries a metadata URI; true or false | | Trade_Sell_Currency_Name | String | Name of the sold currency | | Trade_Sell_Currency_ProtocolName | String | Token standard of the sold currency, for example erc20 | | Trade_Sell_Currency_SmartContract | String | Contract of the sold token; 0x for native ETH | | Trade_Sell_Currency_Symbol | String | Symbol of the sold currency; reported by the contract, not unique | | Trade_Sell_Ids | Array | Token ids moved on the sell side; empty for fungible tokens | | Trade_Sell_OrderId | String | Order id on the sell side; empty on a curve trade | | Trade_Sell_Price | Float64 | Price of the sold currency in units of the bought currency | | Trade_Sell_PriceInUSD | Float64 | Price of the sold currency in USD | | Trade_Sell_Seller | String | Address sending the sold token | | Trade_Sender | String | Address that submitted the trade | | Transaction_From | String | Address that sent the transaction | | Transaction_Hash | String | Hash of the transaction this row settled in; the join key to the other tables | | Transaction_Index | UInt64 | Position of the transaction within the block; with Log_Index it orders same-block activity exactly | | Transaction_To | String | Contract the transaction called | | TransactionStatus_Success | String | Whether the transaction succeeded; the string true or false | ### pons_token_creations — 26 columns One 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. S3 prefix: datashare/robinhood/pons/token_creations File naming: _.parquet, 50 blocks per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/robinhood/pons/token_creations/68914550_68914599.parquet Sample updated: Sep 24, 2026 | column | type | description | | --- | --- | --- | | ChainId | UInt64 | Robinhood Chain id; always 4663 | | Block_Date | Date | UTC date of the block | | Block_Time | DateTime | Block timestamp, UTC | | Block_Number | UInt64 | Block height the token was created in | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_Hash | String | Hash of the transaction this row settled in; the join key to the other tables | | Transaction_From | String | Address that sent the launch transaction | | Call_Index | UInt64 | Index of the creating call within the transaction | | Call_GasUsed | UInt64 | Gas consumed deploying the token contract | | Call_Success | String | Whether the deployment succeeded; the string true or false | | Token | String | Contract address of the token that was created; join on this, never on the symbol | | Token_Factory | String | Contract that deployed the token | | Deployer | String | Wallet that launched the token and paid for it | | Curve | String | Bonding curve contract assigned to the token | | PairToken | String | Quote token the curve is denominated in | | LaunchConfigId | String | Launch configuration id from the TokenLaunched event | | GraduationThreshold | String | Quote amount the curve must reach to graduate, as a decimal string; the denominator for progress to graduation | | Token_Name | String | Token name as reported by the contract; copycat launches reuse names freely | | Token_Symbol | String | Token symbol as reported by the contract; repeats across tokens, so join on Token | | Token_Decimals | Int64 | Decimals of the token | | Token_ProtocolName | String | Token standard, for example erc20 | | Token_Fungible | String | Whether the token is fungible; the string true or false | | Token_HasURI | String | Whether the token carries a metadata URI; true or false | | InitialSupply | String | First mint from the zero address, decimal adjusted as a string | | InitialSupply_Receiver | String | Address the initial supply was minted to | | InitCode_Bytes | UInt64 | Size of the deployment bytecode | ### pons_launches_graduations — 45 columns One row per Pons lifecycle event: launch, curve assignment, completion, graduation, migration. Same schema as the chain-wide events table, pre-filtered to the Pons factory. S3 prefix: datashare/robinhood/pons/launches_graduations File naming: _.parquet, 50 blocks per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/robinhood/pons/launches_graduations/68914550_68914599.parquet Sample updated: Sep 24, 2026 | column | type | description | | --- | --- | --- | | Arguments | String | Decoded event arguments as [Index, Name, Path, Type, Value]; TokenLaunched carries graduationThreshold here, PoolGraduated carries tokenAmount and pairTokenAmount | | Block_Date | Date | UTC date of the block | | Block_Number | UInt64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Call_CallPath | Array | Indices of the parent calls; identifies buys bundled inside one transaction | | Call_CallerIndex | Int64 | Index of the calling frame; -1 at the top level | | Call_Create | String | Whether the call created a contract; true or false | | Call_Error | String | Revert reason for the call; empty when it succeeded | | Call_From | String | Address that made the call | | Call_Gas | UInt64 | Gas supplied to the call | | Call_GasUsed | UInt64 | Gas consumed by the call | | Call_Index | UInt64 | Index of the call within the transaction | | Call_InternalCalls | UInt64 | Number of calls nested inside this one | | Call_Reverted | String | Whether this call reverted while the transaction still succeeded; true or false | | Call_SelfDestruct | String | Whether the call self-destructed a contract; true or false | | Call_Signature_Abi | String | ABI fragment for the function, as JSON | | Call_Signature_Name | String | Decoded function name | | Call_Signature_Signature | String | Full function signature | | Call_Signature_SignatureHash | String | Four-byte selector, hex without a 0x prefix | | Call_Signature_SignatureType | String | How the signature was resolved | | Call_To | String | Address the call went to | | Call_Value | String | Native value sent with the call, in wei as a decimal string | | ChainId | UInt64 | Robinhood Chain id; always 4663 | | Fee_SenderFee | String | Network fee paid by the sender, in wei as a decimal string | | Log_EnterIndex | UInt64 | Call index the log was entered at | | Log_ExitIndex | UInt64 | Call index the log was exited at | | Log_Index | UInt64 | Log index within the transaction | | Log_LogAfterCallIndex | UInt64 | Index of the call this log followed | | Log_Pc | UInt64 | Program counter at which the log was emitted | | Log_Signature_Abi | String | ABI fragment for the event, as JSON | | Log_Signature_Name | String | Decoded event name, for example TokenLaunched or PoolGraduated | | Log_Signature_Signature | String | Full event signature | | Log_Signature_SignatureHash | String | Event topic0, hex without a 0x prefix | | Log_Signature_SignatureType | String | How the signature was resolved | | Log_SmartContract | String | Contract that emitted the log; the token's curve for curve events, the factory for lifecycle events | | LogHeader_Address | String | Address on the raw log header | | LogHeader_Data | String | Raw log data, hex without a 0x prefix | | LogHeader_Index | UInt64 | Log index as reported by the node | | LogHeader_Removed | String | Whether the node marked the log removed; true or false | | Topics_Hash | Array | Log topics, hex without a 0x prefix | | Transaction_From | String | Address that sent the transaction | | Transaction_Hash | String | Hash of the transaction this row settled in; the join key to the other tables | | Transaction_Index | UInt64 | Position of the transaction within the block; with Log_Index it orders same-block activity exactly | | Transaction_To | String | Contract the transaction called | | TransactionStatus_Success | String | Whether the transaction succeeded; the string true or false | ## Price - Latest month (Aug 23, 2026 → Sep 23, 2026): $200 one-time, USD - Full history (Aug 14, 2026 → Sep 23, 2026): $500 one-time, USD Every window includes all 3 tables and 124 columns. Only the time range changes. ## Questions buyers ask Q: What is in the Pons dataset? A: 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, TokenCurveSetV2, CurveCompleted, PoolGraduated, GraduationTokensPermanentlyLocked, LaunchSwept and Migrated. 124 columns between them. Q: How big is it? A: About 27.4 million trades across roughly 481,000 tokens, and about 585,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. Q: How far back does it go? A: To the first Pons trade on 14 August 2026, the day the launchpad opened. Pons is younger than the chain it runs on, so complete history here is a matter of weeks rather than years. Q: Which tokens graduated, and how long did it take? A: Join pons_launches_graduations to itself on the token address in Arguments, taking the TokenLaunched timestamp and the PoolGraduated timestamp. About 9,204 tokens in 585,000 have both, a rate of 1.57%, so most launches never reach the threshold. Q: What do I get about the token itself? A: 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. Q: Can I tell which launches were sniped? A: 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. Q: How are these produced, and how were they checked? A: 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. Q: What should I watch out for? A: 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. Q: What is not included? A: 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. Q: How do I load it? A: 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. Q: How current is it, and how is it delivered? A: Refreshed daily with T+1 latency, so a purchase made today includes everything to yesterday. Delivered as flat Parquet under a stable S3 layout, one prefix per table, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed once the files are prepared. ## What this file is, and is not This is a description of one dataset sold by Bitquery, written for assistants and for people. It lists every column, but holds no data rows — the sample files linked under each table are real Parquet and are free to download. Figures here come from the product record and are exact unless marked otherwise; the delivery manifest is authoritative for a purchased file. If a question needs a row that is not in a sample, say so rather than guessing at it.