Vixen Data Pipelines

Real-time Solana program data streaming

Introduction

Vixen Streams is a high-performance gRPC service that provides real-time, parsed Solana blockchain data streams. It solves the critical challenge of efficiently monitoring and reacting to on-chain activities by delivering pre-parsed account states and transaction instructions for specific Solana programs.

Powered by the Yellowstone Vixen open-source framework which provides the building blocks to create custom indexes for specific programs, accounts, and transactions. Vixen Streams enables developers to build responsive applications that can react to on-chain events without the complexity of building and maintaining custom parsing infrastructure.

The Problem

Monitoring blockchain activity traditionally requires polling RPC endpoints, or custom implementation of parsing and filtering transactions logic. This approach is harder to scale and requires significant resources to maintain.

Vixen Streams addresses these pain points by providing:

  • gRPC Streaming: Real-time, high performance, parsed Solana blockchain data streams

  • Support for multiple programs parsing: Detailed parsing of program-specific data structures

  • Handling scale: Built to process high volumes of blockchain data efficiently

  • TypeScript SDK: Easy to use client SDKs for TypeScript applications with token-based authentication support. Abstracting away the complexity of the gRPC API and proto files management. Providing a single updated source for consuming the data.

Getting Started

Install the Typescript SDK

npm install @triton-one/vixen-stream

Usage

import {
  ProgramStreamsServiceClient,
  VixenParserTypesUnion,
  credentials,
  createCallCredentials,
  ProgramAddress,
} from "@triton-one/vixen-stream";

const creds = credentials.createSsl();

// <token> is your Triton One authentication token
const callCredentials = createCallCredentials("<token>");

const combinedCredentials = credentials.combineChannelCredentials(
  creds,
  callCredentials
);

// <endpoint> is your Triton One RPC endpoint
const client = new ProgramStreamsServiceClient(
  "<endpoint>",
  combinedCredentials
);

// Subscribe to account and instruction updates for the token keg program
let stream = client.Subscribe({
  program: ProgramAddress.Token,
});

// Handle the update events as you see fit. Write them to a database, call an API, or submit a Solana transaction.
stream.on("data", function (update: VixenParserTypesUnion) {
  console.log(update);
});

stream.on("end", () => console.log("end"));
stream.on("error", (e: Error) => console.log("error: ", e));

Supported Programs

The following table lists the supported programs and their corresponding addresses. If you need support for additional programs, please reach out to our support.

Program
Address

Token

TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

Token22

TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb

OrcaWhirlpool

whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc

RaydiumCLMM

CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK

Last updated

Was this helpful?