Public API
Everything a terminal, indexer or market-data provider needs to list Rawbin launches. No API key, no auth, CORS open, JSON only. If you'd rather not depend on our infrastructure at all, skip to reconstructing from chain — every launch is recoverable from events alone.
Chain
- Network
- Robinhood Chain (chain 4663)
- Native gas
- ETH
- DEX venue
- Uniswap V3, 1% tier — or Uniswap V4, 1% tier, for stock-quoted launches
- API base
- https://api.rawbin.fun
Endpoints
/api/tokens?filter=new|trending|migrated|king|external&limit=1..200&chain=Token list, default filter=new, default limit 50, hard cap 200. trending ranks by 1h volume, migrated returns graduated launches only, king sorts by progress toward graduation among launches that have not migrated, and external returns the curated launched-elsewhere listings by 24h volume. Every other filter excludes those.
/api/tokens/:addressFull detail: metadata, reserves, pool, position id, market cap inputs, ATH, 24h volume, and symbol_duplicates (how many other live tokens share the ticker — useful for impersonation flags).
/api/tokens/:address/trades?limit=1..500Recent buys and sells with trader, side, ETH and token amounts, price, tx hash and block time.
/api/tokens/:address/candles?interval=&limit=1..2000OHLCV candles. Interval in seconds, default 60; limit defaults to 500.
/api/tokens/:address/holders?limit=1..500Holders sorted by balance, with per-holder trade aggregates so entry price and PnL can be derived. Returns total — the real holder count, not the page size.
/api/creators/:address/stats?chain=Creator track record: launches, graduated, graduation rate, how many are still traded this week, lifetime volume. Derived entirely from indexed on-chain history.
/api/tokens/:address/comments?limit=1..500Comment thread for a token. Read is open; posting requires a wallet signature.
/api/statsPlatform aggregates: total and 24h volume, trade count, token count, ETH/USD.
/api/leaderboard?limit=1..500Points leaderboard across wallets.
/api/eth-priceThe ETH/USD rate the rest of the API is denominated against.
/api/profile/:addressA wallet's holdings, launches, trade history, points and per-token PnL inputs.
/img/:addressToken logo, address-keyed and stable. Hotlink this rather than parsing metadataURI.
/token-info/:addressCompact metadata document (name, symbol, image, socials) for scanners.
/api/healthLiveness probe.
Fields worth knowing
mode — how the token trades: direct (live Uniswap pool from block 0), presale (bonding curve; the row is keyed by the curve address until graduation), curve (legacy), external (curated listing, not launched here).
version — which contract generation launched it, and the single most important field to branch on, because three generations are live at once and their constants differ. 4 pays the creator 25% of trade fees; 5 pays 75% and caps the creator's first buy at 2% of supply on-chain; 6 is the stock-quoted set on Uniswap V4, which has no graduation target at all. Graduation thresholds differ per generation too, and are deliberately not written down here: read them off the factory (GRADUATION_WETH / defaultMigrationThreshold). Every copy of those numbers we have ever written into text has gone stale.
venue — v3 or v4: which Uniswap holds the liquidity. This is not version, even though both say "4". A version-5 launch is venue v3; a version-6 launch is venue v4. Branch on venue for anything about pools, swaps or fees.
pool_id, tick_spacing, hook — V4 only. A V4 pool has no address: it is identified by the hash of its PoolKey, so pool is null on these rows and pool_id carries the identity. All five PoolKey fields are needed to reconstruct it, and a guessed tick spacing or hook yields a different, non-existent pool.
launch_kind — meme or rwa. An rwa row is a stock-quoted launch: its pool carries our hook, which charges a decaying anti-snipe fee (90% at the launch block, zero 30 blocks later) on top of the pool tier. If you quote or backtest these, that fee is real and shows up in the first blocks of every one of them.
quote_token — null for ETH-quoted launches. Non-null means the pool is priced in that ERC-20 (a tokenized stock), so prices and real_eth_reserve on that row are denominated in it, not in ETH. Don't sum them with ETH-quoted rows.
weth_is_token0 — pair orientation. Do not assume it: the older factories forced one ordering by grinding the token address, the stock-quoted factory deliberately does not.
migration_progress — 0–1 toward graduation, and absent/meaningless where there is nothing to graduate to: stock-quoted launches carry migration_threshold = 0 because their pool opens with the whole supply at creation. Don't render a bar for those. Supply is always 1,000,000,000 with 18 decimals; there is no mint, pause, blacklist or transfer tax on any launched token.
Reconstructing from chain
Our API is a convenience, not a dependency. Index the factories and the per-launch curves and you can rebuild the entire board from chain history without touching our infrastructure — which is how it should be if you're running a terminal. Note that "the factory" is plural: several generations are live simultaneously, tokens from all of them still trade, and each generation emits its own (slightly different) events. Every address is listed on the docs page.
TokenCreated(token, pool, creator, positionId, name, symbol, metadataURI, kind) — Instant-DEX factory. The kind arg exists from the current generation onward; the previous one emits the same event without it.
TokenCreated(token, poolId, creator, quoteToken, name, symbol, metadataURI) — stock-quoted factory. Different shape, not just an extra field: there is no pool address and no positionId, because a V4 pool is identified by poolId and the liquidity is held by the hook rather than as a position NFT.
PresaleCreated(curve, creator, name, symbol, metadataURI, kind) — Fair-launch factory. The ERC-20 does not exist yet.
Buy / Sell / BuyRefunded — curve trades. A buy is clamped to the remaining raise, so read the emitted amount rather than the requested one.
Graduated(token, pool, positionId, ethSeeded, tokensSeeded) — the curve minted its token, seeded the pool and locked the position.
FeesCollected(tokenId, platform, creator, ..., creatorBps) — Locker payout. Read creatorBps rather than assuming a split: it is 2500 on the previous generation and 7500 on the current one.
Post-graduation trading on an ETH-quoted launch is ordinary Uniswap V3 Swap events on the pool. Nothing about swapping those is Rawbin-specific.
Stock-quoted launches trade as Uniswap V4 Swap(id, sender, amount0, amount1, sqrtPriceX96, liquidity, tick, fee) events on the PoolManager singleton, keyed by id — not on a per-pool address. Our hook additionally emits DonationDeferred / DonationFlushed for anti-snipe fees it could not donate immediately, and FeesCollected(poolId, creator, platform, amount0, amount1, creatorBps) for its own payouts. guardBips(elapsed) on the hook is a pure view, so the anti-snipe schedule is reproducible exactly.
Read phase() on a curve for its authoritative state (Trading, ReadyToGraduate, Graduated) rather than inferring it from balances.
Rate limits & contact
Read endpoints are unauthenticated and generous. Per-IP limits exist on write endpoints only. If you're indexing us and want headroom, or you need an endpoint that isn't here, email legal@rawbin.fun and we'll sort it out — we would rather you had good data than scraped the site.
Every token launched here is a high-risk speculative asset with no guarantee of value. Listing one is not an endorsement, by us or by you.