For the complete documentation index, see llms.txt. This page is also available as Markdown.

eth_subscribe - zksync

Example code for the eth_subscribe JSON-RPC method. Сomplete guide on how to use eth_subscribe JSON-RPC in GetBlock.io Web3 documentation.

Creates a real-time subscription over a WebSocket connection. Available subscription types are newHeads (new block headers) and logs (matching contract events).

Only available over WebSocket transport — use wss://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/. Note: zkSync does not support the syncing subscription type.

Parameters

Parameter
Type
Required
Description

subscriptionType

string

Yes

One of "newHeads", "logs"

filterObject

object

No

For "logs": filter with address and/or topics

Request Example

cURL (wscat)
# This method requires WebSocket connection
wscat -c wss://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/

> {"jsonrpc":"2.0","method":"eth_subscribe","params":["newheads"],"id":"getblock.io"}
JavaScript (ws)
const WebSocket = require('ws');

const ws = new WebSocket('wss://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/');

ws.on('open', () => {
    ws.send(JSON.stringify({
        jsonrpc: '2.0',
        method: 'eth_subscribe',
        params: ['newHeads'],
        id: 'getblock.io'
    }));
});

ws.on('message', (data) => {
    console.log(JSON.parse(data));
});
Python (websockets)
import asyncio
import websockets
import json

async def unsubscribe():
    uri = "wss://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/"
    async with websockets.connect(uri) as ws:
        payload = {
            "jsonrpc": "2.0",
            "method": "eth_subscribe",
            "params": ["newHeads"],
            "id": "getblock.io"
        }
        await ws.send(json.dumps(payload))
        response = await ws.recv()
        print(json.loads(response))

asyncio.run(unsubscribe())

Response Example

{
    "jsonrpc": "2.0",
    "id": "getblock.io",
    "result": "0x9cef478923ff08bf67fde6c64013158d"
}

Response Parameters

Field
Type
Description

result

string

Subscription ID, used to match incoming eth_subscription notifications and to call eth_unsubscribe

Use Cases

  • Real-time wallet activity notifications

  • Live DEX trade feeds for trading UIs

  • Streaming indexers that react to new L2 blocks instantly

Error Handling

Status Code
Error Message
Cause

403

Forbidden

Missing or invalid <ACCESS-TOKEN>

-32602

Invalid params

Request parameters are missing or malformed

429

Too Many Requests

Rate limit exceeded for your plan

-32600

Invalid Request

eth_subscribe was called over HTTP; use a WebSocket connection instead

SDK Integration

Last updated

Was this helpful?