gRPC Streaming Overview
High-performance Yellowstone-compatible gRPC streaming for real-time and historical blockchain data
gRPC Streaming
FortiBlox gRPC Streaming provides high-performance, Yellowstone-compatible gRPC streaming for real-time and historical access to X1 Blockchain data. Get low-latency transaction, block, account, and slot updates streamed directly to your application.
What is gRPC Streaming?
gRPC Streaming is a production-ready streaming service that provides:
- Real-time data streaming from Redis pub/sub (< 10ms latency)
- Historical data replay from TimescaleDB for any slot range
- Yellowstone compatibility - drop-in replacement for Helius LaserStream
- Advanced filtering - account include/exclude, vote filtering, commitment levels
- High performance - handles 1000+ concurrent streams
Key Features
Yellowstone gRPC Compatible
100% compatible with Yellowstone gRPC protocol - use existing client libraries and code without modifications.
Network Support
| Network | Access Tier | Endpoint |
|---|---|---|
| Mainnet | Professional+ only | grpc.fortiblox.com:10002 |
Professional Tier Required: Mainnet gRPC streaming requires Professional or Enterprise tier.
Streaming Methods
| Method | Description | Status | Use Case |
|---|---|---|---|
SubscribeSlots | Stream slot updates in real-time | LIVE | Chain head tracking, block production monitoring |
SubscribeTransactions | Stream transaction updates | LIVE | DeFi monitoring, swap tracking |
SubscribeBlocks | Stream block updates | LIVE | Block explorers, network monitoring |
SubscribeAccounts | Stream account updates | LIVE | Wallet monitoring, balance tracking |
Ping | Health check | Available | Connection testing |
NEW: Account Streaming is Now Live! All 5 gRPC methods are now operational. Monitor account balance changes, wallet activity, and program-owned accounts in real-time.
Use Cases
Slot Tracking & Chain Head Monitoring
Stream real-time slot updates for block production monitoring:
const stream = client.SubscribeSlots({});
stream.on('data', (slot) => {
console.log(`Slot: ${slot.slot}, Parent: ${slot.parent}, Status: ${slot.status}`);
});DeFi Protocol Monitoring
Stream all DEX swaps in real-time:
const stream = client.SubscribeTransactions({
account_include: ['JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4'],
filter_votes: true,
commitment: 'CONFIRMED'
});NFT Marketplace Indexing
Track all NFT sales on Magic Eden:
request = geyser_pb2.SubscribeTransactionsRequest(
account_include=['M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K'],
filter_votes=True,
commitment=geyser_pb2.FINALIZED
)
for tx in stub.SubscribeTransactions(request):
print(f"NFT Sale: {tx.signature}")Historical Data Replay
Replay transactions from a specific slot range:
const stream = client.SubscribeTransactions({
start_slot: 100000,
end_slot: 100100,
filter_votes: true
});Block Explorer
Real-time block updates:
for block in stub.SubscribeBlocks(geyser_pb2.SubscribeBlocksRequest()):
print(f"Block {block.slot}: {block.transaction_count} txs")Authentication
gRPC streaming requires API key authentication via metadata:
const metadata = new grpc.Metadata();
metadata.add('x-api-key', process.env.FORTIBLOX_API_KEY);
const stream = client.SubscribeTransactions(request, metadata);Rate Limits & Credits
| Tier | Concurrent Streams | Credits per Hour |
|---|---|---|
| Professional | 100 | 10,000 |
| Enterprise | Custom | Custom |
Quick Start
Getting Started
Install client libraries and connect to gRPC streaming
Slot Streaming
Stream real-time slot updates for chain monitoring (NEW)
Transaction Streaming
Stream transactions with advanced filters
Account Streaming
Subscribe to account updates with filtering
Historical Replay
Replay historical data from specific slot ranges
Supported Languages
Official client libraries and examples:
- JavaScript/Node.js -
@grpc/grpc-js - Python -
grpcio - Rust -
tonic - Go -
google.golang.org/grpc
All examples use standard gRPC tooling and are compatible with existing Yellowstone clients.
Performance
- Latency: < 10ms for real-time streams (Redis pub/sub)
- Throughput: Handles 1000+ concurrent streams per instance
- Historical: Batched queries with configurable batch size (default: 1000)
- Compression: gRPC compression supported
Next Steps
- Getting Started - Installation and first stream
- Slot Streaming - Stream real-time slot updates (NEW)
- Transaction Streaming - Filter and stream transactions
- Historical Replay - Replay historical data
Support
- Discord: discord.gg/fortiblox
- Email: [email protected]
- GitHub Examples: github.com/fortiblox/geyser-grpc/examples