Skip to main content

Documentation Index

Fetch the complete documentation index at: https://beta.docs.sqd.dev/llms.txt

Use this file to discover all available pages before exploring further.

Subscribe to RPC endpoints via WebSocket and measure when blocks arrive at the Portal versus when they appear at the RPC. Use this transformer to monitor relative latency.
import { evmPortalSource, evmRpcLatencyWatcher } from "@subsquid/pipes/evm";

const stream = evmPortalSource({
  portal: "https://portal.sqd.dev/datasets/base-mainnet",
  outputs: evmDecoder({ range: { from: 'latest' }, events: {} }),
}).pipe(
  evmRpcLatencyWatcher({
    rpcUrl: ["https://base.drpc.org", "https://base-rpc.publicnode.com"],
  })
);

for await (const { data } of stream) {
  if (!data) continue;
  console.table(data.rpc); // url, receivedAt, portalDelayMs
}
Parameters:
  • rpcUrl: Array of RPC WebSocket or HTTP URLs to compare against Portal
Output: Each batch includes rpc array with url, receivedAt, and portalDelayMs per endpoint.
Measured values include client-side network latency. Results are end-to-end delays as seen by the client, not pure Portal or RPC processing performance.