API Reference
BSC RPC Docs
Standard Ethereum JSON-RPC with BSC semantics. Use any JSON-RPC client — ethers, web3.py, viem, alloy, go-ethereum, whatever you have. No custom SDK required.
Quick start
Endpoints
HTTP
https://va-bsc-01.streamsuite.io/?key=YOUR_API_KEY
Standard JSON-RPC POST. Methods go in the body. Key can also be sent as a bearer header (Authorization: Bearer ...).
WebSocket
wss://va-bsc-01.streamsuite.io/ws?key=YOUR_API_KEY
Persistent connection for subscriptions. Use eth_subscribe with one of the supported channels below.
Methods by tier
What's included
| Method | Real-Time | Mempool | Full Node |
|---|---|---|---|
| eth_blockNumber | ✓ | ✓ | ✓ |
| eth_getBlockByNumber / Hash | ✓ | ✓ | ✓ |
| eth_getTransactionByHash | ✓ | ✓ | ✓ |
| eth_getTransactionReceipt | ✓ | ✓ | ✓ |
| eth_getBalance | ✓ | ✓ | ✓ |
| eth_getCode | ✓ | ✓ | ✓ |
| eth_getStorageAt | ✓ | ✓ | ✓ |
| eth_call | ✓ | ✓ | ✓ |
| eth_estimateGas | ✓ | ✓ | ✓ |
| eth_sendRawTransaction | ✓ | ✓ | ✓ |
| eth_getLogs | ✓ | ✓ | ✓ |
| eth_gasPrice / maxPriorityFeePerGas | ✓ | ✓ | ✓ |
| net_version / web3_clientVersion | ✓ | ✓ | ✓ |
| txpool_content | — | ✓ | ✓ |
| txpool_inspect | — | ✓ | ✓ |
| txpool_status | — | ✓ | ✓ |
| debug_traceTransaction | — | — | ✓ |
WebSocket subscriptions
eth_subscribe channels
| Channel | Real-Time | Mempool | Full Node |
|---|---|---|---|
| newHeads | ✓ | ✓ | ✓ |
| logs | ✓ | ✓ | ✓ |
| pendingTransactions | — | ✓ | ✓ |
| newPendingTransactions (full) | — | ✓ | ✓ |
// Raw eth_subscribe over WebSocket
{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_subscribe",
"params": ["newHeads"]
}
// Logs with topic filter
{
"jsonrpc": "2.0",
"id": 2,
"method": "eth_subscribe",
"params": ["logs", {
"address": "0x...",
"topics": ["0xddf252ad..."]
}]
}
// Pending transactions (Mempool and Full Node tiers)
{
"jsonrpc": "2.0",
"id": 3,
"method": "eth_subscribe",
"params": ["newPendingTransactions"]
}Code examples
Connect from anywhere
JavaScript · ethers v6node / browser
import { JsonRpcProvider, WebSocketProvider } from 'ethers';
const HTTP_URL = 'https://va-bsc-01.streamsuite.io/?key=YOUR_API_KEY';
const WS_URL = 'wss://va-bsc-01.streamsuite.io/ws?key=YOUR_API_KEY';
// HTTP
const http = new JsonRpcProvider(HTTP_URL);
const block = await http.getBlockNumber();
console.log('Head block:', block);
// WebSocket: subscribe to new blocks
const ws = new WebSocketProvider(WS_URL);
ws.on('block', (n) => console.log('newHeads', n));
// Mempool tier+: pending transactions
ws.on('pending', async (txHash) => {
const tx = await ws.getTransaction(txHash);
if (!tx) return;
console.log('pending', tx.hash, tx.to, tx.value.toString());
});Python · web3.py + websocketspython 3.10+
from web3 import Web3
import asyncio, json, websockets
HTTP_URL = "https://va-bsc-01.streamsuite.io/?key=YOUR_API_KEY"
WS_URL = "wss://va-bsc-01.streamsuite.io/ws?key=YOUR_API_KEY"
# HTTP
w3 = Web3(Web3.HTTPProvider(HTTP_URL))
print("Head block:", w3.eth.block_number)
# Mempool tier+: raw WS subscription
async def watch_mempool():
async with websockets.connect(WS_URL) as ws:
await ws.send(json.dumps({
"jsonrpc": "2.0", "id": 1,
"method": "eth_subscribe",
"params": ["newPendingTransactions"]
}))
async for msg in ws:
evt = json.loads(msg)
if "params" in evt:
print("pending:", evt["params"]["result"])
asyncio.run(watch_mempool())Rust · alloytokio runtime
use alloy::providers::{Provider, ProviderBuilder, WsConnect};
use alloy::rpc::types::Filter;
use futures_util::StreamExt;
#[tokio::main]
async fn main() -> eyre::Result<()> {
let ws = WsConnect::new("wss://va-bsc-01.streamsuite.io/ws?key=YOUR_API_KEY");
let provider = ProviderBuilder::new().on_ws(ws).await?;
// Subscribe to newHeads
let mut heads = provider.subscribe_blocks().await?.into_stream();
while let Some(block) = heads.next().await {
println!("newHead #{}", block.header.number);
}
Ok(())
}Rate limits
None.
Unlimited requests on all plans. Unlimited WebSocket subscriptions. We cap clients per node instead, so you never compete with someone else's polling loop. If you hit a hardware ceiling on a single node, we'll move you to a less-loaded one — or provision a new one for you.
Node details
What you're connecting to
- Chain
- BNB Smart Chain mainnet (chainId 56)
- Client
- BSC full node, pruning mode
- Block time
- ~440ms (fast finality)
- Location
- Ashburn, VA — Tier-IV datacenter
- Hardware
- Bare-metal dedicated server, NVMe storage
- Network
- Dedicated uplink
- Block history
- ~32 days
- Receipt history
- ~5 days
- Log history
- ~32 days
- Trace history
- Recent blocks only (Full Node tier)
Ready for an API key?
Tell us what you're building and we'll get you connected within 24 hours.