Subscribe

Open SubscribeDeshred on the same gRPC host as Yellowstone.

Decoded Shreds uses a separate Yellowstone RPC: SubscribeDeshred. Point a current Yellowstone client at the same host you already use for processed gRPC, then open that RPC instead of Subscribe.

Endpoint

https://grpc.rpcedge.com:443
https://frankfurt.grpc.rpcedge.com:443

Authenticate with x-api-key or authorization: Bearer ... metadata. The key must be on Desk or Custom. Trader keys can open Yellowstone Subscribe and will not receive this stream.

CLI

The Yellowstone sample client exposes subscribe-deshred:

cargo run --bin client -- \
  -e "https://grpc.rpcedge.com:443" \
  --x-token "YOUR_UUID_KEY" \
  subscribe-deshred \
  --vote false \
  --account-include "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"

That account is the Pump AMM program used in the published lifecycle report. Swap it for the accounts your strategy watches.

Rust

subscribe-deshred.rs
use futures::StreamExt;
use std::collections::HashMap;
use yellowstone_grpc_client::GeyserGrpcClient;
use yellowstone_grpc_proto::prelude::{
    SubscribeDeshredRequest, SubscribeRequestFilterDeshredTransactions,
};
 
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = GeyserGrpcClient::build_from_shared("https://grpc.rpcedge.com:443")?
        .x_token(Some("YOUR_UUID_KEY"))?
        .connect()
        .await?;
 
    let mut transactions = HashMap::new();
    transactions.insert(
        "intent".to_string(),
        SubscribeRequestFilterDeshredTransactions {
            vote: Some(false),
            account_include: vec!["pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA".to_string()],
            ..Default::default()
        },
    );
 
    let request = SubscribeDeshredRequest {
        transactions,
        ..Default::default()
    };
 
    let (_tx, mut stream) = client.subscribe_deshred_with_request(Some(request)).await?;
    while let Some(update) = stream.next().await {
        println!("{:?}", update?);
    }
    Ok(())
}

Use a Yellowstone crate that exposes subscribe_deshred. Older clients only have Subscribe and will not see this stream.

Filters

SubscribeDeshred supports:

  • vote
  • account_include
  • account_exclude
  • account_required

Filters match static account keys and, when the gateway resolves them, addresses loaded from lookup tables. Keep the include set narrow. A firehose burns Desk bandwidth the same way a processed transaction stream does.

There is no commitment field. The stream is pre-execution. Pair it with Yellowstone Subscribe at processed or later when you need status, logs, or account writes.

If the stream is empty or UNIMPLEMENTED

  • Confirm the key is Desk or Custom in the dashboard.
  • Confirm the client called SubscribeDeshred, not Subscribe.
  • Confirm metadata is the raw UUID, not a url-encoded value.
Subscribe · rpc edge docs