Blix API · 52 endpoints · free
Free Solana memecoin API
Blix is an open-source memecoin terminal that runs on your own machine and serves everything it sees as JSON: every pump.fun launch within about a second, every trade decoded straight from Solana, holder ledgers with dev, sniper and bundle shares, 5-second candles, real Jupiter quotes, safety checks and AI reads. 52 endpoints and one live event stream, with no API key, no credits and no rate card.
- Price
- Free, open source (MIT)
- API key
- None on your machine
- Transport
- HTTP + JSON, and one Server-Sent Events stream
- Chain
- Solana: pump.fun launches, bonding curve, migrations, plus DexScreener and GeckoTerminal pairs
- Speed
- Launches about a second after the chain; live prices several times a second
- Trading
- Paper desk at real Jupiter quotes. Blix never signs a transaction.
Quick start
You need Node 24.16 or newer. There is nothing else to install: Blix has no dependencies.
git clone https://github.com/blixvip/blixtrade.git
cd blixtrade
npm start
# dashboard and API on http://localhost:4420curl http://localhost:4420/api/pulseLaunches start arriving within seconds. Holder ledgers, candles and AI reads fill in as coins trade. Everything optional (a faster RPC, Discord or Telegram alerts, your Claude or Grok login for AI reads) is set on the dashboard's Settings page, never in code.
What you can build with it
- A new-pairs bot for Telegram or Discord that skips coins with heavy bundles, early snipers or a dev who already sold.
- Copy-trade alerts. Follow any Solana wallet and get its buys and sells from the chain, with realized, open and sellable PnL kept apart.
- An AI agent that reads the market, explains a coin and paper-trades its own calls, through the Blix MCP server.
- Your own Axiom- or GMGN-style front end on top of
/api/pulseand the live stream. - Backtests of entry and exit rules on recorded trade tapes.
Live stream
GET /api/stream is a Server-Sent Events stream. One connection carries new launches, live prices, migrations, signals and paper fills, so a bot never has to poll.
| Event | Payload | When |
|---|---|---|
tick | { tracking, launchesPerHour, tradesPerSecond, … } | every few seconds |
launch | a new pump.fun launch (mint, name, symbol, dev, uri) | sub-second after the chain |
live | live price / mcap / flow updates for coins on the Pulse | per trade batch |
signal | a new signal (type, mint, symbol, text, safety, score) | when raised |
mig | a pump.fun graduation / migration | when detected |
pic | coin image became available | when fetched |
paper | paper desk changed (fill, sell, rule, stop) | on change |
brief | a new market brief | hourly or on demand |
curl -N http://localhost:4420/api/streamconst es = new EventSource("http://localhost:4420/api/stream");
es.addEventListener("launch", (e) => {
const coin = JSON.parse(e.data); // { mint, name, symbol, dev, uri, ... }
console.log("new pump.fun coin", coin.symbol, coin.mint);
});
es.addEventListener("signal", (e) => console.log(JSON.parse(e.data)));import json, requests # pip install requests
with requests.get("http://localhost:4420/api/stream", stream=True) as r:
event = None
for line in r.iter_lines(decode_unicode=True):
if line.startswith("event:"):
event = line[6:].strip()
elif line.startswith("data:") and event == "launch":
coin = json.loads(line[5:])
print(coin["symbol"], coin["mint"])Pulse: new pairs, final stretch, migrated
GET /api/pulse returns the four columns you know from Axiom and GMGN: newPairs (fresh pump.fun launches), stretch (bonding curve past 50%), migrated (graduated to a pool in the last hours) and running (any coin moving in the last five minutes). Each row carries the live market cap in USD, bonding progress, buys, sells, traders and volume, the holder stats, the triage score, the AI's call and a 0–100 rank from live traction.
{
"newPairs": [{
"mint": "9VinAschN7A1yZvk432ovidJvTRtwYP1spDhzJA4pump",
"symbol": "J", "name": "Joule", "pool": "pump",
"mcap": 4592, "progress": 0.188,
"buys": 57, "sells": 26, "traders": 51, "liveVol": 8641,
"hl": { "h": 29, "t10": 18.67, "dev": 0, "ds": "all", "sn": 0, "bd": 0.09, "bdN": 3 },
"tri": { "score": 32, "label": "meh", "why": "11 same-ticker launches this hour, built on a tweet" },
"ai": { "status": "running", "grade": null, "action": null },
"tr": 16
}],
"stretch": [ ... ], "migrated": [ ... ], "running": [ ... ]
}| Field | Meaning |
|---|---|
progress | Share of the bonding curve sold, 0 to 1 |
hl.h · hl.t10 | Holders · share held by the top 10 wallets (%) |
hl.dev · hl.ds | Dev's share (%) · whether the dev sold part or all |
hl.sn · hl.bd · hl.bdN | Snipers' share (%) · bundle share (%) · bundle wallets |
tri | Triage: an instant rules score on every launch, relabelled by a fast model |
ai | The AI read: status, grade A to F, buy / watch / avoid |
tr | Rank 0–100 from live traction: traders, flow, 5-minute volume, change |
Holders, snipers and bundles
GET /api/holders/<mint>?top=25 is a holder ledger Blix builds itself from the trade feed, with no paid indexer. For a coin it watched from its first trade, it tags the dev, snipers (bought within 2 blocks of the first trade) and bundles (bought in the same block as the first trade), and tracks how much of each group has sold. A coin first seen mid-life is marked partial and its sniper and bundle figures are left empty rather than guessed.
{
"holders": 12, "top10": 12.49, "trades": 109, "genesis": true,
"dev": { "wallet": "G2Dx...sobK", "pct": 0, "maxPct": 29.42, "sol": -5.29, "sold": "all" },
"snipers": { "n": 0, "pct": 0, "maxPct": 0, "sold": 0 },
"bundle": { "n": 3, "pct": 0.09, "maxPct": 2.08, "sold": 2 },
"top": [
{ "wallet": "5j2V...ufWZ", "pct": 6.46, "sol": 4.2, "trades": 3, "tag": null }
]
}Candles and quotes
GET /api/candles/<mint>?tf=1m returns market-cap candles built from real trades (5s, 15s, 1m, 5m, 15m, 1h) with buy and sell counts, and falls back to GeckoTerminal for older history. GET /api/quote returns a real Jupiter quote for a buy or a sell: amount out, price impact and route. Nothing is traded.
curl "http://localhost:4420/api/candles/<mint>?tf=1m"
curl "http://localhost:4420/api/quote?mint=<mint>&side=buy&amount=0.5&slip=300"All 52 endpoints
Paths are relative to http://localhost:4420. Errors are JSON { "error": "…" } with a 4xx or 5xx status. Responses are cached for 1 to 60 seconds, so polling faster returns the same body; use the stream for anything live. The long-form reference is docs/API.md.
Market
| Method | Path | Returns |
|---|---|---|
| GET | /api/overview | KPIs: launches per hour, tracking, pass-safety, signals 24h, graduations, health issues |
| GET | /api/pulse | The four Pulse columns (new, final stretch, migrated, running) with per-coin stats and AI verdicts |
| GET | /api/bot | Anti-slop filter state, today's desk, live counters, narrative scout, early-launch model |
| GET | /api/tokens?… | Coins table. Query params mirror the Coins page filters (sort, safety, stage, search) |
| GET | /api/token/<mint> | Full coin detail: price history, safety report, holders summary, socials, research, signals |
| GET | /api/token/<mint>/explain | Claude's explanation of the coin from Blix's data |
| POST | /api/token/<mint>/classify | { themes, assetClass }. Your correction wins over the automatic classification; null puts it back on automatic |
| GET | /api/holders/<mint>?top=25 | Live holder ledger: top holders tagged dev / sniper / bundle, each position, top-10 share |
| GET | /api/candles/<mint>?tf=5s|15s|1m|5m|15m|1h | Market-cap candles built from real trades, with volume |
| GET | /api/quote?mint=<mint>&side=buy|sell&amount=<n>&slip=<bps> | A real Jupiter quote: out amount, price impact, route |
Signals, narratives, briefs
| Method | Path | Returns |
|---|---|---|
| GET | /api/signals?… | Signals feed. Params: type, safety=passed|unscreened|all, group=coin, limit |
| GET | /api/narratives | Themes with heat, launch share, lift vs previous hours, emerging words, lead coins |
| GET | /api/clusters | Narrative bursts (same word or same X post within minutes) and Grok's calls on them |
| GET | /api/briefs | Last 20 market briefs |
| POST | /api/brief | Write a brief now |
| GET | /api/events | Last 80 system events |
Research and picks
| Method | Path | Returns |
|---|---|---|
| GET | /api/research | Research desk status: providers, queue, reads this hour, narratives the AI rates |
| GET | /api/research/<mint> | The coin's reads: first read, deep read, grade, thesis, plan, sources |
| POST | /api/research/<mint> | Queue the coin for a fresh read at top priority |
| GET | /api/triage | The first-read gate's record |
| GET | /api/picks | Picks scorecard: by stage, by AI call, by reason, by day, running result |
| GET | /api/picks/all | Every pick with entry, exit, peak, rule result |
| POST | /api/picks/review | Start a self-review (Grok studies the scorecard and rewrites the playbook) |
| POST | /api/picks/scout | Run the narrative scout now |
Paper desk
| Method | Path | Returns |
|---|---|---|
| GET | /api/paper | The desk: positions, today's and lifetime PnL |
| POST | /api/paper/quoted | { mint, sol, slippageBps?, tp?, sl?, trail? }. Open at the real quote |
| POST | /api/paper | { mint, sol, tp?, sl?, trail? }. Open at the last price |
| GET | /api/paper/<id>/preview?pct=100 | What selling would return at the real quote |
| POST | /api/paper/<id>/sellq | { pct?, why? }. Sell all or part at the real quote |
| POST | /api/paper/<id>/sell | { pct?, why? }. Sell at the last price |
| POST | /api/paper/<id>/rule | { tp?, sl?, trail? }. Take-profit multiple, stop-loss %, trailing %; omitted or zero clears |
| DELETE | /api/paper/<id> | Forget a closed position |
Wallets and Fomo
| Method | Path | Returns |
|---|---|---|
| GET | /api/wallets | Followed wallets with PnL, smart-money ranking, recent activity, RPC tracking stats |
| POST | /api/wallets | { address, label? }. Follow a wallet |
| GET | /api/wallet/<address> | Wallet detail: swaps, realized / open / sellable PnL, positions, linked wallets, alert rule |
| POST | /api/wallet/<address> | { scan: true } scans without following; { follow: true, label? } follows; { label?, muted? } updates |
| DELETE | /api/wallet/<address> | Unfollow |
| GET | /api/fomo | Fomo overview: learned fee payer, what Fomo is buying, top Fomo traders |
| POST | /api/fomo/trader | { wallet, handle? }. Mark a wallet as a Fomo wallet |
Track record, health, ops
| Method | Path | Returns |
|---|---|---|
| GET | /api/perf | Track record per signal type: checked, up 20%+, down 50%+, unsellable, median, worst, reached 2x |
| GET | /api/health | Every dependency with last success, last failure, what to do |
| GET | /api/settings | Public settings (secrets never returned) |
| POST | /api/settings | { settings: {…}, clear: ["discordWebhook", …] } |
| POST | /api/test-notify · /api/test-grok · /api/test-fast | Test a destination or provider with the body's values, without saving |
| GET | /api/alerts | Alert rules (mute / quiet / cooldown), destinations, last 80 deliveries |
| POST | /api/alerts | { scope: "coin"|"wallet"|"type", target, effect, note } or { clear: true, scope, target } |
| DELETE | /api/alerts/<id> | Remove a rule |
| GET | /api/export?secrets=1 | One JSON file: settings, wallets, rules, playbook (secrets only with secrets=1) |
| POST | /api/import | The export file |
| GET · POST | /api/backup | List backups · write one now |
| POST | /api/repair | Rebuild derived tables from snapshots |
| GET | /api/remote-link | Local only: the tunnel URL with the remote key |
Blix API vs GMGN, Axiom, Fomo and PumpPortal
What each option gives a developer today, checked on October 4, 2026. Each name links to the details and sources.
| Public API | Key | Cost | Real trading | |
|---|---|---|---|---|
| Blix | Open source, runs on your machine | None | Free (MIT) | No. Paper desk at real quotes |
| GMGN | Yes, the GMGN OpenAPI | Apply at gmgn.ai/ai with an Ed25519 public key | Not published in its docs | Yes. Swaps need your private key and an IP whitelist |
| Axiom Trade | None published | Unofficial SDKs sign in as your account | Not applicable | Only through unofficial SDKs |
| Fomo | None published | Third-party APIs use their own key | fomoapi.io: 250,000 free credits a month, paid from $49.99 | No |
| PumpPortal | Third-party pump.fun API | Required for trade streams | Launch and migration streams free; trades 0.01 SOL per 10,000 | Yes, 0.5% (local) or 1% (Lightning) a trade |
Pick GMGN's API if you need execution or chains beyond Solana. Pick Blix if you want Solana memecoin data with nothing to sign up for, code you can read and change, and AI reads on top.
Frequently asked questions
Is the Blix API free?
Yes. Blix is open source under the MIT licence and runs on your own machine, so there is no key, no credit system and no rate card. Your only costs are optional: a free-tier Helius RPC makes wallet tracking about ten times faster, and AI reads use your own Claude or Grok login.
Do I need an API key?
No. On your machine every endpoint is open to local scripts. If you turn on the optional remote link (a Cloudflare tunnel to your own install), a per-install key kept in a cookie protects it.
Is this the official GMGN or Axiom API?
No. Blix is independent and not affiliated with GMGN, Axiom Trade, Fomo or pump.fun. GMGN has its own official API (see GMGN API); Axiom Trade and Fomo publish none (see Axiom API and Fomo API). Blix gives you the same kind of memecoin data without an account.
Where does the data come from?
New pump.fun coins come from PumpPortal's free launch stream with an on-chain backup for any it misses. Trades are decoded straight from Solana program logs over RPC. Prices for graduated coins come from Jupiter, pairs from DexScreener and GeckoTerminal, safety reports from RugCheck. Holders, snipers and bundles are computed by Blix from the trades it sees.
How fast is it?
New launches arrive about a second after they land on chain, often less. Live market caps, buys, sells and bonding progress are pushed over the stream several times a second. Roughly 2,000 pump.fun launches an hour and 50 to 80 trades a second flow through a normal day.
Can I trade through the Blix API?
Not with real money. Blix never signs a transaction and never touches your keys. It has a paper desk that fills at real Jupiter quotes with slippage, take-profit, stop and trailing rules, and every coin carries a Buy on Fomo link.
Which chains does it cover?
Solana. pump.fun launches, the bonding curve and migrations get the deepest coverage; other Solana pairs come in through DexScreener and GeckoTerminal.
Can an AI agent use it?
Yes. The Blix MCP server turns the API into 20 tools for Claude, Cursor, Codex and any other MCP client.