isBlockhashValid gRPC Method - Solana gRPC
Solana gRPC is included with Scale and Business plans. On Build and Accelerate plans, it remains available via the Solana gRPC add-on.
Parameters
blockhash
bytes
REQUIRED
Loading...
Returns
valid
boolean
Loading...
slot
string
Loading...
Request
1package main23import (4"context"5"crypto/tls"6"fmt"7"log"8"time"910pb "yellowstone/proto"111213"google.golang.org/grpc"14"google.golang.org/grpc/credentials"15"google.golang.org/grpc/encoding/gzip"16"google.golang.org/grpc/keepalive"17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:10000 {10000 is the port number for gRPC}22// token will be : abcde1234567892324var (25endpoint = "YOUR_QN_ENDPOINT:10000"26token = "YOUR_TOKEN_NUMBER"27)2829func main() {30opts := []grpc.DialOption{31grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),32grpc.WithKeepaliveParams(kacp),33grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(1024*1024*1024), grpc.UseCompressor(gzip.Name)),34grpc.WithPerRPCCredentials(tokenAuth{token: token}),35}3637conn, err := grpc.NewClient(endpoint, opts...)38if err != nil {39log.Fatalf("Failed to connect: %v", err)40}41defer conn.Close()4243client := pb.NewGeyserClient(conn)4445ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)46defer cancel()4748const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z"4950isBlockhashValid, err := client.IsBlockhashValid(ctx, &pb.IsBlockhashValidRequest{51Blockhash: BLOCKHASH_TO_CHECK,52})53if err != nil {54log.Fatalf("Failed to check blockhash validity: %v", err)55}565758fmt.Printf("Slot: %d\n", isBlockhashValid.Slot)59fmt.Printf("Valid: %v\n", isBlockhashValid.Valid)606162}
1package main23import (4"context"5"crypto/tls"6"fmt"7"log"8"time"910pb "yellowstone/proto"111213"google.golang.org/grpc"14"google.golang.org/grpc/credentials"15"google.golang.org/grpc/encoding/gzip"16"google.golang.org/grpc/keepalive"17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:10000 {10000 is the port number for gRPC}22// token will be : abcde1234567892324var (25endpoint = "YOUR_QN_ENDPOINT:10000"26token = "YOUR_TOKEN_NUMBER"27)2829func main() {30opts := []grpc.DialOption{31grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),32grpc.WithKeepaliveParams(kacp),33grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(1024*1024*1024), grpc.UseCompressor(gzip.Name)),34grpc.WithPerRPCCredentials(tokenAuth{token: token}),35}3637conn, err := grpc.NewClient(endpoint, opts...)38if err != nil {39log.Fatalf("Failed to connect: %v", err)40}41defer conn.Close()4243client := pb.NewGeyserClient(conn)4445ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)46defer cancel()4748const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z"4950isBlockhashValid, err := client.IsBlockhashValid(ctx, &pb.IsBlockhashValidRequest{51Blockhash: BLOCKHASH_TO_CHECK,52})53if err != nil {54log.Fatalf("Failed to check blockhash validity: %v", err)55}565758fmt.Printf("Slot: %d\n", isBlockhashValid.Slot)59fmt.Printf("Valid: %v\n", isBlockhashValid.Valid)606162}
1import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";23// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token4// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde1234567895// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:10000 {10000 is the port number for gRPC}6// token will be : abcde12345678978const ENDPOINT = "YOUR_QN_ENDPOINT:10000";9const TOKEN = "YOUR_TOKEN_NUMBER";1011const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z";1213async function main() {14const client = new Client(ENDPOINT, TOKEN, {});1516const commitment = CommitmentLevel.CONFIRMED;1718try {19const result = await client.isBlockhashValid(BLOCKHASH_TO_CHECK, commitment);20console.log(`Blockhash validity check for ${BLOCKHASH_TO_CHECK}:`);21console.log(JSON.stringify(result, null, 2));2223} catch (error) {24console.error("Error checking blockhash validity:", error);25}26}2728main()29.catch((err) => {30console.error("Unhandled error:", err);31process.exit(1);32});
1import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";23// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token4// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde1234567895// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:10000 {10000 is the port number for gRPC}6// token will be : abcde12345678978const ENDPOINT = "YOUR_QN_ENDPOINT:10000";9const TOKEN = "YOUR_TOKEN_NUMBER";1011const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z";1213async function main() {14const client = new Client(ENDPOINT, TOKEN, {});1516const commitment = CommitmentLevel.CONFIRMED;1718try {19const result = await client.isBlockhashValid(BLOCKHASH_TO_CHECK, commitment);20console.log(`Blockhash validity check for ${BLOCKHASH_TO_CHECK}:`);21console.log(JSON.stringify(result, null, 2));2223} catch (error) {24console.error("Error checking blockhash validity:", error);25}26}2728main()29.catch((err) => {30console.error("Unhandled error:", err);31process.exit(1);32});
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free