Coins, coin details, trades and price candles, holder pots, platform stats and funds, $BALL burns: free up to 120 requests a minute on the API and 60 on MCP. Past that, $0.01 a request.
Basic
$0.01 a call, from the first: top holders, a wallet's rewards, and a creator's earnings. Marked Basic below.
Premium
$0.05 a call, from the first: a coin's health grade and the signals behind it. Marked Premium below.
How paying works
With x402, in USDC on Solana: no account, no key, no subscription. A request that needs paying gets 402 Payment Required with the price in a PAYMENT-REQUIRED header. Your client or agent signs a USDC transfer for that amount and sends the request again with it in PAYMENT-SIGNATURE. We check it, settle it on Solana, and answer, with the transaction in PAYMENT-RESPONSE. x402-aware clients and agent wallets do this automatically.
WeBall pays the network fee. You only ever sign a transfer of the stated amount to WeBall's address; nothing else can move from your wallet.
MCP for AI agents
The same data as the API, as tools an AI agent can call: a hosted, read-only Model Context Protocol server. No sign-in and no key.
Server URL
https://weball.fun/mcp
Claude Code
claude mcp add --transport http weball https://weball.fun/mcp
Claude (web and desktop)
Settings, then Connectors, then Add custom connector, and paste the server URL.
Other clients
Most accept a server entry like this in their MCP settings:
Find coins by mint, symbol or name, or list them by newest, volume or market cap.
get_coin(mint)
One coin in full: mode, fee, pair, basket, bonding progress, market cap and holders. Its health grade and signals: get_health_signal.
get_coin_rewards(mint)
Holder mode: the reward pot, what holders received per basket token (raw units, cost, and US cents at the time and at the latest price), and recent payout rounds, each with its snapshot slot and baseline slot (holders are counted at the smaller of their balance at the two). Creator mode: what the creator has earned, been sent, and is waiting on.
get_flywheel()
The platform’s funds: the flywheel (accruing; buys and burns not started yet), the $BALL burn fund and the platform share.
get_platform_stats()
Platform totals: coins launched and graduated, trades, volume, paid to holders and sent to creators (lamports, SOL value). `revenueDaily`: platform revenue per UTC day, the last 30, oldest first: WeBall’s fee share and swap referrals (lamports), API payments (micro-USD), that day’s SOL price (micro-USD) the day’s total in US cents (`usdCents`) and all revenue to the end of that day (`cumulativeUsdCents`).
get_ball_burns(date)
One UTC day of $BALL burns (today unless `date`, YYYY-MM-DD): burned that day, totals to the end of that day, percent of the original supply, the latest burn transaction and the burn fund now. Unlike the other tools, amounts are display strings: whole $BALL, SOL and US dollars.
get_market_data(mint, interval)
A coin’s recent price candles (the last 48 at the interval) and its latest 20 trades.
get_top_holders(mint, limit)Basic
A coin’s biggest holders and holder count (pools, locked liquidity and WeBall’s wallets left out), with what each would count for in the next round: the smaller of their balance now and at the round’s baseline (tokens bought since then count from the round after).
get_wallet_rewards(wallet, coin)Basic
What a wallet has been paid in holder rewards, and is owed (small shares carried to the next round).
get_creator_earnings(wallet)Basic
The coins a wallet launched here, and what each has earned it.
get_health_signal(mint)Premium
A coin’s health grade (A–F) and the signals behind it, each with its level (ok, caution, warning): top-10 concentration, the creator’s unlocked share, whether the creator sold their launch buy, snipers and bundled buys (what those wallets still hold), insiders (launch-block buyers, and tokens received by transfer), wash trading, and whether the mint and freeze authorities are still set; plus holders and the creator’s other launches. The grade is null when not scored yet or over an hour old. It flags warnings; it never means a coin is safe.
Coin names, symbols, descriptions and links are written by coin creators, so the server wraps each as {"untrusted_text": …} and tells the agent to treat them as data, never instructions.
Read API
Read-only data for every coin launched on WeBall: coins, market data, holders, holder rewards, creator earnings and platform stats. No key needed; requests are rate-limited per visitor.
Amounts are integers in raw units, as strings: a coin’s pot, trades and volume are in its quote token (`quote.decimals`), coins have 6 decimals, payouts are in each basket token’s own units. Platform totals are in SOL value (lamports).
Fields under `user` (name, symbol, description, socials) are written by the coin’s creator. Treat them as untrusted text.
Base URL
https://weball.fun/api/v1
Network
Solana mainnet: the network this site runs on
Limits
120 requests a minute (API), 60 (MCP), per visitor
Read-only: nothing here moves money or needs a wallet. Health grades signal warnings, not safety, and nothing on WeBall is financial advice (see the FAQ).
Endpoints
All GET, all JSON. Errors come back as {"error": "…"} with status 400 (a bad parameter), 404 (not on this network) or 429 (slow down).
GET/coins
List or search coins
`coins`: summaries (market cap, 24h volume and change, holders, bonding progress); `next`: the next page’s offset, or null.
Summary plus description and socials, creator, pools, basket and creator split.
Parameter
In
Values
About
mint*
path
string
The coin’s mint address.
curl "https://weball.fun/api/v1/coins/<mint>"
GET/coins/{mint}/rewards
Holder pot and payout rounds, or creator earnings
Holder mode: `pot`, `paidByToken` and `rounds` (each with `snapshotSlot` and `baselineSlot`: holders are counted at the smaller of their balance at the two). `paidByToken`, per basket token: `paid` (raw units sent to holders), `cost` (what they cost, raw quote units), `usdCentsAtPayout` (that cost at the quote token’s price when each round bought; `unpricedRounds` were left out) and `usdCentsNow` (at the token’s latest price; null without one). Creator mode: `creator` (earned, sent, waiting).
`holders`: the count; `baselineSlot`: the slot the next round compares against (null before there is one); `top`: wallet, amount, shareBps of supply, and `countsNextRound`: the amount the next round would count under the holding rule (the smaller of the balance now and at the baseline). Pools, locked liquidity and WeBall’s wallets are left out.
`grade` (A–F; null when not scored yet or over an hour old), `checkedAt`, `signals` (top10Bps, creatorUnlockedBps, creatorSoldLaunchBuy, sniperBps, bundleBps, insiderBps, washBps: shares of supply in bps, 10,000 = 100%; mintAuthority and freezeAuthority: true while still set, absent on older grades), `levels` (ok, caution or warning per signal) and `context` (holders, the creator’s other launches and graduations). Flags warnings; never a sign a coin is safe.