Go
Official Go client library for ThorStreamer.
Installation
go get github.com/thorlabsDev/ThorStreamer/sdks/[email protected]Requirements
Go 1.23.2+
Quick Start
package main
import (
"context"
"log"
"os"
"time"
"github.com/joho/godotenv"
thorclient "github.com/thorlabsDev/ThorStreamer/sdks/go/client"
)
func main() {
godotenv.Load()
client, err := thorclient.NewClient(thorclient.Config{
ServerAddr: os.Getenv("SERVER_ADDRESS"),
Token: os.Getenv("AUTH_TOKEN"),
DefaultTimeout: 30 * time.Second,
})
if err != nil {
log.Fatal(err)
}
defer client.Close()
stream, err := client.SubscribeToTransactions(context.Background())
if err != nil {
log.Fatal(err)
}
for {
msg, err := stream.Recv()
if err != nil {
if thorclient.IsStreamDone(err) {
break
}
log.Printf("Error: %v", err)
break
}
if tx := msg.GetTransaction(); tx != nil {
log.Printf("Transaction: slot=%d", tx.Transaction.Slot)
}
}
}API Reference
Creating a Client
SubscribeToTransactions
SubscribeToSlotStatus
SubscribeToWalletTransactions
Monitor up to 10 wallet addresses:
SubscribeToAccountUpdates
Monitor accounts with optional owner filtering:
Error Handling
Full Example
See examples/golang-advanced for a complete implementation with filtering, logging, and event handling.