## What is Yellowstone gRPC?

Yellowstone gRPC provides **ultra-low latency streaming** of Solana blockchain data by tapping directly into Solana leaders to receive shreds as they’re produced. This delivers real-time data to your application with minimal delay.

## High Performance

Binary protocol with efficient serialization for maximum throughput and minimal bandwidth usage

## Real-time Streaming

Bidirectional streaming with immediate subscription creation and cancellation

## Advanced Filtering

Precisely control what data you receive with account, transaction, and program filters

## Multiple Data Types

Subscribe to accounts, transactions, slots, blocks, and entries in a single stream

## Stream Types

- Accounts
- Transactions
- Slots & Blocks
- Entries

**Monitor account changes in real-time** Track balance updates, data modifications, ownership changes, and account creation/deletion events with precise filtering options.

**Account Monitoring Guide**  
[Learn how to stream account updates with filtering examples](/content/docs/grpc/account-monitoring/index.html)

**Stream transaction data and execution results** Receive transaction signatures, execution status, program interactions, and token balance changes as they happen.

**Transaction Monitoring Guide**  
[Monitor transactions with program filtering and execution details](/content/docs/grpc/transaction-monitoring/index.html)

**Track network consensus and block production** Monitor slot updates, block creation, and network state changes across different commitment levels.

**Slot & Block Monitoring Guide**  
[Stream slots and blocks with transaction details](/content/docs/grpc/slot-and-block-monitoring/index.html)

**Low-level blockchain entry monitoring** Access fundamental execution units containing transaction batches and their results.

**Entry Monitoring Guide**  
[Stream block entries with transaction batches](/content/docs/grpc/entry-monitoring/index.html)

## How to Access Yellowstone gRPC

Choose the option that best fits your needs:

### LaserStream

[LaserStream](/content/docs/laserstream/index.html) is a multi-tenant, highly available gRPC service with automatic failover and [24-hour historical replay capabilities](/content/docs/laserstream/historical-replay/index.html). Ideal for most production applications.

Get started with LaserStream from your [Helius Dashboard](https://dashboard.helius.dev/laserstream). Mainnet requires a Business or Professional plan; Devnet is available on Developer and above. See [Plans & Pricing](/content/docs/billing/plans/index.html) for details.

### Dedicated Nodes

[Dedicated Nodes](/content/docs/dedicated-nodes/index.html) offer an exclusive gRPC endpoint with guaranteed resource isolation. Best for specialized requirements and advanced operators.

### Compare gRPC Options

Need help deciding? Read our [gRPC comparison guide](/content/docs/laserstream/laserstream-vs-dedicated-nodes/index.html) to determine whether LaserStream or dedicated nodes is the best option for your use case.

## Quickstart

Ready to start streaming? Start by reading our comprehensive setup guide, or get started from your dashboard:

**Yellowstone gRPC Quickstart**  
[Covers installation, authentication, and configuring your first stream](/content/docs/grpc/quickstart/index.html)

## Subscription Request Structure

Every gRPC subscription requires a properly structured request. Here’s how to build one:

### Core Parameters

- **commitment**  
    - string  
    - required  
    - **Commitment level for data consistency**  
    - `processed` - Transaction processed by the node  
    - `confirmed` - Transaction confirmed by cluster  
    - `finalized` - Transaction finalized by cluster

- **ping**  
    - boolean  
    - **Keep connection alive** Set to `true` to receive pong messages every 15 seconds, preventing connection timeouts from load balancers or proxies.

- **accounts_data_slice**  
    - array  
    - **Optimize data transfer** Request specific byte ranges from account data:  
    ```json
    [
      { "offset": 0, "length": 100 },
      { "offset": 200, "length": 50 }
    ]
    ```

### Filter Configuration

Account Filters

- **account**  
    - array<string>  
    - Array of account public keys to monitor (logical OR)

- **owner**  
    - array<string>  
    - Array of owner public keys to monitor (logical OR)

- **filters**  
    - array<object>  
    - DataSize and Memcmp filters (logical AND):  
    ```json
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```

When multiple filter types are used, they operate as logical AND. Within arrays, values operate as logical OR.

## Example: Basic Transaction Monitoring

Here’s a complete example to get you started:

```javascript
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

This is a basic example. For production use, implement proper error handling, reconnection logic, and data processing. See our detailed guides for complete implementations.

## Advanced Resources

- **[Yellowstone gRPC Source Repository](https://github.com/rpcpool/yellowstone-grpc)** - Complete protobuf definitions and examples
- **[Discord Community](https://discord.com/invite/6GXdee3gBj)** - Get help from developers and Helius team
- **[LaserStream Documentation](/content/docs/laserstream/index.html)** - Enhanced gRPC service with additional features
