← Articles
Shipstern: Solana program parsing toolkit logo
solana

Shipstern: Solana program parsing toolkit

· SEP 6, 2026 ·
Read
Share

include_shipstern_parser! expands a Codama IDL into account and instruction parsers. Runtime 0.8.0. Workspace publish is false. Clone the repo.

devrels.xyz/a/304

Shipstern is a Rust framework for program-aware Solana data pipelines. Raw change events, in the Yellowstone gRPC shape, go through pluggable parsers. You log, store, or stream structured accounts and instructions. Yellowstone Vixen was the old name. The repo is now solana-rpc/shipstern, in the Solana RPC GitHub org. Workspace version 0.8.0. MIT. publish = false on the workspace. Clone the git tree.

espi announced the move on 6 September 2026. Maintainers listed in the README: Jupiter, ABK Labs, Triton One. The Yellowstone gRPC streaming piece stays.

Runtime

Build a shipstern::Runtime with a source and pipelines. An account pipeline and an instruction pipeline each take a parser and one or more handlers. Prometheus metrics on /metrics. Config is a TOML file. Example: Shipstern.example.toml.

rust
use shipstern::Pipeline;
use shipstern_spl_token_parser::{AccountParser, InstructionParser};
use shipstern_yellowstone_grpc_source::YellowstoneGrpcSource;

shipstern::Runtime::<YellowstoneGrpcSource>::builder()
    .account(Pipeline::new(AccountParser, [Logger]))
    .instruction(Pipeline::new(InstructionParser, [Logger]))
    .build(config)
    .run();

Built-in parsers in the README: SPL Token shipstern-spl-token-parser and Token Extensions shipstern-spl-token-extensions-parser. The workspace also has bpf-loader, block-meta, slot, and stake-pool parser crates.

Codegen

include_shipstern_parser! from shipstern-proc-macro 0.8.0 reads a Codama JSON IDL off disk and expands account and instruction parsers inline. Pair it with shipstern-parser 0.8.0 and borsh. Variants that share a discriminator but differ in account count are tried largest first. Same discriminator and same account count need a custom InstructionResolver.

rust
use shipstern_proc_macro::include_shipstern_parser;

include_shipstern_parser!("path/to/idl.json");

Sources and sink

Official sources in the README: shipstern-yellowstone-grpc-source (Dragon's Mouth), shipstern-yellowstone-fumarole-source (limited beta, Triton access), shipstern-solana-rpc-source (getProgramAccounts), shipstern-solana-snapshot-source. The workspace also ships shipstern-jetstream-source and shipstern-kafka-sink. Fumarole is still limited beta. Contact Triton for access. Do not treat it as a public endpoint list.

What espi said

After ABK Labs was acquihired by Jupiter, Shipstern powers Janus, Jupiter's internal on-chain feed. Teams subscribe to program topics. Kafka offsets hold the cursor. Parsed events go to protobufs and a schema registry. espi wrote that Portfolio API latency moved from 10-15 seconds to P99 800 ms and P50 150 ms. Jupiter Lend, mobile notifications, and spot warehouse work sit on that path. Those numbers are Jupiter's, from the post, not a public SLA.

253 stars, 97 forks on the announcement day. Default branch main. Docs in-repo: Codama parser generation, mock fixtures, examples. X: @espicodes.

Keep reading

Get new articles in your inbox

Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.