diff --git a/docs/blockchain/robinhood/bags-fm-api.md b/docs/blockchain/robinhood/bags-fm-api.md index 76533e2f..019b2d64 100644 --- a/docs/blockchain/robinhood/bags-fm-api.md +++ b/docs/blockchain/robinhood/bags-fm-api.md @@ -35,6 +35,8 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat - [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) - [Robinhood Meme Coin Launches API](/docs/blockchain/robinhood/robinhood-meme-coin-launches) - [Flap.sh API on Robinhood](/docs/blockchain/robinhood/flap-sh-api) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) — bonding-curve launchpad, graduations, Uniswap v4 pools +- [Pools.trade API on Robinhood](/docs/blockchain/robinhood/pools-trade-api) - [Robinhood Transfers](/docs/blockchain/robinhood/robinhood-transfers) - [WebSocket subscriptions](/docs/subscriptions/websockets/) ::: diff --git a/docs/blockchain/robinhood/flap-sh-api.md b/docs/blockchain/robinhood/flap-sh-api.md index f5cba5c9..ba97a155 100644 --- a/docs/blockchain/robinhood/flap-sh-api.md +++ b/docs/blockchain/robinhood/flap-sh-api.md @@ -38,20 +38,34 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat :::tip Related docs - [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) - [Robinhood Meme Coin Launches API](/docs/blockchain/robinhood/robinhood-meme-coin-launches) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) — bonding-curve launchpad, graduations, Uniswap v4 pools +- [Pools.trade API on Robinhood](/docs/blockchain/robinhood/pools-trade-api) - [Robinhood Transfers](/docs/blockchain/robinhood/robinhood-transfers) - [WebSocket subscriptions](/docs/subscriptions/websockets/) ::: --- -## Flap.sh contract +## Flap.sh contracts + +Flap.sh is **not a single contract**. A router takes the user's transaction, a factory mints the token, and a separate bonding-curve engine handles every buy and sell. Each role emits a different set of events from a different address, and more than one address is live in each role. + +| Role | Address | Emits | +| --- | --- | --- | +| **Launch router** (entry point) | `0x26605f322f7ff986f381bb9a6e3f5dab0beaeb09` | Nothing but `Upgraded` — it is an upgradeable proxy. It appears as **`Transaction.To`**, not as a log address. | +| **Token factory** | `0x78eb178d94739b8adf199543924e47e9547c4924`
`0x549574ddf0d72928f2041c17daab2097dd46d815` | `TokenCreated`, `TokenCurveSetV2`, `FlapTokenTaxSet`, `TokenQuoteSet`, `TokenVersionSet`, `TokenDexPreferenceSet`, `TokenDexSupplyThreshSet`, `TokenMigratorSet` | +| **Vanity token factory** | `0xa2fb48fefb15f777ec6ac3857164550ee93c1f25`
`0x52e3eb4f18dfb8215e17d27dee5718075f6c2639` | `VanityTokenCreated`, plus the same `TokenCreated` / `TokenCurveSetV2` pair | +| **Bonding-curve engine** | `0x87a697bf7fbe28dc1eccc4d9b4bd1cfa76885f93`
`0x2a50c45b5cbb9e5c735f094c6386c39f8ffbc655` | `TokenBought`, `TokenSold`, `TaxV2OnBondingCurvePaid`, `FlapTokenProgressChanged`, `FlapTokenCirculatingSupplyChanged` | | Field | Value | | --- | --- | -| **Flap.sh contract** | `0x26605f322f7ff986f381bb9a6e3f5dab0beaeb09` | | **Launch mint `Amount`** | `1000000000` (1 billion, decimal-normalized) | -The contract address is used as the `Log`/`LogHeader` address for events, as `Transaction.To` for mint transfers, and as the `Pair.Market.Program` for trades. +:::caution Do not filter Flap.sh events by the router address +`0x26605f32…` is the address users transact **to**, so it is correct for `Transaction.To` filters on mint transfers. It is **not** the `Log`/`LogHeader` address of any Flap.sh event — filtering logs by it returns nothing. Launches also arrive through several vanity routers ending in `…6666`, so `Transaction.To` alone will not capture every launch either. + +Match Flap.sh events by **event signature name** (as every query on this page does), and scope to a token with an `Arguments` filter. Pin to the factory and curve addresses above only when you specifically need to exclude another protocol that reuses a generic event name. +::: --- @@ -299,6 +313,10 @@ The bonding-curve engine emits its own decoded trade events on the Flap.sh contr The most important lifecycle signal: a token completed its bonding curve and was **launched to a DEX**. The event returns the new `pool` address (use it with the [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) to follow post-graduation trading), the migrated token `amount`, and the `eth` seeded into the pool. +:::caution `LaunchedToDEX` is not exclusive to Flap.sh +Other Robinhood Chain launchpads emit an event with this same name. The query below returns graduations across all of them. To keep the feed Flap.sh-only, add a `LogHeader.Address` filter for the curve engines listed in [Flap.sh contracts](#flapsh-contracts), or check the graduated `token` against a Flap.sh `TokenCreated` / `TokenCurveSetV2` pair before acting on it. +::: + ```graphql { EVM(network: robinhood) { @@ -521,7 +539,13 @@ Use the `FlapTokenProgressChanged` event. `newProgress` is scaled by `1e18`, so ### Why do the event queries filter by `Log.Signature.Name` instead of a contract address? -Flap.sh emits the same event from several contracts (the bonding-curve engine, factories, and router). Filtering by the signature name captures the event across all of them. Add an `Arguments.includes` filter on the `token` argument to scope to one token. +Flap.sh emits its events from several contracts — separate factories, vanity factories, and bonding-curve engines, each with more than one live address (see [Flap.sh contracts](#flapsh-contracts)). Filtering by the signature name captures the event across all of them. Add an `Arguments.includes` filter on the `token` argument to scope to one token. + +### Can a signature-name filter pick up other protocols? + +Yes, for generic names. `TokenCreated` in particular is emitted by several unrelated launchpads on Robinhood Chain, and `LaunchedToDEX` is emitted by protocols other than Flap.sh. Names carrying the `Flap` prefix — `FlapTokenProgressChanged`, `FlapTokenCirculatingSupplyChanged`, `FlapTokenTaxSet` — are unambiguous; the generic ones are not. + +If a feed must be Flap.sh-only, add a `LogHeader.Address` filter pinned to the factory and curve addresses in [Flap.sh contracts](#flapsh-contracts), or cross-check the token against a `TokenCurveSetV2` event, which the Flap.sh factories always emit alongside `TokenCreated`. --- diff --git a/docs/blockchain/robinhood/index.md b/docs/blockchain/robinhood/index.md new file mode 100644 index 00000000..c665323d --- /dev/null +++ b/docs/blockchain/robinhood/index.md @@ -0,0 +1,92 @@ +--- +title: "Robinhood Chain API — Trades, Launchpads & Real-Time Streams" +description: "Robinhood Chain APIs from Bitquery: query trades, transfers, balances, token holders, liquidity, events, and every major launchpad on chain 4663 with GraphQL and WebSocket streams." +sidebar_position: 0 +keywords: + - Robinhood Chain API + - Robinhood Chain data API + - Robinhood Chain 4663 + - Robinhood Chain GraphQL API + - Robinhood Chain launchpad API + - Robinhood Chain trades API + - Robinhood Chain WebSocket + - Robinhood Chain token launches + - Robinhood Chain bonding curve + - Robinhood Chain memecoin API + - Robinhood Chain holders API + - Robinhood Chain liquidity API + - how to index Robinhood Chain + - track new tokens Robinhood Chain + - Bitquery Robinhood API +--- + +# Robinhood Chain API — Trades, Launchpads & Real-Time Streams + +**Robinhood Chain** (`network: robinhood`, chain ID **4663**) is an EVM network. Bitquery indexes it end to end — blocks, transactions, internal calls, decoded events, token transfers, balances, DEX trades, and pool liquidity — and exposes all of it through one GraphQL endpoint, with any query convertible into a live WebSocket stream. + +This page is the index for that coverage. Start here if you are deciding **which cube answers your question**; go straight to a linked page once you know. + +:::note API Key Required +To query or stream data outside the Bitquery IDE, you need an API access token. + +Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorization/how-to-generate/) +::: + +--- + +## Pick the right API + +| What you want | Use this | Page | +| --- | --- | --- | +| Swap prices, volume, OHLCV | `DEXTrades` / `Trading` cubes | [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) | +| Who sent what to whom | `Transfers` | [Robinhood Transfers API](/docs/blockchain/robinhood/robinhood-transfers) | +| A wallet's portfolio and history | `Balances` | [Robinhood Balances API](/docs/blockchain/robinhood/robinhood-balances-api) | +| Holder counts and distribution | `TokenHolders` | [Robinhood Token Holders API](/docs/blockchain/robinhood/robinhood-token-holders-api) | +| Circulating and total supply | `TokenSupply` | [Robinhood Token Supply API](/docs/blockchain/robinhood/robinhood-token-supply) | +| Pool depth and per-swap slippage | `DEXPools` | [Robinhood Liquidity & Slippage API](/docs/blockchain/robinhood/robinhood-liquidity) | +| Any decoded contract event | `Events` | [Robinhood Events API](/docs/blockchain/robinhood/robinhood-events-api) | +| Method calls, internal calls, traces | `Calls` | [Robinhood Calls & Traces API](/docs/blockchain/robinhood/robinhood-calls-api) | +| Raw transactions and receipts | `Transactions` | [Robinhood Transactions & Receipts API](/docs/blockchain/robinhood/robinhood-transactions-receipts-api) | +| Perp positions and funding | Perp DEX cubes | [Lighter Perp DEX API](/docs/blockchain/robinhood/lighter-perp-dex-api) | + +--- + +## Launchpads on Robinhood Chain {#launchpads} + +Robinhood Chain hosts several token launchpads. They are **not interchangeable** — each has its own factory contracts, its own event signatures, and a different relationship to the DEX it graduates into. A query written for one will silently return nothing on another. + +| Launchpad | Model | Guide | +| --- | --- | --- | +| **Pons** | Real bonding curve per token, graduates into a Uniswap v4 pool behind a Pons-owned hook | [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) | +| **pools.trade** | Uniswap v4 pool from block one — no curve, no graduation event | [Pools.trade API on Robinhood](/docs/blockchain/robinhood/pools-trade-api) | +| **Flap.sh** | Bonding curve with per-token tax and progress events, graduates to a DEX | [Flap.sh API on Robinhood](/docs/blockchain/robinhood/flap-sh-api) | +| **Bags.fm** | Creator-fee launchpad | [Bags.fm API on Robinhood](/docs/blockchain/robinhood/bags-fm-api) | + +For a **cross-launchpad feed** — every new token on the network regardless of which factory minted it — use the [Robinhood Meme Coin Launches API](/docs/blockchain/robinhood/robinhood-meme-coin-launches), which covers the factories above plus the smaller ones. + +:::tip Choosing between a launchpad page and the cross-launchpad feed +The cross-launchpad feed answers *"what launched?"*. The per-launchpad pages answer *"what is this token doing?"* — curve trades, graduation progress, fee splits, and pool state. Most production pipelines use the feed for discovery and one launchpad page for depth. +::: + +--- + +## Streaming + +Every query on every page below can run as a WebSocket subscription — swap `query` for `subscription` and keep the same selection set. For firehose-scale workloads, use Kafka instead of WebSocket. + +- [WebSocket subscriptions](/docs/subscriptions/websockets/) +- [Authorizing a WebSocket connection](/docs/authorization/websocket/) +- [Streams overview — WebSocket vs Kafka vs gRPC](/docs/streams/) + +--- + +## Datasets and history + +Robinhood Chain queries accept a `dataset` argument that decides how far back you can reach and how fresh the tail is. + +- [`realtime`](/docs/graphql/dataset/realtime) — lowest latency, limited retention window +- [`archive`](/docs/graphql/dataset/archive) — full history, higher latency +- [`combined`](/docs/graphql/dataset/combined) — both, stitched +- [Data coverage and retention](/docs/graphql/data-coverage-retention) — what each window actually holds + +If a query on recent data works but the same query returns nothing for older blocks, the dataset argument is almost always the reason. diff --git a/docs/blockchain/robinhood/pons-api.md b/docs/blockchain/robinhood/pons-api.md index c3f7655c..a4634175 100644 --- a/docs/blockchain/robinhood/pons-api.md +++ b/docs/blockchain/robinhood/pons-api.md @@ -1,5 +1,5 @@ --- -title: "Pons API — Bonding Curve Launchpad on Robinhood Chain" +title: "Pons API — How to Track Pons Launches on Robinhood Chain" description: "Pons API: track the Pons V2 bonding-curve launchpad on Robinhood Chain with Bitquery GraphQL. Query new launches, curve trades, snipe tax, graduations, and Uniswap v4 pools." sidebar_position: 7 keywords: @@ -39,7 +39,7 @@ keywords: - Pons pool liquidity API --- -# Pons API — Bonding Curve Launchpad on Robinhood Chain +# Pons API — How to Track Pons Launches on Robinhood Chain **[Pons](https://www.ponsfamily.com/launchpad)** is a token launchpad on **Robinhood Chain**. Its **V2** contracts run a real **bonding curve** that graduates into a **Uniswap v4 pool behind a Pons-owned hook**, and they let a creator quote a launch in **native ETH, USDG, or a tokenized stock** such as TSLA or NVDA. This guide shows how to track **new Pons launches**, **bonding-curve trades**, **snipe tax**, **graduations**, and **post-graduation prices and liquidity** with Bitquery GraphQL APIs, using the `EVM(network: robinhood)` and `Trading` cubes. @@ -103,15 +103,17 @@ Pons and [pools.trade](/docs/blockchain/robinhood/pools-trade-api) are structura | Quote assets | ETH, USDG, tokenized stocks | Mostly native ETH | | Curve trades in trade cubes | **Yes**, as `pons_v2` (from 2026-08-14) | N/A — all trades are pool trades | -:::caution Pons V1 is a different protocol and is still live -`PonsLaunchFactory` at `0xa5aab3f0c6eeadf30ef1d3eb997108e976351feb` is the **V1** launchpad. It is **still deploying tokens**, it has **no bonding curve** (each token gets a Uniswap V3 pool at launch), and its events have **different signatures and different topic0 values** from V2: +:::caution Pons V1 is a different protocol with different event signatures +`PonsLaunchFactory` at `0xa5aab3f0c6eeadf30ef1d3eb997108e976351feb` is the **V1** launchpad. It has **no bonding curve** — each token gets a Uniswap V3 pool at launch — and its events carry **different signatures and different topic0 values** from V2: ```text db51ea9ad51ab453a65a4cb7e60c3cb378c9501bb002609f8f97778fb6c4235a TokenLaunched(address,address,address,address,address,uint256,uint256,uint256,uint256,uint256) 1461370115e1c2be79cb529f8cfcbd11316e789d9c6099fc83417b0b4c48c62a TokenDeployed(address,address,address,address,uint256,uint256) ``` -Every query on this page targets **V2 only**. A "Pons launches" feed built from V2 alone silently misses all V1 activity — add the V1 factory address and its topic0s if you need both. +Every query on this page targets **V2 only**. A "Pons launches" feed built from V2 alone will not include V1 launches — add the V1 factory address and its topic0s if you need both. + +V1 deployment activity varies over time and can stop entirely. Check whether it is currently producing launches before building against it — query `EVM(network: robinhood, dataset: realtime)` for logs from `0xa5aab3f0c6eeadf30ef1d3eb997108e976351feb` and see whether anything comes back. V1 pools are created by Robinhood Chain's **chain-wide Uniswap V3 pool factory**, which serves every V3 protocol on the network — a `PoolCreated` event from it is **not** on its own a Pons signal. ::: --- @@ -163,6 +165,8 @@ On `archive` either one fails with `no candidate table can serve: [Log_Signature ## Contract addresses +Pons V2 runs from a fixed set of contracts. The launch factory `0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e` emits every `TokenLaunched`, `LaunchSwept`, and `PoolGraduated`; the launch router `0xe33e9e479df8802cb0866d5d05258bec4cf62948` wraps launch-and-first-buy into one transaction; and the meme hook `0xe5e702641ea86f4ae6cc3cdaed2b886f976be044` sits on every graduated Uniswap v4 pool and is the field that tells a Pons pool apart from any other v4 pool on the network. Each launched token also gets **its own bonding-curve contract**, so curve trades are matched by event signature rather than by a single address. + | Role | Address | Notes | | --- | --- | --- | | **Launch factory** (`PonsV2LaunchFactory`) | `0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e` | Emits `TokenLaunched`, `LaunchSwept`, `PoolGraduated` | @@ -241,6 +245,8 @@ Emitter: `0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e` | `PoolGraduated(address,uint256,uint256,uint256)` | 1 | `0a44ef75df69c534f43cd6c1aa3ef8983065fe5fe79ef9e79f6494e6f258c259` | | `GraduationTokensPermanentlyLocked(address,uint256)` | 1 | `a0a18f5bf205becee8b268d7cf69addab8548ae8ef361791464cf0e0e17c1361` | | `CreatorFeeRecipientUpdated(address,address,address)` | 3 | `308c390ed1ab5873392818e036cabdf408bc8ad042fbaead3108954ff75ba980` | +| `CreatorFeeRecipientChangeProposed(address,address,address,uint256,uint256)` | 3 | `7f119e44c84a715429bee60d30ad2e14afdef6c60bb1a7eaa01290ecf6d1b2e5` | +| `BuybackEnabledUpdated(address,bool,address)` | 2 | `bd886f85b7731f66269f57707414d435bf8df930d3357a10becc48a69377f6d5` | | `LaunchForceSwept(address)` *(rare)* | 1 | `52c1a28345695afc7f6b7629133124dec5d61ee745affd65e4fd2a776bc05840` | | `LaunchGraduationRescued(address,address,uint256,uint256)` *(rare)* | 2 | `7017304fdd491394686dce984eac721f0be1a22228346210f16694772bde44ca` | diff --git a/docs/blockchain/robinhood/pools-trade-api.md b/docs/blockchain/robinhood/pools-trade-api.md index 8911c368..de3bc509 100644 --- a/docs/blockchain/robinhood/pools-trade-api.md +++ b/docs/blockchain/robinhood/pools-trade-api.md @@ -53,6 +53,7 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat :::tip Related docs - [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) - [Robinhood Meme Coin Launches API](/docs/blockchain/robinhood/robinhood-meme-coin-launches) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) — bonding-curve launchpad, graduations, Uniswap v4 pools - [Flap.sh API on Robinhood](/docs/blockchain/robinhood/flap-sh-api) - [Bags.fm API on Robinhood](/docs/blockchain/robinhood/bags-fm-api) - [Robinhood Token Holders API](/docs/blockchain/robinhood/robinhood-token-holders-api) diff --git a/docs/blockchain/robinhood/robinhood-meme-coin-launches.md b/docs/blockchain/robinhood/robinhood-meme-coin-launches.md index 45132676..f23bc0c8 100644 --- a/docs/blockchain/robinhood/robinhood-meme-coin-launches.md +++ b/docs/blockchain/robinhood/robinhood-meme-coin-launches.md @@ -40,6 +40,10 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat :::tip Related docs - [Robinhood Trades API](/docs/blockchain/robinhood/robinhood-trades) - [Robinhood Transfers](/docs/blockchain/robinhood/robinhood-transfers) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) — bonding-curve launchpad, graduations, Uniswap v4 pools +- [Pools.trade API on Robinhood](/docs/blockchain/robinhood/pools-trade-api) +- [Flap.sh API on Robinhood](/docs/blockchain/robinhood/flap-sh-api) +- [Bags.fm API on Robinhood](/docs/blockchain/robinhood/bags-fm-api) - [WebSocket subscriptions](/docs/subscriptions/websockets/) ::: diff --git a/docs/blockchain/robinhood/robinhood-token-holders-api.md b/docs/blockchain/robinhood/robinhood-token-holders-api.md index 3776bac3..ba2df977 100644 --- a/docs/blockchain/robinhood/robinhood-token-holders-api.md +++ b/docs/blockchain/robinhood/robinhood-token-holders-api.md @@ -31,6 +31,7 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat - [Robinhood Token Supply API](/docs/blockchain/robinhood/robinhood-token-supply/) - [Robinhood Transfers](/docs/blockchain/robinhood/robinhood-transfers/) (live movement between holders) - [Robinhood Trades](/docs/blockchain/robinhood/robinhood-trades/) (prices to value holdings) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) (holder distribution on a bonding-curve launchpad) ::: **On this page:** [Concepts](#cube-concepts) · [Top holders](#top-holders-of-a-token) · [Holder count](#holder-count-of-a-token) · [Whale floors](#holders-above-a-balance-floor) · [Distribution](#holder-distribution-statistics) · [Dormant holders](#dormant-holders-diamond-hands) · [Stock tokens](#tokenized-stock-holders-nvda) · [ETH rich list](#native-eth-rich-list) · [Pagination](#paginating-full-holder-snapshots) · [FAQ](#faq) diff --git a/docs/blockchain/robinhood/robinhood-trades.md b/docs/blockchain/robinhood/robinhood-trades.md index 164ec732..ca7090a3 100644 --- a/docs/blockchain/robinhood/robinhood-trades.md +++ b/docs/blockchain/robinhood/robinhood-trades.md @@ -34,6 +34,8 @@ Follow the steps here: [How to generate Bitquery API token ➤](/docs/authorizat - [Robinhood Liquidity & Slippage API](/docs/blockchain/robinhood/robinhood-liquidity/) - [Robinhood Token Supply API](/docs/blockchain/robinhood/robinhood-token-supply/) - [Robinhood Meme Coin Launches API](/docs/blockchain/robinhood/robinhood-meme-coin-launches/) +- [Pons API on Robinhood](/docs/blockchain/robinhood/pons-api) — bonding-curve launchpad, graduations, Uniswap v4 pools +- [Pools.trade API on Robinhood](/docs/blockchain/robinhood/pools-trade-api) - [Trading data overview](/docs/trading/trading-data-overview/) - [Crypto Trades API](/docs/trading/crypto-trades-api/trades-api/) - [Crypto Price API](/docs/trading/crypto-price-api/introduction/) diff --git a/sidebars.js b/sidebars.js index 1f5c479f..8044880d 100644 --- a/sidebars.js +++ b/sidebars.js @@ -897,11 +897,8 @@ const sidebars = { type: "category", label: "Robinhood", link: { - type: "generated-index", - slug: "/blockchain/robinhood", - title: "Robinhood APIs", - description: - "APIs for accessing Robinhood trades, transfers, liquidity, slippage, events, balances, and meme coin token launches via Bitquery Trading and EVM APIs.", + type: "doc", + id: "blockchain/robinhood/index", }, items: [ "blockchain/robinhood/robinhood-trades",