DevelopersBuild on Chatple
A public, read-only API for trading terminals, bots, screeners and launchpad builders: every Chatple coin, its trades and candles, a live stream of launches and trades, a drop-in stream overlay, and how to recognise Chatple pools on Solana. No key needed; CORS is open.
Base URL · https://chatple.comJSON · UTF-8Fair use · cache what you can
One import, no key, no dependencies — works in the browser and in Node 18+. Or generate a client from the OpenAPI spec.
import { Chatple } from "https://chatple.com/sdk/chatple.js";
const chatple = new Chatple();
// every new Chatple coin and every trade, live
const stop = chatple.subscribe({
onLaunch: (coin) => console.log("launched", coin.symbol, coin.url),
onTrade: (t) => console.log(t.side, t.symbol, Number(t.quoteAmount) / 1e9, "SOL"),
});
const { tokens } = await chatple.tokens({ limit: 20 }); // newest coins
const { candles } = await chatple.candles(tokens[0].mint, { tf: "5m" });
const overlay = chatple.overlayUrl(tokens[0].mint, { pos: "br" }); // OBS browser sourceGET/api/v1/tokens
Chatple coins, newest first (or recently graduated), with live bonding-curve state.
- sort
- new (default) | graduated
- limit
- 1–100, default 50
- before
- ISO time — page with the previous response's next
{
"tokens": [{
"mint": "9NQV…sCHAT", "symbol": "MRCC", "name": "Mr.ChanChan",
"image": "https://uploads.chatple.com/…", "creator": "44Ep…olzb",
"createdAt": "2026-10-03T13:45:12.000Z", "url": "https://chatple.com/t/9NQV…sCHAT",
"price": 2.8e-8, "marketCapSol": 28.0, "curveProgress": 0.01, "graduationSol": 85,
"graduated": false, "pool": "…", "dammPool": null,
"config": "4Ygeb2Bv…", "preset": "fair", "quoteMint": null
}],
"next": "2026-10-03T13:45:12.000Z"
}GET/api/v1/tokens/{mint}
One coin: live curve state, 24h stats (volume, trades, price change) and who its creator fees go to.
{
"token": { …same shape as above… },
"stats": { "volume24h": 1.2, "trades24h": 5, "change": { "m5": 0, "h1": -0.03, "h6": -0.03, "h24": -0.03 } },
"feeRecipients": [{ "kind": "handle", "key": "twitch:mr_chanchan", "label": "twitch/mr_chanchan", "bps": 10000 }]
}GET/api/v1/tokens/{mint}/trades
Trades, newest first. Amounts are raw integers (lamports · 6-decimal token units).
- limit
- 1–500, default 100
- before
- ISO time — paging
{
"trades": [{ "signature": "5x…", "side": "buy", "wallet": "8P4u…uRyn",
"quoteAmount": "500000000", "tokenAmount": "17123456789012", "price": 2.89e-8,
"viaCaller": false, "time": "2026-10-03T13:46:01.000Z" }],
"next": "2026-10-03T13:46:01.000Z"
}GET/api/v1/tokens/{mint}/candles
OHLCV candles (SOL per whole token), oldest first — continuous (each opens at the previous close). Includes DAMM v2 trades after graduation.
- tf
- 1m | 5m | 15m | 30m | 1h | 1d
- limit
- up to 1000, default 300
{ "candles": [{ "time": 1791020700, "open": 2.79e-8, "high": 2.89e-8, "low": 2.79e-8, "close": 2.89e-8, "volume": 0.7 }] }GET/api/v1/launchpad
How to recognise a Chatple pool on chain, and each launch preset's curve and fee parameters.
{
"name": "Chatple", "dbcProgram": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN",
"configs": [{ "preset": "fair", "config": "4Ygeb2Bv…", "migrationQuoteThresholdSol": 85,
"antiSniper": { "startingFeeBps": 5000, "endingFeeBps": 100, "durationSeconds": 120 }, … }],
"identify": { "launchpadSigner": "4XD9…vDY1", "memo": "chatple:launch", "vanityMintSuffix": "CHAT" }
}GET /api/v1/stream is a Server-Sent Events feed of new launches and trades across Chatple (or one coin with ?mint=). Events carry an id, so a reconnecting client resumes where it left off.
- events
- launch,trade (default both)
- mint
- only this coin's trades
- since
- ISO time to replay from (or the Last-Event-ID header)
const es = new EventSource("https://chatple.com/api/v1/stream?events=launch,trade");
es.addEventListener("launch", (e) => {
const coin = JSON.parse(e.data); // same shape as /api/v1/tokens
console.log("new coin", coin.symbol, coin.url);
});
es.addEventListener("trade", (e) => {
const t = JSON.parse(e.data); // { mint, symbol, side, wallet, quoteAmount, price, signature, time }
console.log(t.side, t.symbol, Number(t.quoteAmount) / 1e9, "SOL");
});A transparent, embeddable card for OBS / Streamlabs (browser source, 1920×1080) or any page: live price and market cap in USD, the fees the coin has earned for its creator, a scan-to-buy QR, and an alert with a chime on every buy.
https://chatple.com/overlay/{mint}?pos=bl&scale=1&sound=1&sells=0
pos bl | br | tl | tr corner of the 1920×1080 canvas
scale 0.5 – 2
sound 0 to mute the buy chime
sells 1 to alert on sells too
<iframe src="https://chatple.com/overlay/{mint}?pos=bl" width="1920" height="1080"
style="border:0;background:transparent" allowtransparency></iframe>Building your own launchpad on Meteora DBC? GET /api/v1/presets returns Chatple's tuned configurations as complete Meteora ConfigParameters — fair launch, stream mode (10-minute anti-sniper) and fast graduation (30 SOL). The anti-sniper scheduler is solved to land on exactly 1.00%, not the SDK's 1.0093%. Spread one into createConfig with your own keys:
import BN from "bn.js";
import { DynamicBondingCurveClient } from "@meteora-ag/dynamic-bonding-curve-sdk";
const { presets } = await (await fetch("https://chatple.com/api/v1/presets")).json();
const stream = presets.find((p) => p.name === "stream").configParameters;
// numeric fields arrive as strings: revive them as BN where the SDK expects BN
const params = JSON.parse(JSON.stringify(stream), (k, v) => (typeof v === "string" && /^\d+$/.test(v) ? new BN(v) : v));
const client = new DynamicBondingCurveClient(connection, "confirmed");
const tx = await client.partner.createConfig({
...params,
config: configKeypair.publicKey,
feeClaimer: yourTreasury,
leftoverReceiver: yourTreasury,
quoteMint: NATIVE_MINT,
payer: wallet.publicKey,
});Chatple coins are Meteora Dynamic Bonding Curve pools created with one of our config keys, then migrated to Meteora DAMM v2 with the LP permanently locked. Every launch transaction is co-signed by the Chatple launchpad signer and carries the memo chatple:launch; mints usually end in …CHAT.
| Preset | DBC config | Curve & fees |
|---|
| fair | 4Ygeb2BvXpKmqLHrR873YCpLuR624BmcKSFvK5ps8iHY | anti-sniper 49.5% → 1% over 2 min · graduates at 85 SOL |
| stream | 5ohmoN58xk1RNnCJrYG3x5v1aCRv6LpS9a5D4dkvD6FE | anti-sniper 49.5% → 1% over 10 min · 85 SOL |
| fast | Dtd4A59XWPsCPtrxrCBwZ5HzB6jHe6W9xhVGu35ZZGyz | anti-sniper over 2 min · graduates at 30 SOL |
| program | dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN | Meteora DBC · 62% of trading fees to the creator side · 1% after the anti-sniper window |
Machine-readable: GET /api/v1/launchpad.