npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sol-parser-sdk-nodejs

v0.5.8

Published

High-performance Solana DEX event parser for Node.js/TypeScript (Yellowstone gRPC, log parsing)

Readme

Support This Project

This SDK is completely free and open source. However, maintaining and continuously updating it requires significant AI computing resources and token consumption. If this SDK helps with your development, consider making a monthly SOL donation — any amount is appreciated and helps keep this project alive!

Donation Wallet: 6oW7AXz1yRb57pYSxysuXnMs2aR1ha5rzGzReZ1MjPV8


Other language SDKs

| Language | Repository | |----------|------------| | Rust | sol-parser-sdk | | Node.js | sol-parser-sdk-nodejs | | Python | sol-parser-sdk-python | | Go | sol-parser-sdk-golang |


What This SDK Is For

sol-parser-sdk-nodejs is the TypeScript/Node.js implementation of the FnZero Solana DEX parser SDK. It is built for bots, indexers, copy-trading services, sniper pipelines, and backend systems that need typed DEX events from Yellowstone gRPC, Jito ShredStream, RPC transactions, or protocol account data.

| Area | Coverage | |------|----------| | Parser inputs | Yellowstone gRPC, ShredStream, RPC transactions, encoded transactions, protocol account data | | DEX protocols | PumpFun, PumpSwap, Pump Fees, Raydium LaunchLab, Raydium CPMM, Raydium CLMM, Raydium AMM V4, Meteora DAMM v2, Meteora DLMM, Meteora DBC, Orca Whirlpool | | Use cases | Real-time DEX event parsing, token launch monitoring, copy trading, sniper bots, account filling, JSON event pipelines | | Runtime | Node.js 18+, TypeScript, npm/yarn/pnpm projects |


Release notes

v0.5.8

  • Syncs parser parity with the Rust SDK event model and program routing.
  • Keeps PumpFun create instruction names and ShredStream quote-mint handling aligned across language SDKs.
  • Maintains low-latency gRPC/RPC/ShredStream parsing paths for supported DEX protocols.

v0.5.6

  • Adds Meteora DBC log parsing with program-context routing and filter parity.
  • Adds Raydium CLMM/CPMM and Orca account parsers and exports.
  • Preserves RPC block transaction indexes and active program context for log parsing.
  • Skips ShredStream instruction parsing early for account-only or empty include-only filters.
  • Tightens ShredStream/RPC filter behavior to match Rust/Python/Go low-latency paths.

v0.5.5

  • Aligns ShredStream parsing with Rust/Python/Go for low-latency static-account paths.
  • Uses default pubkey placeholders for V0 ALT-loaded instruction accounts instead of dropping the instruction.
  • Adds discriminator fallback when the ShredStream outer program id is ALT-loaded.
  • Improves Pump.fun v2 short-account parsing, create/create_v2 handling, and event-type filter parity.
  • Refreshes multi-protocol routing for Pump.fun, PumpSwap, Pump Fees, Raydium, Orca, and Meteora paths.

How to use

1. Install

From npm

npm install [email protected]

From source (folder may be named sol-parser-sdk-ts in a monorepo)

git clone https://github.com/0xfnzero/sol-parser-sdk-nodejs
cd sol-parser-sdk-nodejs
npm install
# npm run build   # only if you import from dist/ instead of examples/tsx → src

2. Environment (Yellowstone gRPC examples)

At the package root (next to package.json):

cp .env.example .env
# Set GRPC_URL and GRPC_TOKEN

Run examples from that directory so .env is picked up.

3. Smoke test

npx tsx scripts/test-grpc-ts.ts

Requires GRPC_URL and GRPC_TOKEN. See .env.example for optional vars (MAX_EVENTS, TIMEOUT_MS, etc.).

4. Minimal gRPC subscribe + parse

import {
  YellowstoneGrpc,
  parseDexEventsFromGrpcTransactionInfo,
  dexEventToJsonString,
} from "sol-parser-sdk-nodejs";

const ENDPOINT = process.env.GRPC_URL?.trim() ?? "";
const X_TOKEN = process.env.GRPC_TOKEN?.trim() ?? "";
if (!ENDPOINT || !X_TOKEN) throw new Error("GRPC_URL and GRPC_TOKEN are required");

const client = new YellowstoneGrpc(ENDPOINT, X_TOKEN);

const filter = {
  account_include: [
    "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", // PumpFun
    "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", // PumpSwap
  ],
  account_exclude: [],
  account_required: [],
  vote: false,
  failed: false,
};

const sub = await client.subscribeTransactions(filter, {
  onUpdate: (update) => {
    const txInfo = update.transaction?.transaction;
    if (!txInfo?.transactionRaw || !txInfo.metaRaw) return;
    const slot = update.transaction!.slot;
    const events = parseDexEventsFromGrpcTransactionInfo(txInfo, slot, undefined);
    for (const ev of events) console.log(dexEventToJsonString(ev, 2));
  },
  onError: (err) => console.error(err.message),
  onEnd: () => {},
});

console.log("subscribed", sub.id);

Lighter path: parseLogsOnly(logs, signature, slot, …) — no transactionRaw; use applyAccountFillsToLogEvents if you need filled accounts without full gRPC meta.

5. ShredStream (HTTP — not Yellowstone gRPC)

Uses SHREDSTREAM_URL or SHRED_URL (default http://127.0.0.1:10800), or CLI --url. Not GRPC_URL.

The client decodes gRPC entries bytes in TypeScript (same layout as the Go shredstream/entries_decode path) and deserializes wire transactions with @solana/web3.jsno WebAssembly or wasm-pack build.

npx tsx examples/shredstream_example.ts -- --url=http://127.0.0.1:10800

Without RPC, V0 ALT-loaded account indexes are represented with default pubkey placeholders and parsed best-effort. shredstream_pumpfun_json.ts can also use Solana RPC_URL (or --rpc) to expand ALTs when exact loaded-account fields are required.


Examples

From the package root after npm install. Examples use npx tsx and load src/ directly — no npm run build required for examples. Source is one file per row (click to open on GitHub or npm).

| Description | Run command | Source | |-------------|-------------|--------| | Scripts | | | | gRPC integration test (PumpFun + PumpSwap, account-filled DexEvent) | npx tsx scripts/test-grpc-ts.ts | test-grpc-ts.ts | | Debug: print metaRaw / log structure | npx tsx scripts/debug-grpc-ts.ts | debug-grpc-ts.ts | | PumpFun | | | | Pretty-print full JSON DexEvent over gRPC | npx tsx examples/pumpfun_grpc_json.ts | pumpfun_grpc_json.ts | | PumpFun events + metrics | npx tsx examples/pumpfun_with_metrics.ts | pumpfun_with_metrics.ts | | PumpFun trade filter | npx tsx examples/pumpfun_trade_filter.ts | pumpfun_trade_filter.ts | | Quick PumpFun connection test | npx tsx examples/pumpfun_quick_test.ts | pumpfun_quick_test.ts | | PumpSwap | | | | Pretty-print full JSON DexEvent over gRPC | npx tsx examples/pumpswap_grpc_json.ts | pumpswap_grpc_json.ts | | PumpSwap events + metrics | npx tsx examples/pumpswap_with_metrics.ts | pumpswap_with_metrics.ts | | PumpSwap ultra-low latency | npx tsx examples/pumpswap_low_latency.ts | pumpswap_low_latency.ts | | Meteora DAMM | | | | Meteora DAMM V2 events | npx tsx examples/meteora_damm_grpc.ts | meteora_damm_grpc.ts | | ShredStream (HTTP, not Yellowstone gRPC; see step 5 above) | | | | Ultra-low-latency subscribe + queue / latency stats. URL: --url / SHREDSTREAM_URL / .env (default http://127.0.0.1:10800). | npx tsx examples/shredstream_example.ts | shredstream_example.ts | | PumpFun DexEvent JSON from ShredStream; static ALT fallback works without RPC, and Solana RPC (RPC_URL or --rpc) expands full ALT accounts when needed. | npx tsx examples/shredstream_pumpfun_json.ts | shredstream_pumpfun_json.ts | | Multi-protocol | | | | Subscribe to all DEX protocols | npx tsx examples/multi_protocol_grpc.ts | multi_protocol_grpc.ts | | Utility | | | | Verify onUpdate sync errors do not kill the gRPC stream | npx tsx examples/grpc_onupdate_error_test.ts | grpc_onupdate_error_test.ts | | Parse tx by signature (parseTransactionFromRpc; not gRPC). Set TX_SIGNATURE in .env or env. | npx tsx examples/parse_tx_by_signature.ts | parse_tx_by_signature.ts |

npm run aliases (same source files as the ShredStream rows above):

Env: gRPC examples need GRPC_URL + GRPC_TOKEN. ShredStream uses SHREDSTREAM_URL / SHRED_URL or --url; shredstream_pumpfun_json also needs RPC_URL / --rpc. See .env.example.


Protocols

PumpFun, PumpSwap, Raydium AMM V4 / CLMM / CPMM, Orca Whirlpool, Meteora DAMM V2 / DLMM, Raydium LaunchLab (see src/instr/).


Useful exports

  • parseDexEventsFromGrpcTransactionInfo — needs transactionRaw + metaRaw (Rust gRPC parity).
  • parseRpcTransaction / parseTransactionFromRpc — HTTP RPC path.
  • dexEventToJsonString — BigInt-safe JSON.

Development

npm run build
npm run check:migration   # parity checks; needs build

License

MIT — https://github.com/0xfnzero/sol-parser-sdk-nodejs