Getting Started with Yellowstone gRPC(Geyser Plugin)
A comprehensive setup guide for connecting to Solana's real-time data stream using Yellowstone gRPC.
Introduction
With Dedicated Node, you can leverage the powerful Yellowstone gRPC interface to receive real-time updates about on-chain events. The Geyser plugin provides a high-performance, low-latency stream of Solana blockchain data.
What is gRPC and Why Use It?
gRPC (Google Remote Procedure Call) is a modern, high-performance framework that enables client and server applications to communicate transparently. For Solana blockchain data streaming, gRPC offers several key advantages:
Language Agnostic: Using Protocol Buffers (protobuf), gRPC allows you to write clients in multiple programming languages while maintaining type safety and consistency.
Binary Protocol: Unlike JSON-based REST APIs, gRPC uses a binary protocol that is more efficient in terms of bandwidth and parsing overhead.
Bi-directional Streaming: gRPC supports bi-directional streaming, perfect for receiving continuous updates about blockchain events.
Type Safety: The protobuf schema ensures type safety across all supported languages.
Getting Started
Your Helius Dedicated Node exposes the Yellowstone gRPC interface on port 2053. The service provides various subscription options for different types of blockchain data:
Account updates
Slot updates
Transaction information
Block data
Entry data
Installation & Project Setup
Before diving into specific examples in the following sections, let's set up our development environment for each supported language:
TypeScript/JavaScript
Create a new project:
Install dependencies:
Create TypeScript configuration:
Rust
Create a new project:
Add to
Cargo.toml
:
Go
Create a new project:
Initialize Go module:
Create project structure:
Install required dependencies:
Your
go.mod
should look similar to this:
These setups provide the foundation for the examples in the following sections. Each subsequent guide will build upon this basic setup to demonstrate specific monitoring capabilities.
Available Subscriptions
The Yellowstone gRPC interface allows you to subscribe to various types of data:
1. Account Updates
Subscribe to changes in account data, including:
Account balance changes
Data modifications
Ownership changes
Creation/deletion events
2. Slot Updates
Receive notifications about:
New slots
Confirmed slots
Finalized slots
Parent slot relationships
3. Transaction Information
Get real-time updates about:
Transaction signatures
Transaction status
Success/failure information
Account involvement
4. Block Data
Access comprehensive block information:
Block metadata
Included transactions
Account updates
Entry information
5. Entry Data
Obtain low-level entry information:
Entry indexes
Transaction counts
Entry hashes
Commitment Levels
Yellowstone gRPC supports three commitment levels:
PROCESSED
: Fastest, but may include unconfirmed dataCONFIRMED
: Balance between speed and finalityFINALIZED
: Highest level of finality
Choose the appropriate commitment level based on your application's requirements for data finality versus latency.
Next Steps
Continue to the following sections to learn about the core subscription types in Yellowstone gRPC:
Account Monitoring - Monitor account updates and changes
Transaction Monitoring - Track transactions and their status
Slot and Block Monitoring - Monitor slots, blocks, and their metadata
Entry Monitoring - Track low-level block entries and execution
Each guide includes complete working examples in TypeScript, Rust, and Go, along with advanced filtering patterns and best practices.
Last updated
Was this helpful?