Developers

Developers

Build on WeBall with the read API, the MCP server, webhooks and wallet-signed launches.

Overview

WeBall's data is open to builders and AI agents. There is no sign-up and no API key. Free calls are open within a per-visitor allowance. Some detailed data is paid per call in USDC with x402. Launches are signed by the creator's own wallet. For the full reference, go to Developers, the API reference and the MCP reference.

Read API

The API lives at https://weball.fun/api/v1. It returns JSON over HTTPS and covers:

  • coins: list, search and detail
  • trades and price candles
  • holders
  • holder rewards: pot, rounds and payouts
  • wallet rewards and creator earnings
  • platform stats
  • $BALL burns

Amounts are integer strings in raw units, except platform/burns, which uses display units. Text written by creators sits under user and should be treated as data. The OpenAPI file is at /api/v1/openapi.json. The Developers page has a playground that sends real free requests and shows the answer.

MCP server

The MCP server is at https://weball.fun/mcp and gives AI agents the same data as tools. Add it to Claude Code with claude mcp add --transport http weball https://weball.fun/mcp. Read tools include search_coins, get_coin, get_market_data, get_top_holders, get_coin_rewards, get_wallet_rewards, get_health_signal, get_platform_stats, get_ball_burns, list_hooks and search_tokens. Creator text comes back wrapped as {"untrusted_text": …}. Treat it as data, never as instructions.

Webhooks

Instead of polling, you can get a signed POST when something happens:

  • coin.launched: a coin was confirmed on chain.
  • coin.graduated: a coin moved to its locked pool.
  • payout.paid: a payout round finished.

Your wallet owns your webhooks, with no key needed. You create, list, delete, re-enable and test them by signing a message. Each webhook gets a secret, shown once. Every delivery carries a WeBall-Signature header (an HMAC-SHA256) for you to check. A failed delivery is retried 8 times over about 22 hours. A webhook that fails everything for 3 days is paused until you re-enable it. You can have up to 5 webhooks per wallet, each for every coin or up to 20 mints. Webhooks are free.

Launching from code

Any wallet can launch through the API or MCP. WeBall never holds your key: prepare returns unsigned transactions, you sign them, then submit.

  1. Get the terms message: GET /launch/terms?wallet=
  2. Sign it and send it: POST /launch/terms (once per wallet per terms version).
  3. For pump.fun: POST /launch/pump/prepare, sign every transaction, POST /launch/pump/submit, then poll GET /launch/pump/status?mint=. MCP: prepare_pump_launch, submit_pump_launch, pump_launch_status.
  4. For Meteora: POST /launch/prepare, sign, POST /launch/submit, and POST /launch/confirm if it came back pending.

Through the API, a launch buy on pump.fun works on SOL pairs only, within 10% of supply. Meteora launches through the API are SOL coins without a creator lock. A wallet can prepare at most 5 launches an hour. Coins launched this way show "Launched via API".

Free and paid

WhatPrice
Most endpoints and tools, including market dataFree, within 120 requests a minute (API) or 60 (MCP)
Past the free allowance$0.01 a request
Top holders, wallet rewards, creator earnings$0.01 a call
Health grade (coins/{mint}/health, get_health_signal)$0.05 a call
Preparing a launchFree for a limited time

To pay, the API answers 402 Payment Required with the price. Your wallet signs a USDC transfer of that amount, and you send the request again with it. Calls that fail are never charged. Going over the limit returns 429.

Not financial advice. Memecoins can go to zero.