BLIX

AI-powered memecoin terminal

pump.fun API in JavaScript, TypeScript and Node.js

BLIX serves pump.fun as HTTPS and JSON to your account, so a JavaScript client is fetch, built into Node 20+ and every browser. Below: live launches, the Pulse, holder screening, candles and quotes, with types for TypeScript. No package to install.

The BLIX memecoin trading terminalExplore the BLIX terminal ↗

By BLIX · Updated · APIs, live data and MCP

On this page
  1. A typed client
  2. Screen a coin's holders
  3. In the browser
  4. Run it
  5. The BLIX community
  6. More for developers

API and MCP access come with every BLIX account · sign in with Google · checked October 10, 2026

Access comes with your account. Sign in to BLIX with Google, open Developers, and your API session and the MCP connector command are shown there, ready to copy. Everything below assumes you are signed in. Questions: the Discord.

A typed client

// blix.ts (Node 20+): BLIX_SESSION from https://blixvip.com/developers
const BLIX = "https://blixvip.com";
const H = { cookie: `blix_wait=${process.env.BLIX_SESSION}` };

export interface Launch { mint: string; name: string; symbol: string; dev: string; uri: string }
export interface Holders {
  holders: number; top10: number; trades: number; partial?: boolean;
  dev: { wallet: string; pct: number; maxPct: number; sol: number; sold: "none" | "part" | "all" };
  snipers: { n: number; pct: number; maxPct: number; sold: number };
  bundle: { n: number; pct: number; maxPct: number; sold: number };
  top: { wallet: string; pct: number; sol: number; trades: number; tag: string | null }[];
}

const get = <T>(p: string) => fetch(BLIX + p, { headers: H }).then((r) => r.json() as Promise<T>);
export const pulse = () => get<{ newPairs: any[]; stretch: any[]; migrated: any[] }>("/api/pulse");
export const holders = (mint: string, top = 25) => get<Holders>(`/api/holders/${mint}?top=${top}`);
export const candles = (mint: string, tf = 60) => get<any[]>(`/api/candles/${mint}?tf=${tf}`);
export const quote = (mint: string, side: "buy" | "sell", amount: number, slip = 300) =>
  get<any>(`/api/quote?mint=${mint}&side=${side}&amount=${amount}&slip=${slip}`);

export async function onLaunch(fn: (c: Launch) => void) {
  const res = await fetch(BLIX + "/api/stream", { headers: H });
  let buf = "", event = "";
  for await (const chunk of res.body!.pipeThrough(new TextDecoderStream())) {
    buf += chunk;
    for (const line of buf.split("\n").slice(0, -1)) {
      if (line.startsWith("event:")) event = line.slice(6).trim();
      else if (line.startsWith("data:") && event === "launch") fn(JSON.parse(line.slice(5)));
    }
    buf = buf.slice(buf.lastIndexOf("\n") + 1);
  }
}

Screen a coin's holders

import { holders, onLaunch, pulse } from "./blix.js";

export async function screen(mint: string) {
  const h = await holders(mint, 10);
  if (h.partial) return ["seen mid-life"];
  const flags: string[] = [];
  if (h.dev.pct > 5) flags.push(`dev holds ${h.dev.pct.toFixed(1)}%`);
  if (h.dev.sold === "all") flags.push("dev sold everything");
  if (h.bundle.pct > 20) flags.push(`bundles hold ${h.bundle.pct.toFixed(1)}%`);
  if (h.snipers.pct > 20) flags.push(`snipers hold ${h.snipers.pct.toFixed(1)}%`);
  if (h.top10 > 40) flags.push(`top 10 hold ${h.top10.toFixed(1)}%`);
  return flags;
}

// log every launch, and screen the final stretch every 5 seconds
onLaunch((c) => console.log("launch", c.symbol, c.mint));
setInterval(async () => {
  for (const c of (await pulse()).stretch) {
    const flags = await screen(c.mint);
    if (!flags.length && c.hl.h >= 50) console.log("clean:", c.symbol, Math.round(c.progress * 100) + "%");
  }
}, 5000);

In the browser

Signed in on blixvip.com, the browser already has your session: fetch("/api/pulse").then(r => r.json()) in the console works as is, and new EventSource("/api/stream") gives you the live stream with addEventListener("launch", …). A page on another site cannot use your session; run the code from Node instead.

Run it

export BLIX_SESSION="<from your Developers page>"
node --experimental-strip-types bot.ts   # Node 22.6+; or compile with tsc
# or
npx tsx bot.ts

The BLIX community

Every account comes with the BLIX Discord: the people trading on the terminal, the narratives as they form, feature drops before they are announced, and the team answering questions. Join the Discord once you have signed up.

More for developers

BLIX is independent and not affiliated with pump.fun. Facts about pump.fun were checked against public sources on October 10, 2026 and can change.

Frequently asked questions

Is there a pump.fun npm package?

Not an official one. BLIX needs no package: the API is HTTPS and JSON, so fetch is the client.

Does it work with TypeScript?

Yes. The interfaces above cover the common shapes; everything else is plain JSON you can type as you go.

Can I use it from a React or Next.js app?

From the server side with your session, yes. In the browser only a page on blixvip.com carries the session.

Can I trade from JavaScript?

The API quotes trades through Jupiter and runs your paper desk; it never signs. Real trades are made in the terminal.

Your next move starts here.

Create your BLIX account to access the trading terminal. Join the Discord community to stay connected.