### Installing Goyser Go Library Source: https://github.com/weeaa/goyser/blob/main/README.md Command to install the latest version of the goyser library using the Go module system. Requires Go 1.22.0 or higher. ```Shell go get github.com/weeaa/goyser@latest ``` -------------------------------- ### Subscribing to Solana Account Updates using Goyser Yellowstone Client Source: https://github.com/weeaa/goyser/blob/main/README.md Demonstrates how to create a Yellowstone Geyser client, add a stream, subscribe to account updates for a specific address, process incoming updates, and unsubscribe. Requires a running Geyser RPC endpoint. ```Go package main import ( "context" "github.com/weeaa/goyser/yellowstone_geyser" geyser_pb "github.com/weeaa/goyser/yellowstone_geyser/pb" "log" "os" "time" ) const subAccount = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" func main() { ctx := context.Background() // get the geyser rpc address geyserRPC := os.Getenv("GEYSER_RPC") // create geyser client client, err := yellowstone_geyser.New(ctx, geyserRPC, nil) if err != nil { log.Fatal(err) } // create a new subscribe client which is tied, for our example we will name it main // the created client is stored in client.Streams if err = client.AddStreamClient(ctx, "main", geyser_pb.CommitmentLevel_CONFIRMED); err != nil { log.Fatal(err) } // get the stream client streamClient := client.GetStreamClient("main") if streamClient == nil { log.Fatal("client does not have a stream named main") } // subscribe to the account you want to see txns from and set a custom filter name to filter them out later if err = streamClient.SubscribeAccounts("accounts", &geyser_pb.SubscribeRequestFilterAccounts{ Account: []string{subAccount}, }); err != nil { log.Fatal(err) } // loop through the stream and print the output for out := range streamClient.Ch { // u can filter the output by checking the filters go func() { filters := out.GetFilters() for _, filter := range filters { switch filter { case "accounts": log.Printf("account filter: %+v", out.GetAccount()) default: log.Printf("unknown filter: %s", filter) } } }() break } time.Sleep(5 * time.Second) // unsubscribe from the account if err = streamClient.UnsubscribeAccounts("accounts", subAccount); err != nil { log.Fatal(err) } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.