ThorPulse NATS
ThorPulse NATS documentation
ThorPulse is a high-performance Solana data streaming service that delivers real-time blockchain data with ultra-low latency.
What is ThorPulse?
ThorPulse consumes Solana shreds from ThorShredStream, processes them through a high-performance pipeline, and delivers parsed data (slots, transactions, accounts, entries, blocks) over an embedded NATS server using Yellowstone-compatible protobuf format.
Key Features:
Ultra-low latency data delivery (sub-millisecond)
Yellowstone-compatible protobuf format
Server-side filtering with SubscribeRequest
JWT authentication with subscription tiers
Quick Links
Quick Start Guide - Get connected in 5 minutes
Authentication - JWT credentials and tier system
Subscription Reference - How to subscribe to data
Topic Reference - Complete topic schema
SDKs
Installation:
go get github.com/thorlabsDev/thorpulse-goExample usage:
import "github.com/thorlabsDev/thorpulse-go"
c, err := client.Connect(client.DefaultConfig("nats://ny-rpc.thornode.io:4222"))
defer c.Close()
c.SubscribeSlots(func(slot *client.SlotUpdate) {
fmt.Printf("Slot %d: %s\n", slot.Slot, slot.Status)
})More: Go SDK Documentation
Add to Cargo.toml:
[dependencies]
thorpulse-client = "0.1"Example usage:
use thorpulse_client::ThorPulseClient;
let client = ThorPulseClient::connect_simple("nats://ny-rpc.thornode.io:4222").await?;
let mut slots = client.subscribe_slots().await?;
while let Some(slot) = slots.recv().await {
println!("Slot {}: {:?}", slot?.slot, slot?.status);
}More: Rust SDK Documentation
Documentation Structure
docs/
├── getting-started/
│ ├── quickstart.md # 5-minute quick start
│ └── authentication.md # JWT credentials and tiers
├── reference/
│ ├── topics.md # Complete topic schema
│ └── subscriptions.md # Subscription patterns and filtersData Types
ThorPulse streams the following Solana data types:
Slots
Slot status updates
slots.{slot}.{status}
Transactions
Parsed transactions
txs.program.{id}.{slot}
Accounts
Account state changes
accounts.pubkey.{pk}.{slot}
Entries
Ledger entries
entries.{slot}.{index}
Blocks
Complete blocks
blocks.{slot}
Getting Help
Contact Thor Labs for support
See SDK documentation for working code examples
License
ThorPulse is licensed under the MIT License.
Last updated