Veinticuatro horas de historia de la cadena, transmitidas a través de tu cliente Yellowstone gRPC actual. Pago por replay.
sillage.sh habla el protocolo Yellowstone gRPC como servidor, sin modificaciones. Cualquier código que ya hayas escrito contra Triton, Helius o un plugin Geyser auto-hospedado conecta sin cambios. Pasa un slot inicial. El stream arranca ahí.
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://yellowstone.helius-rpc.com", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req)) .await?;
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://replay.sillage.sh", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req.from_slot(312_840_000))) .await?;
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://replay.sillage.sh", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req.from_slot(312_840_000))) .await?;
Los filtros basados en pubkey de Yellowstone funcionan sin cambios — acota transacciones a programas o cuentas concretas, acota streams de cuentas a owners concretos.
let req = SubscribeRequest { transactions: hashmap! { "swaps".to_owned() => SubscribeRequestFilterTransactions { vote: Some(false), failed: Some(false), account_include: vec![JUPITER_V6.into()], ..Default::default() }, }, accounts: hashmap! { "pools".to_owned() => SubscribeRequestFilterAccounts { owner: vec![RAYDIUM_AMM.into()], ..Default::default() }, }, ..Default::default() };
Cada mensaje lleva el timestamp en que fue recibido, con 100 microsegundos de precisión. Una transacción que aterrizó a 24,3 ms dentro de su slot se reproduce a 24,3 ms en ese slot. Orden intra-slot, retrasos de propagación, la textura del tiempo de red real — todo se preserva.
Cada mensaje que recibe tu subscription en vivo se retiene de forma continua durante toda la ventana de 24 horas. Sin muestreo. Sin resúmenes. Sin traducción de esquema.
Desde la punta actual de la cadena hacia atrás. Continua, no rotación por día de calendario.
Los mensajes en commitment processed no se almacenan — demasiado efímeros para ser útiles en replay.
Índices Roaring bitmap sobre programas, cuentas y firmas, resueltos antes de tocar los bytes del mensaje.
Range-fetchable desde almacenamiento persistente. Un replay filtrado lee solo los bytes que coinciden.
Los otros proveedores transmiten la cadena en vivo de maravilla. sillage.sh entrega lo opuesto: 24 horas de historia, mismo protocolo, facturado por replay.
| sillage.sh | Helius LaserStream | Triton Fumarole | QuickNode | |
|---|---|---|---|---|
| Ventana de replay | 24 horas | 24 horas | 4 días | ~20 min |
| Precio | Por replay | $999/mes plan* | $0,08/GB + plan | Enterprise |
| Protocolo | Yellowstone gRPC | Yellowstone gRPC | Yellowstone gRPC | Yellowstone gRPC |
| Precisión de timestamps | Por mensaje | Nivel de slot | Nivel de slot | — |
Reproduce la cadena de ayer contra tu estrategia. Ajusta el PnL sin quemar una subscription de streaming.
Más sobre backtesting en SolanaBackfill de un índice nuevo desde cualquier slot de las últimas 24 horas. Sin resync desde snapshot.
Consulta patrones históricos de flujo. Mismo protocolo Yellowstone, pagado solo cuando lees.
Reproduce una ventana previa al reorg para verificar el estado — sin necesidad de guardar historia cruda por tu cuenta.
La primera cohorte arranca con replay de 24 horas de streams de transacciones, cuentas y bloques. Prioridad para builders de bots, indexers e investigación.