RPCFast
Main PageChainsPricingBlog
  • Welcome to RPC Fast
  • 🐇RPC Fast API
    • Introduction
    • Getting Started
    • Pricing Plan
    • Growth Plan
    • Compute Units (CUs)
    • CUPS (Rate Limit)
    • Archive Node
    • JSON Web Token (JWT)
    • Ethereum API
      • eth_accounts - Ethereum
      • eth_blockNumber - Ethereum
      • eth_call - Ethereum
      • eth_chainId - Ethereum
      • eth_estimateGas - Ethereum
      • eth_gasPrice - Ethereum
      • eth_getBalance - Ethereum
      • eth_getBlockByHash - Ethereum
      • eth_getBlockByNumber - Ethereum
      • eth_getBlockTransactionCountByHash - Ethereum
      • eth_getBlockTransactionCountByNumber - Ethereum
      • eth_getCode - Ethereum
      • eth_getFilterChanges - Ethereum
      • eth_getFilterLogs - Ethereum
      • eth_getLogs - Ethereum
      • eth_getProof - Ethereum
      • eth_getStorageAt - Ethereum
      • eth_getTransactionByBlockHashAndIndex - Ethereum
      • eth_getTransactionByBlockNumberAndIndex - Ethereum
      • eth_getTransactionByHash - Ethereum
      • eth_getTransactionCount - Ethereum
      • eth_getTransactionReceipt - Ethereum
      • eth_getUncleByBlockHashAndIndex - Ethereum
      • eth_getUncleByBlockNumberAndIndex - Ethereum
      • eth_getUncleCountByBlockNumber - Ethereum
      • eth_getUncleCountByBlockHash - Ethereum
      • eth_newBlockFilter - Ethereum
      • eth_newFilter - Ethereum
      • eth_newPendingTransactionFilter - Ethereum
      • eth_sendRawTransaction - Ethereum
      • eth_subscribe - Ethereum
      • eth_syncing - Ethereum
      • eth_uninstallFilter - Ethereum
      • eth_unsubscribe - Ethereum
      • net_listening - Ethereum
      • net_version - Ethereum
      • web3_clientVersion - Ethereum
      • web3_sha3 - Ethereum
    • Solana Trader API
      • Websocket endpoints
    • Yellowstone gRPC
    • Jito Shredstream gRPC
    • Solana node benefits
  • 🧩GUIDES
    • Intro
    • How to Add RPC Fast Endpoints to MetaMask
    • How to Add Polygon to MetaMask
    • How to check Solana RPC latency
  • Community
  • Use of Cookies
  • Support
  • Transaction Simulation
  • 🎯Solana
    • Page 1
Powered by GitBook
On this page
  • Benefits
  • What's inside Solana shred?
  • How to create a direct subscription to Jito Shredstream?
  • How to decode Solana shreds into human-readable format?
  • Pricing
  1. RPC Fast API

Jito Shredstream gRPC

PreviousYellowstone gRPCNextSolana node benefits

Last updated 26 days ago

Benefits

All RPC Fast dedicated Solana nodes by design receive extra shreds from to boost node performance.

However if you're a trader or need to receive transaction data earlier than your competitors, simple subscription to to retrieve transactions data in real time might not be sufficient for you – Solana RPC node still needs to insert shreds, process and validate them, before sending them via Yellowstone gRPC subscription. To overcome this behavior, you can subscribe directly to Jito's Shredstream using its gRPC interface.

So, using direct gRPC subscription to Jito Shredstream endpoint, you will

  • receive transactions ~2 minutes earlier on average, compared to Yellowstone gRPC

  • receive even more transactions, including failed and votes

  • avoid time-consuming replay of transactions by RPC node

Test results can be found at

What's inside Solana shred?

Shred is an essential component of Solana architecture. A shred is a fragment of a Solana block. Instead of transmitting entire blocks, Solana breaks them down into smaller pieces called shreds, which are easier to send and recover over the network.

Each shred contains unordered transactions data, slot number, it's index inside the slot.

When using Shredstream gRPC, shreds are already reconstructed to Solana entries, which contains already ordered and serialized transactions.

For more info about the format of Solana entry, please refer to documentation

How to create a direct subscription to Jito Shredstream?

  1. If you already have a Solana dedicated node, you can use following endpoint for gRPC subscription: sol-shredstream-CUSTOMER.rpcfast.net:443

  2. To decode gRPC stream, you need protobuf files. You can get them here:

  3. Install software onto your machine.

  4. Launch grpcurl command from the directory where protobuf files has been downloaded:

    grpcurl \
      -proto shredstream.proto \
      -H 'x-token: YOUR_AUTH_TOKEN' \
      sol-shredstream-CUSTOMER.rpcfast.net:443 \
      shredstream.ShredstreamProxy/SubscribeEntries
  5. You will start to receive encoded Solana entries.

How to decode Solana shreds into human-readable format?

  1. Run the following command inside repository to download code example

    git submodule init && git submodule update --recursive --remote --force
  2. Navigate to jito-shredstream-proxy/examples directory.

  3. Set environment variables

    export SHREDSTREAM_GRPC_URL=https://sol-shredstream-CUSTOMER.rpcfast.net
    export SHREDSTREAM_AUTH_TOKEN=YOUR-AUTH-TOKEN
  4. Launch code example

    cargo run --example deshred
  5. You will receive decoded transactions for each slot.

  6. If you want to integrate this to your application code or workflow, please use deshred.rs as an example.

Pricing

Clone the repository

tools onto your machine.

Jito Shredstream gRPC endpoint is bundled as a free add-on to our offering.

🐇
Jito Shredstream
Yellowstone gRPC endpoint
https://github.com/dysnix/solana-test/tree/main/geyser-vs-shredstream
https://docs.rs/solana-entry/latest/solana_entry/entry/struct.Entry.html
https://github.com/jito-labs/mev-protos
grpcurl
https://github.com/dysnix/solana-test
Install Rust language
RPC Fast Solana dedicated node