Appearance
Endpoints
One gateway host, one path per chain:
https://rpc.au.ro/<chain>All endpoints require the apikey header (Authentication). The same host also serves WebSocket subscriptions (wss://…/ws/<chain>) and gRPC (rpc.au.ro:443) for the chains marked below.
Chain matrix
Status reflects a live probe of every method listed on the chain's integration page (linked in the first column). WS = WebSocket subscriptions (details); gRPC = native gRPC (details).
| Chain | Path | Protocol | Batch | WS | gRPC | Notes |
|---|---|---|---|---|---|---|
| Ethereum | /eth | JSON-RPC 2.0 | ✓ | ✓ | — | debug_* blocked; heavy methods guarded |
| BNB Smart Chain | /bsc | JSON-RPC 2.0 | ✓ | ✓ | — | |
| Polygon | /polygon | JSON-RPC 2.0 | ✓ | ✓ | — | |
| Avalanche C-Chain | /avax | JSON-RPC 2.0 | ✓ | ✓ | — | C-Chain EVM (/ext/bc/C/rpc upstream) |
| Bitcoin | /btc | JSON-RPC 1.0 (bitcoind) | ✓ | — | — | load-balanced across nodes |
| Litecoin | /ltc | JSON-RPC 1.0 (litecoind) | ✓ | — | — | |
| Bitcoin Cash | /bch | JSON-RPC 1.0 (BCHN) | see page | — | — | no estimatesmartfee (use estimatefee) |
| Dogecoin | /doge | JSON-RPC 1.0 (dogecoind) | ✓ | — | — | ~1 min blocks; fees are DOGE-denominated |
| Dash | /dash | JSON-RPC 1.0 (dashd) | ✓ | — | — | |
| Liquid | /liquid | JSON-RPC 1.0 (elementsd) | ✓ | — | — | Bitcoin sidechain |
| XRP Ledger | /xrp | rippled JSON-RPC | — | ✓ | — | rippled has no batch |
| Stellar | /xlm | stellar-core REST | — | — | — | GET only; core info endpoints; Horizon on roadmap |
| TRON | /tron | REST (java-tron HTTP API) | — | — | ✓ | POST /tron/wallet/<method> |
| Cosmos Hub | /cosmos | REST (Cosmos SDK LCD) | — | ✓ | ✓ | HTTPS = LCD REST; CometBFT RPC is WS-only; gRPC = Cosmos SDK |
| NEAR | /near | JSON-RPC 2.0 | ✓ | — | — | |
| Aptos | /aptos | REST (fullnode API v1) | — | — | — | GET /aptos/v1/... |
| Sui | /sui | JSON-RPC 2.0 | ✓ | — | — | |
| Cardano | /cardano | ogmios JSON-RPC | ✓ | ✓ | — | queryNetwork/*, queryLedgerState/* |
| TON | /ton | TonCenter HTTP (via ton-http-api) | — | — | — | JSON-RPC at /ton/jsonRPC + REST (/ton/getMasterchainInfo, …) |
| Solana | /solana | — | — | ✓ | — | HTTPS JSON-RPC coming soon; WS pubsub live |
Aliases: /bitcoin→/btc, /ethereum→/eth, /ripple→/xrp, /stellar→/xlm, /litecoin→/ltc, /avalanche→/avax (for project chain-scoping purposes; the gateway paths above are the canonical ones).
Per-location availability
The matrix above is the platform's full chain catalog. Each deployment location serves a subset of it, and chains can be temporarily withdrawn while their nodes are migrated between locations. A chain that is not served where you're connected answers with JSON-RPC error -32601"chain not available at this location" (WebSocket paths return HTTP 404 with the same message) — see Errors. Your API key is fine; retry on a location that serves the chain or check back after maintenance.
Two request styles
JSON-RPC chains — POST the JSON-RPC envelope to the chain path:
bash
curl -X POST https://rpc.au.ro/eth \
-H "apikey: $YOUR_API_KEY" -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'REST chains — append the upstream API path after the chain segment:
bash
# TRON: java-tron wallet API
curl -X POST https://rpc.au.ro/tron/wallet/getnowblock \
-H "apikey: $YOUR_API_KEY"
# Aptos: fullnode REST v1
curl https://rpc.au.ro/aptos/v1 \
-H "apikey: $YOUR_API_KEY"
# Cosmos Hub: Cosmos SDK LCD (NOT CometBFT JSON-RPC — see the chain page)
curl https://rpc.au.ro/cosmos/cosmos/base/tendermint/v1beta1/node_info \
-H "apikey: $YOUR_API_KEY"Two REST chains are GET-only at the gateway — a POST to /xlm or a JSON-RPC POST to /cosmos does not do what you'd expect:
- Stellar (
/xlm) accepts GET only; a POST returns Kong's404 {"message":"no Route matched with those values"}. - Cosmos Hub (
/cosmos) is the LCD REST API. A JSON-RPC POST is answered by the gRPC-gateway with{"code":12,"message":"Not Implemented"}, and CometBFT paths return501— the CometBFT RPC is WebSocket-only.
Batch requests
JSON-RPC chains accept arrays. Responses are correlated by id (order is not guaranteed), each element is cached and metered individually:
bash
curl -X POST https://rpc.au.ro/eth \
-H "apikey: $YOUR_API_KEY" -H 'Content-Type: application/json' \
-d '[{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1},
{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":2}]'Response caching
The gateway caches per method class — you can always tell from the X-Cache: HIT|MISS response header:
| Class | Examples | TTL |
|---|---|---|
| Immutable | eth_getTransactionReceipt, getrawtransaction, confirmed blocks by hash | indefinite |
| Static | eth_chainId, net_version, getnodeinfo | indefinite |
| Short | eth_blockNumber (2 s), getblockcount (10 s), eth_gasPrice (5 s), getMasterchainInfo (2 s) | 1–30 s |
| Never | every submit/broadcast, eth_estimateGas, eth_call* | — |
* eth_call uses a 2 s TTL keyed on call data; state-changing simulation is safe because nothing is executed on-chain.
If your use case needs a guaranteed-fresh value (e.g. polling chain height in tests), prefer an uncached method of the same family — e.g. getmininginfo instead of getblockcount on bitcoind chains.
WebSockets
Chains marked WS in the matrix stream native subscriptions over
wss://rpc.au.ro/ws/<chain>?apikey=<YOUR_API_KEY>The key rides the ?apikey= query parameter (browser WebSocket() can't set headers) or the apikey header for everything else; the handshake is authenticated exactly like an HTTPS call, then frames pipe verbatim to the chain node (eth_subscribe, Solana pubsub, CometBFT subscribe, XRPL subscribe, Ogmios). Per-chain examples + reconnect guidance: WebSockets.
gRPC
Chains marked gRPC in the matrix (Cosmos Hub, TRON) are additionally served over native gRPC (TLS, key in apikey metadata, no path prefix — routing is by proto package: cosmos.*, ibc.* → Cosmos; protocol.* → TRON). Two entries: rpc.au.ro:8443 supports every call shape including server reflection; rpc.au.ro:443 handles unary + server-streaming with explicit descriptors (Cosmos ships a ready-made cosmos.protoset, TRON needs the java-tron protos):
bash
grpcurl -H "apikey: $YOUR_API_KEY" rpc.au.ro:8443 list
grpcurl -protoset cosmos.protoset -H "apikey: $YOUR_API_KEY" \
-d '{"denom":"uatom"}' \
rpc.au.ro:443 cosmos.bank.v1beta1.Query/SupplyOfPort semantics + details: gRPC.