Skip to content
EVMKit Docs EVMKit Docs
Back to site
EVMKit Docs EVMKit Docs
Site

Docs Streams API

Streams API

Handshake auth, stream endpoints, and message shapes for live pending transactions, new blocks, and logs.

The Streams API is available at:

wss://streams-<endpoint>.evmkit.app/v1/

Replace <endpoint> with your chosen regional endpoint. See Regions for hostname patterns and the current regional layout.

For pricing, use the single table on the Billing & CU pricing page.

Streams are exposed through multiple regional hostnames. Use the region closest to your consumer when latency matters, or keep explicit failover logic across more than one region when you want predictable fallback behavior.

Behind the public websocket hostnames, the stream service aggregates data from multiple upstream node connections instead of depending on a single upstream node. Client integrations should still treat each stream path and each regional hostname as a separate websocket session.

Open a separate websocket connection for each stream endpoint you want to consume.

Pending transactions stream:

wss://streams-<endpoint>.evmkit.app/v1/pending-txs

Pending logs stream:

wss://streams-<endpoint>.evmkit.app/v1/pending-logs

New blocks stream:

wss://streams-<endpoint>.evmkit.app/v1/new-blocks

Auth happens during the websocket handshake.

Required header:

X-Api-Key: evk_your_live_key

After a successful handshake, the first message is:

{"event":"subscribed"}
{
"event": "transaction",
"source": "pending-txs",
"received_at": 1741800000000,
"raw": {
"hash": "0xhash",
"from": "0xfrom",
"to": "0xto",
"input": "0xa9059cbb...",
"value": "0x0",
...
}
}
{
"event": "block",
"source": "new-blocks",
"received_at": 1741800000000,
"block": {
"hash": "0xblockhash",
"parentHash": "0xparenthash",
"number": "0x123456",
"timestamp": "0x67d3b5a4",
"miner": "0x0000000000000000000000000000000000000000"
}
}

block contains the block payload published on the stream.

{
"event": "pending_logs",
"source": "pending-logs",
"received_at": 1741800000000,
"context": {
"hash": "0xhash",
"from": "0xfrom",
"to": "0xto",
"input": "0xa9059cbb...",
"value": "0x0",
...
},
"logs": [
{
"address": "0xpool",
"topics": ["0xtopic0", "0xtopic1"],
"data": "0xdeadbeef"
}
]
}

logs contains a best-effort pending log view associated with the streamed transaction. It is not a canonical on-chain log stream.