Compute Unit (CU) values are subject to change as we assess and adjust our pricing to better reflect usage and associated costs.
Blockdaemon's RPC API supports WebSocket connections for real-time blockchain data on supported chains. This guide covers how to connect, which methods are available, and how Compute Units (CUs) are calculated.
Supported Chains
Chain Group | Chains |
---|---|
Ethereum-Compatible | Ethereum, Polygon, Arbitrum, Optimism, Base, Cronos |
Solana | Solana |
Polkadot | Polkadot, Kusama |
WebSocket Methods & Compute Units
Non-subscription RPC methods over web-socket connection are billed the same as regular RPC methods over HTTP.
Ethereum-Compatible Chains
Supported Methods | Event Types |
---|---|
eth_subscribe | - newHeads - logs - newPendingTransactions |
eth_unsubscribe |
- - Subscribe / Unsubscribe request: 1 CU per request
- - Confirmation responses: 1 CU
- - Event messages (e.g.,
newHeads
): 10 CU per message
The minimum charge is 1 CU per action.
💡 Billing Example – Subscribe to eth_subscribe
with newHeads
Description | Count | CU per Action | Total CU |
---|---|---|---|
🔼 Open WebSocket connection | 1 | 1 CU | 1 |
🔼 Send eth_subscribe request |
1 | 1 CU | 1 |
🔽 Receive confirmation from node | 1 | 1 CU | 1 |
🔽 Receive newHeads messages |
5 | 10 CU | 50 |
🔼 Send eth_unsubscribe request |
1 | 1 CU | 1 |
🔽 Receive unsubscribe confirmation | 1 | 1 CU | 1 |
Total Compute Units | 55 CU |
Solana
Supported Methods | CU per Subscription | Subscribes To | CU per Message |
---|---|---|---|
accountSubscribe | 1 CU | accountNotification | 5 CU |
accountUnsubscribe | 1 CU | ||
logsSubscribe | 1 CU | logsNotification | 5 CU |
logsUnsubscribe | 1 CU | ||
programSubscribe | 1 CU | programNotification | 10 CU |
programUnsubscribe | 1 CU | ||
signatureSubscribe | 1 CU | signatureNotification | 5 CU |
signatureUnsubscribe | 1 CU | ||
slotSubscribe | 1 CU | slotNotification | 5 CU |
slotUnsubscribe | 1 CU | ||
slotsUpdatesSubscribe | 1 CU | slotsUpdatesNotification | 5 CU |
slotsUpdatesUnsubscribe | 1 CU |
- - Subscribe / Unsubscribe request: 1 CU per request
- - Confirmation responses: 1 CU
-
- Event messages (e.g.,
slotNotification
): CU varies by event type
Each subscription type has a specific event type tied to it. For example, you send
slotSubscribe
→ you’ll receive messages of typeslotNotification
.
💡 Billing Example – Subscribe to accountSubscribe
and receive accountNotification
Description | Count | CU per Action | Total CU |
---|---|---|---|
🔼 Send accountSubscribe request |
1 | 1 CU | 1 |
🔽 Receive confirmation response | 1 | 1 CU | 1 |
🔽 Receive accountNotification messages |
8 | 5 CU | 40 |
🔼 Send accountUnsubscribe request |
1 | 1 CU | 1 |
🔽 Receive unsubscribe confirmation | 1 | 1 CU | 1 |
Total Compute Units | 44 CU |
Polkadot
Supported Methods | CU per Subscription | Subscribes To | CU per Message |
---|---|---|---|
beefy_subscribeJustifications | 1 CU | beefy_justifications | 1 CU |
beefy_unsubscribeJustifications | 1 CU | ||
chain_subscribeFinalizedHeads | 1 CU | chain_finalizedHead | 1 CU |
chain_unsubscribeFinalizedHeads | 1 CU | ||
chain_subscribeAllHeads | 1 CU | chain_allHead | 1 CU |
chain_unsubscribeAllHeads | 1 CU | ||
chain_subscribeNewHeads | 1 CU | chain_newHead | 1 CU |
chain_unsubscribeNewHeads | 1 CU | ||
grandpa_subscribeJustifications | 1 CU | grandpa_justifications | 1 CU |
grandpa_unsubscribeJustifications | 1 CU | ||
state_subscribeRuntimeVersion | 1 CU | state_runtimeVersion | 1 CU |
state_unsubscribeRuntimeVersion | 1 CU | ||
state_subscribeStorage | 1 CU | state_storage | 5 CU |
state_unsubscribeStorage | 1 CU |
- - Subscribe / Unsubscribe request: 1 CU per request
- - Confirmation responses: 1 CU
-
- Event messages (e.g.,
chain_newHead
): CU varies by event type
Each subscription type has a specific event type tied to it. For example, you send
state_subscribeStorage
→ you’ll receive messages of typestate_storage
.
💡 Billing Example – Subscribe to state_subscribeStorage
and receive state_storage
notifications
Description | Count | CU per Action | Total CU |
---|---|---|---|
🔼 Send state_subscribeStorage request |
1 | 1 CU | 1 |
🔽 Receive confirmation response | 1 | 1 CU | 1 |
🔽 Receive state_storage notifications |
6 | 5 CU | 30 |
🔼 Send state_unsubscribeStorage request |
1 | 1 CU | 1 |
🔽 Receive unsubscribe confirmation | 1 | 1 CU | 1 |
Total Compute Units | 34 CU |
How to Connect
To connect to the WebSocket endpoint, follow these steps:
- Authorize your request using one of the following methods:
curl --header "Authorization: Bearer YOUR_API_KEY"
curl --header "X-API-KEY: YOUR_API_KEY"
- You'll need to install a WebSocket client like
wscat
, or any other tool you prefer to connect.
npm install -g wscat //One-time installation
- Connect to the WebSocket URL with the following URL pattern:
wss://svc.blockdaemon.com/:protocol/:network/native
For example, for Ethereum Mainnet:
wscat --header "Authorization: Bearer YOUR_API_KEY" \
-c wss://svc.blockdaemon.com/ethereum/mainnet/native
- Once connected, you can send and receive messages using JSON-RPC:
// Subscribe to a WebSocket event (e.g., newHeads)
{"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1}
// Server responds with a subscription ID
{"jsonrpc":"2.0","id":1,"result":"0xb544f3328760ac404b9e3a4aec6f2ec0"}
// You’ll receive real-time updates as events happen
{"jsonrpc":"2.0","method":"eth_subscription","params":{
"subscription":"0xb544f3328760ac404b9e3a4aec6f2ec0",
"result":{ /* event data */ }
}}
// To unsubscribe from the event stream
{"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0xb544f3328760ac404b9e3a4aec6f2ec0"],"id":2}
// Confirmation that you’ve successfully unsubscribed
{"jsonrpc":"2.0","id":2,"result":true}
👋 Need Help?
Contact us through email or our support page for any issues, bugs, or assistance you may need.