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:443Authenticate 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
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:
voteaccount_includeaccount_excludeaccount_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, notSubscribe. - Confirm metadata is the raw UUID, not a url-encoded value.