Docs
how it works
01 you create a coin: name, ticker, picture, and the pair (HYPE). one signature. free, gas only.
02 the contract mints 1,000,000,000 coins and puts every one of them into a fresh Project X v3 pool (1% tier). no wallet ever holds the supply.
03 the liquidity position (a Project X v3 NFT) is owned by the contract and there is no function to withdraw it. trading opens the same block, on any router, aggregator or bot that speaks Uniswap v3.
04 every swap leaves a small fee in the pool. the creator claims their cut from the coin page, paid in the pair asset only. the coin side of the fee is sold for the pair during the claim.
05 part of what the platform collects buys the ten biggest coins and sends them to the dead address.
read api
public, no key, 300 requests a minute per IP. GET, JSON. base https://powder.family/api/d
GET /api/tokensevery coin with market data · q, sort (mc|new|vol|trending), mode, category, pair, page, pageSizeGET /api/tokens/{ca}one coin + last 50 trades + top 100 holders + fees, buybacksGET /api/tokens/{ca}/feespool fees claimed and who they went toGET /api/candles/{ca}?tf=5mOHLCV in the pair asset · tf 1m 5m 15m 1h 4h 1d · limit ≤ 1000GET /api/trades?limit=50latest trades across the platform, or ?token= for one coinGET /api/launchescreate ledger, newest firstGET /api/pairspair assets: symbol, category, USD price, whether usable as a pairGET /api/rewardslifetime payouts per sharing coin + recent claimsGET /api/revenuefees collected, buys, burnsGET /api/revenue/historydaily totals in USD, keyed by UTC dateGET /api/flywheelbuybacks: current ten, rounds, totalsGET /api/statsaggregate totals and platform configcontracts
Launchpad-Router-Hook-Deployer-Create2Factory-PoolManager-Platform token-Chain-scripts
$ read a coin
const r = await fetch('https://powder.family/api/d/api/token/0xYourCoin');
const t = await r.json();
console.log(t.symbol, t.priceUsd, t.mc, t.pairSymbol);
t.tradesList.slice(0, 5).forEach(x => console.log(x.side, x.usd, 'USD', x.trader));$ buy from a script
const router = new ethers.Contract(ROUTER, [
'function buy(address coin,uint256 amountIn,uint256 minOut) payable returns (uint256)',
'function sell(address coin,uint256 amountIn,uint256 minOut) returns (uint256)',
], signer);
// HYPE pair: send value.
await router.buy(coin, ethers.utils.parseEther('25'), minOut);
// or go straight to Uniswap v3: SwapRouter.exactInputSingle with fee 10000 (1%), pool = getLaunch(coin).pool$ create from a script
const lp = new ethers.Contract(LAUNCHPAD, [
'function launch(string name,string symbol,(string uri,string logo,string description,string website,string twitter,string telegram) meta,address pair,uint256 pairBuyAmount) payable returns (address)',
], signer);
// pair = address(0) for HYPE. pairBuyAmount = optional first buy (send it as value).
const tx = await lp.launch('My Coin', 'MYC', meta, ethers.constants.AddressZero, 0);terms cover what this site is and is not.