# PolyPump > Bonding-curve token launchpad on Polygon PoS (chain id 137). Each token trades against a constant-product curve priced in POL or BZB (chosen at launch, fixed) and graduates to QuickSwap V2 at 10,000 of its quote asset (TOKEN/WPOL or TOKEN/BZB pool); graduated LP is locked forever. Bots and AI agents are explicitly welcome: no API key, CORS open, no anti-bot or anti-sniping rules. Everything is read-only. To trade, ask /api/tx/* for an UNSIGNED transaction and sign it with your own wallet. The server never holds keys. ## API - [OpenAPI spec](https://launch.blazarforce.net/openapi.json): full schema - [Bot guide](https://launch.blazarforce.net/BOTS.md): curl, viem/ethers and Python web3 examples - [Token list](https://launch.blazarforce.net/tokenlist.json): graduated tokens, tokenlists.org format - [Tool manifest](https://launch.blazarforce.net/.well-known/mcp.json): the same endpoints as named tools ## Key endpoints - GET https://launch.blazarforce.net/api/tokens?sort=volume|age|mcap|trades|progress&status=curve|graduated"e=POL|BZB&q=... - GET https://launch.blazarforce.net/api/tokens/{address} and /curve, /quote?side=buy|sell&amount=1.5, /trades, /candles?tf=300, /holders - GET https://launch.blazarforce.net/api/tx/buy?token=0x..&amount=1.5&from=0x.. - GET https://launch.blazarforce.net/api/tx/sell?token=0x..&amount=1000000&from=0x.. (may return an approve step first) - GET https://launch.blazarforce.net/api/tx/create?name=..&symbol=.."e=POL|BZB&devBuy=1 - GET https://launch.blazarforce.net/api/tx/swap-pol-bzb?amount=50&from=0x.. (POL -> BZB on QuickSwap, to trade BZB-quoted tokens) - GET https://launch.blazarforce.net/api/prices (BZB/POL/USD from on-chain reserves; display only) - GET https://launch.blazarforce.net/api/tx/claim?quote=POL|BZB&from=0x..&to=0x.. (claim creator fees; warns on fresh destinations) - GET https://launch.blazarforce.net/api/tx/check-recipient?address=0x.. - GET https://launch.blazarforce.net/api/wallet/{address}/holdings (POL, BZB and PolyPump tokens held, with approximate values and status) - GET https://launch.blazarforce.net/api/wallet/{address}/created (tokens a wallet launched) - GET https://launch.blazarforce.net/api/wallet/{address}/fees (claimable fees, fee recipients, harvestable LP fees, allowed actions) - GET https://launch.blazarforce.net/api/protocol/fees (protocol-level fee summary) - GET https://launch.blazarforce.net/api/tx/harvest?token=0x..&from=0x.. (LPFeeLocker.harvest; LP fee recipient or owner only) ## Fees, in one paragraph - Curve trades pay tradeFeeBps (1%). A creatorFeeShareBps share (currently 0) accrues to the token's fee recipient (the creator unless the owner overrides it); the rest accrues to the platform. Balances are pooled per wallet: claim / claimTo (POL) and claimBzb / claimBzbTo (BZB) via /api/tx/claim; claimFor / claimBzbFor push anyone's balance to them. - After graduation, LP fees in the locked QuickSwap pool are collected with LPFeeLocker.harvest by the token's LP fee recipient (default: the platform) or the owner; proceeds always go to the recipient. - Only the owner (the admin Safe) can change fee recipients or the creator share. /api/wallet/{address}/fees lists exactly what a wallet can do. ## Quote assets - POL tokens: buy with native POL (value), sells pay POL; pool TOKEN/WPOL. - BZB tokens (BZB = 0x462D8d82C2B2D2DDabf7f8a93928De09d47A5807): /api/tx/buy returns an ERC-20 approve of BZB first, then PolyPump.buyBzb (value 0); sells pay BZB; pool TOKEN/BZB. Fees: claimBzb. - price, marketCap and volume are in the token's quote asset; marketCapPol / marketCapUsd convert at on-chain prices. ## Rules of the road - Every quote carries a non-zero minOut (default 200 bps slippage, max 1000) and the current fee as maxFeeBps; if the owner raises fees before your tx lands it reverts instead of overcharging. - Use the returned gasLimit. A buy that completes a curve also graduates it (about 3M gas); buys >= half of what is left to raise get >= 3.6M. - Before signing, check chainId == 137, that `to` is the pinned PolyPump or QuickSwap router address (or the token you approve), that `value` is what you asked to spend, and decode the calldata. Use a keystore or hardware signer, never a raw key on the command line. See /BOTS.md. - Identify tokens by address, never by symbol: launches are permissionless and every token is unverified. - Rate limits are generous per IP; on 429 read Retry-After. - Tokens removed by the admin return 410; the on-chain contract is unaffected. - BZB inflows can be switched off (owner pause, or the BZB proxy was upgraded since review): /api/config.bzbStatus and /api/fees.bzbInflowsOpen say so, and BZB buys/launches return 409. Sells and claims always work. - Graduated BZB tokens (thinPool: true) sit in a small TOKEN/BZB pool (about 10k BZB): expect big price impact. - Never claim to an address you have not used: a counterfactual or future pair address loses the funds.