Home
Ankr
Ankr RPC Service — WebSocket Subscriptions
Ankr · AsyncAPI Specification
Ankr RPC Service — WebSocket Subscriptions
Version 2026.05
AsyncAPI description of Ankr's WebSocket JSON-RPC surface for blockchain subscriptions. Ankr exposes a single multichain WSS endpoint at `wss://rpc.ankr.com/{chain_slug}/{apiKey}` for every chain its `chains-list` documentation marks as `HTTPS and WSS`. WebSocket access requires the Freemium or Premium service plan, per https://www.ankr.com/docs/rpc-service/service-plans/. WebSocket traffic is metered as two actions — Subscription (establishing a WSS connection + subscribing to events) and Notification (receiving a server-pushed update). Pricing as of 2026-05: Solana Subscription/Notification 500 credits each (~$0.00005), EVM-compatible Subscription 200 credits (~$0.00002), and non-Solana Notification 100 credits (~$0.00001). For each chain, Ankr commits to supporting "all the applicable methods except for those listed as unsupported" (see https://www.ankr.com/docs/rpc-service/chains/chains-list/). For EVM chains, the WSS-only unsupported list is uniformly `txpool_content`, `txpool_inspect`, `txpool_status`, `txpool_contentFrom`. For Solana, the only unsupported method is `getLargestAccounts` (no subscribe methods are flagged as unsupported). Ankr's own documentation does NOT enumerate specific subscription type names (newHeads, logs, newPendingTransactions, syncing for EVM; accountSubscribe, logsSubscribe, programSubscribe, signatureSubscribe, slotSubscribe, blockSubscribe, rootSubscribe, voteSubscribe, slotsUpdatesSubscribe for Solana). To stay faithful to the source, this spec models the JSON-RPC method surface that Ankr commits to (`eth_subscribe` / `eth_unsubscribe` for EVM and the Solana subscribe namespace) without inventing specific subscription type strings. The canonical taxonomy of subscription types is delegated to the upstream standards Ankr itself references: * Ethereum execution-apis: https://github.com/ethereum/execution-apis * Solana RPC websocket: https://solana.com/docs/rpc/websocket See asyncapi/review.yml for the full documentation-gap log.
Channels
/evm/eth_subscribe
publish ethSubscribe
Subscribe to an EVM event stream
Client invokes `eth_subscribe` to subscribe to a stream of server-pushed events. The first parameter is a subscription-type string; the optional second parameter is a type-specific options object. Ankr does not enumerate accepted subscription-type strings — consult the upstream Ethereum execution-apis spec.
/evm/eth_unsubscribe
publish ethUnsubscribe
Cancel an existing EVM subscription
Client invokes `eth_unsubscribe` with a previously-returned subscription ID to cancel a stream.
/solana/subscribe
publish solanaSubscribe
Open a Solana subscription stream
Client invokes one of Solana's `*Subscribe` JSON-RPC methods to open a stream (e.g. `accountSubscribe`, `logsSubscribe`, `slotSubscribe`, `programSubscribe`, `signatureSubscribe`, `blockSubscribe`, `rootSubscribe`, `voteSubscribe`, `slotsUpdatesSubscribe`). Per Ankr's chains-list documentation, Ankr commits to all standard Solana RPC methods except `getLargestAccounts`. Ankr does not individually document any *Subscribe method.
/solana/unsubscribe
publish solanaUnsubscribe
Cancel an existing Solana subscription
Client invokes one of Solana's `*Unsubscribe` JSON-RPC methods to close a stream.
Messages
✉
EthSubscribeRequest
eth_subscribe JSON-RPC request
Client → server JSON-RPC 2.0 request opening an EVM subscription.
✉
EthUnsubscribeRequest
eth_unsubscribe JSON-RPC request
Client → server JSON-RPC 2.0 request closing an EVM subscription.
✉
EthSubscriptionNotification
eth_subscription notification
Server → client JSON-RPC notification delivered while the subscription is open. The shape of `params.result` is governed by the upstream Ethereum execution-apis spec for the requested subscription type.
✉
SolanaSubscribeRequest
Solana *Subscribe JSON-RPC request
Client → server JSON-RPC 2.0 request opening a Solana subscription.
✉
SolanaUnsubscribeRequest
Solana *Unsubscribe JSON-RPC request
Client → server JSON-RPC 2.0 request closing a Solana subscription.
✉
SolanaSubscriptionNotification
Solana subscription notification
Server → client JSON-RPC notification delivered while the subscription is open. The shape of `params.result` is governed by the upstream Solana RPC websocket spec for the requested subscription method.
Servers
wss
ethereum
rpc.ankr.com/eth/{apiKey}
Ethereum Mainnet (plus Holesky / Sepolia via separate slugs)
wss
ethereum-sepolia
rpc.ankr.com/eth_sepolia/{apiKey}
Ethereum Sepolia testnet
wss
ethereum-holesky
rpc.ankr.com/eth_holesky/{apiKey}
Ethereum Holesky testnet
wss
bnb-smart-chain
rpc.ankr.com/bsc/{apiKey}
BNB Smart Chain Mainnet
wss
bnb-smart-chain-testnet
rpc.ankr.com/bsc_testnet_chapel/{apiKey}
BNB Smart Chain Chapel testnet
wss
polygon
rpc.ankr.com/polygon/{apiKey}
Polygon Mainnet
wss
polygon-amoy
rpc.ankr.com/polygon_amoy/{apiKey}
Polygon Amoy testnet
wss
arbitrum
rpc.ankr.com/arbitrum/{apiKey}
Arbitrum One Mainnet
wss
arbitrum-nova
rpc.ankr.com/arbitrumnova/{apiKey}
Arbitrum Nova Mainnet
wss
optimism
rpc.ankr.com/optimism/{apiKey}
Optimism Mainnet (+ Sepolia documented)
wss
base
rpc.ankr.com/base/{apiKey}
Base Mainnet (+ Sepolia documented)
wss
avalanche
rpc.ankr.com/avalanche/{apiKey}
Avalanche Standard EVM API
wss
fantom
rpc.ankr.com/fantom/{apiKey}
Fantom Mainnet
wss
fantom-testnet
rpc.ankr.com/fantom_testnet/{apiKey}
Fantom testnet
wss
gnosis
rpc.ankr.com/gnosis/{apiKey}
Gnosis Mainnet
wss
celo
rpc.ankr.com/celo/{apiKey}
Celo Mainnet
wss
moonbeam
rpc.ankr.com/moonbeam/{apiKey}
Moonbeam Mainnet
wss
linea
rpc.ankr.com/linea/{apiKey}
Linea Mainnet
wss
scroll
rpc.ankr.com/scroll/{apiKey}
Scroll Mainnet
wss
zksync-era
rpc.ankr.com/zksync_era/{apiKey}
zkSync Era Mainnet
wss
blast
rpc.ankr.com/blast_testnet_sepolia/{apiKey}
Blast Mainnet / Sepolia testnet
wss
mantle
rpc.ankr.com/mantle/{apiKey}
Mantle Mainnet
wss
metis
rpc.ankr.com/metis/{apiKey}
Metis Mainnet
wss
filecoin
rpc.ankr.com/filecoin/{apiKey}
Filecoin Mainnet
wss
flare
rpc.ankr.com/flare/{apiKey}
Flare Standard EVM Mainnet
wss
harmony
rpc.ankr.com/harmony/{apiKey}
Harmony Mainnet
wss
iotex
rpc.ankr.com/iotex/{apiKey}
IoTeX Mainnet
wss
iota-evm
rpc.ankr.com/iota_evm/{apiKey}
IOTA EVM Mainnet
wss
kaia
rpc.ankr.com/kaia/{apiKey}
Kaia Mainnet
wss
kava-evm
rpc.ankr.com/kava_evm/{apiKey}
Kava EVM Mainnet
wss
sei-evm
rpc.ankr.com/sei_evm/{apiKey}
Sei EVM Mainnet
wss
heco
rpc.ankr.com/heco/{apiKey}
Huobi ECO Chain Mainnet
wss
horizen-eon
rpc.ankr.com/horizen_eon/{apiKey}
Horizen EON Mainnet
wss
rollux
rpc.ankr.com/rollux/{apiKey}
Rollux Mainnet
wss
syscoin
rpc.ankr.com/syscoin/{apiKey}
Syscoin Mainnet
wss
telos
rpc.ankr.com/telos/{apiKey}
Telos Mainnet
wss
xai
rpc.ankr.com/xai/{apiKey}
Xai Mainnet
wss
xdc
rpc.ankr.com/xdc/{apiKey}
XDC Network Mainnet
wss
xlayer
rpc.ankr.com/xlayer/{apiKey}
X Layer Mainnet
wss
monad
rpc.ankr.com/monad_testnet/{apiKey}
Monad Mainnet / Testnet
wss
sonic
rpc.ankr.com/sonic_mainnet/{apiKey}
Sonic Mainnet
wss
story
rpc.ankr.com/story_mainnet/{apiKey}
Story Mainnet
wss
swell
rpc.ankr.com/swell/{apiKey}
Swell Mainnet / Sepolia
wss
taiko
rpc.ankr.com/taiko_hekla/{apiKey}
Taiko Hekla testnet
wss
kite
rpc.ankr.com/kite_mainnet/{apiKey}
Kite AI Mainnet
wss
bahamut
rpc.ankr.com/bahamut/{apiKey}
Bahamut Mainnet
wss
b2-network
rpc.ankr.com/b2/{apiKey}
B2 Network Mainnet
wss
bitlayer
rpc.ankr.com/bitlayer/{apiKey}
Bitlayer Mainnet
wss
botanix
rpc.ankr.com/botanix_testnet/{apiKey}
Botanix Mainnet / Testnet
wss
chiliz
rpc.ankr.com/chiliz/{apiKey}
Chiliz Mainnet
wss
core
rpc.ankr.com/core/{apiKey}
Core Mainnet
wss
corn
rpc.ankr.com/corn_maizenet/{apiKey}
Corn Mainnet
wss
electroneum
rpc.ankr.com/electroneum/{apiKey}
Electroneum Mainnet
wss
etherlink
rpc.ankr.com/etherlink_mainnet/{apiKey}
Etherlink Mainnet
wss
goat
rpc.ankr.com/goat_testnet/{apiKey}
GOAT testnet
wss
gravity
rpc.ankr.com/gravity/{apiKey}
Gravity Mainnet
wss
kinto
rpc.ankr.com/kinto/{apiKey}
Kinto Mainnet
wss
matchain
rpc.ankr.com/matchain_mainnet/{apiKey}
Matchain Mainnet
wss
neura
rpc.ankr.com/neura_testnet/{apiKey}
Neura testnet
wss
somnia
rpc.ankr.com/somnia_testnet/{apiKey}
Somnia testnet
wss
tac
rpc.ankr.com/tac_turin/{apiKey}
TAC Mainnet / SPB / Turin
wss
tenet
rpc.ankr.com/tenet_evm/{apiKey}
Tenet Mainnet Beta
wss
xphere
rpc.ankr.com/xphere_mainnet/{apiKey}
Xphere Mainnet / Testnet
wss
solana
rpc.ankr.com/solana/{apiKey}
Solana Mainnet WebSocket endpoint. Per chains-list.mdx, the only Solana method Ankr flags as unsupported is `getLargestAccounts`; the subscribe method taxonomy follows the upstream Solana RPC websocket spec (https://solana.com/docs/rpc/websocket). Ankr does not enumerate individual *Subscribe methods in its docs.
wss
solana-devnet
rpc.ankr.com/solana_devnet/{apiKey}
Solana Devnet WebSocket endpoint
wss
xrp
rpc.ankr.com/xrp_mainnet/{apiKey}
XRP Mainnet WebSocket endpoint
wss
ton
rpc.ankr.com/ton_api_v2/{apiKey}
TON JSON-RPC Mainnet WebSocket endpoint
wss
polkadot
rpc.ankr.com/polkadot/{apiKey}
Polkadot Mainnet WebSocket endpoint
wss
kusama
rpc.ankr.com/kusama/{apiKey}
Kusama Mainnet WebSocket endpoint
wss
sui
rpc.ankr.com/sui/{apiKey}
Sui Mainnet / Testnet WebSocket endpoint
wss
nervos
rpc.ankr.com/nervos/{apiKey}
Nervos CKB Mainnet WebSocket endpoint
wss
zero-g-evm
rpc.ankr.com/0g_galileo_testnet_evm/{apiKey}
0G Galileo EVM testnet WebSocket endpoint
wss
zero-g-tendermint
rpc.ankr.com/0g_galileo_testnet_tendermint/{apiKey}
0G Galileo Tendermint testnet WebSocket endpoint
wss
allora
rpc.ankr.com/allora_testnet/{apiKey}
Allora Tendermint testnet WebSocket endpoint
wss
atleta
rpc.ankr.com/atleta_olympia/{apiKey}
Atleta Olympia WebSocket endpoint
wss
avail
rpc.ankr.com/avail_turing_testnet/{apiKey}
Avail Turing testnet WebSocket endpoint
wss
secret-network
rpc.ankr.com/scrt/{apiKey}
Secret Network Tendermint Mainnet WebSocket endpoint
wss
midnight
rpc.ankr.com/midnight_testnet/{apiKey}
Midnight testnet WebSocket endpoint
AsyncAPI Specification
asyncapi: '2.6.0'
id: 'urn:com:ankr:rpc-service:websocket'
info:
title: Ankr RPC Service — WebSocket Subscriptions
version: '2026.05'
description: |
AsyncAPI description of Ankr's WebSocket JSON-RPC surface for blockchain
subscriptions. Ankr exposes a single multichain WSS endpoint at
`wss://rpc.ankr.com/{chain_slug}/{apiKey}` for every chain its
`chains-list` documentation marks as `HTTPS and WSS`.
WebSocket access requires the Freemium or Premium service plan, per
https://www.ankr.com/docs/rpc-service/service-plans/. WebSocket traffic is
metered as two actions — Subscription (establishing a WSS connection +
subscribing to events) and Notification (receiving a server-pushed update).
Pricing as of 2026-05: Solana Subscription/Notification 500 credits each
(~$0.00005), EVM-compatible Subscription 200 credits (~$0.00002), and
non-Solana Notification 100 credits (~$0.00001).
For each chain, Ankr commits to supporting "all the applicable methods
except for those listed as unsupported" (see
https://www.ankr.com/docs/rpc-service/chains/chains-list/). For EVM chains,
the WSS-only unsupported list is uniformly `txpool_content`, `txpool_inspect`,
`txpool_status`, `txpool_contentFrom`. For Solana, the only unsupported
method is `getLargestAccounts` (no subscribe methods are flagged as
unsupported).
Ankr's own documentation does NOT enumerate specific subscription type
names (newHeads, logs, newPendingTransactions, syncing for EVM;
accountSubscribe, logsSubscribe, programSubscribe, signatureSubscribe,
slotSubscribe, blockSubscribe, rootSubscribe, voteSubscribe,
slotsUpdatesSubscribe for Solana). To stay faithful to the source, this
spec models the JSON-RPC method surface that Ankr commits to
(`eth_subscribe` / `eth_unsubscribe` for EVM and the Solana subscribe
namespace) without inventing specific subscription type strings. The
canonical taxonomy of subscription types is delegated to the upstream
standards Ankr itself references:
* Ethereum execution-apis: https://github.com/ethereum/execution-apis
* Solana RPC websocket: https://solana.com/docs/rpc/websocket
See asyncapi/review.yml for the full documentation-gap log.
termsOfService: https://www.ankr.com/terms/
contact:
name: Ankr Support
url: https://www.ankr.com/docs/
license:
name: Ankr Terms of Service
url: https://www.ankr.com/terms/
x-source:
pages:
- https://www.ankr.com/docs/rpc-service/chains/chains-list/
- https://www.ankr.com/docs/rpc-service/service-plans/
- https://www.ankr.com/docs/rpc-service/pricing/
- https://www.ankr.com/docs/rpc-service/chains/chains-api/ethereum/
- https://www.ankr.com/docs/rpc-service/chains/chains-api/solana/
github_repo: https://github.com/Ankr-network/ankr-docs
github_ref: stage
defaultContentType: application/json
servers:
# EVM chains documented as supporting WSS in chains-list.mdx.
# URL pattern `wss://rpc.ankr.com/{chain_slug}/{apiKey}` mirrors the documented
# HTTPS pattern; Ankr does not publish a literal wss:// example, but the
# service-plans page confirms WSS is the transport on the same per-chain
# endpoint surface.
ethereum:
url: rpc.ankr.com/eth/{apiKey}
protocol: wss
description: Ethereum Mainnet (plus Holesky / Sepolia via separate slugs)
variables:
apiKey:
description: Ankr project API key (Freemium or Premium plan required for WSS)
default: ''
ethereum-sepolia:
url: rpc.ankr.com/eth_sepolia/{apiKey}
protocol: wss
description: Ethereum Sepolia testnet
variables:
apiKey: { default: '' }
ethereum-holesky:
url: rpc.ankr.com/eth_holesky/{apiKey}
protocol: wss
description: Ethereum Holesky testnet
variables:
apiKey: { default: '' }
bnb-smart-chain:
url: rpc.ankr.com/bsc/{apiKey}
protocol: wss
description: BNB Smart Chain Mainnet
variables:
apiKey: { default: '' }
bnb-smart-chain-testnet:
url: rpc.ankr.com/bsc_testnet_chapel/{apiKey}
protocol: wss
description: BNB Smart Chain Chapel testnet
variables:
apiKey: { default: '' }
polygon:
url: rpc.ankr.com/polygon/{apiKey}
protocol: wss
description: Polygon Mainnet
variables:
apiKey: { default: '' }
polygon-amoy:
url: rpc.ankr.com/polygon_amoy/{apiKey}
protocol: wss
description: Polygon Amoy testnet
variables:
apiKey: { default: '' }
arbitrum:
url: rpc.ankr.com/arbitrum/{apiKey}
protocol: wss
description: Arbitrum One Mainnet
variables:
apiKey: { default: '' }
arbitrum-nova:
url: rpc.ankr.com/arbitrumnova/{apiKey}
protocol: wss
description: Arbitrum Nova Mainnet
variables:
apiKey: { default: '' }
optimism:
url: rpc.ankr.com/optimism/{apiKey}
protocol: wss
description: Optimism Mainnet (+ Sepolia documented)
variables:
apiKey: { default: '' }
base:
url: rpc.ankr.com/base/{apiKey}
protocol: wss
description: Base Mainnet (+ Sepolia documented)
variables:
apiKey: { default: '' }
avalanche:
url: rpc.ankr.com/avalanche/{apiKey}
protocol: wss
description: Avalanche Standard EVM API
variables:
apiKey: { default: '' }
fantom:
url: rpc.ankr.com/fantom/{apiKey}
protocol: wss
description: Fantom Mainnet
variables:
apiKey: { default: '' }
fantom-testnet:
url: rpc.ankr.com/fantom_testnet/{apiKey}
protocol: wss
description: Fantom testnet
variables:
apiKey: { default: '' }
gnosis:
url: rpc.ankr.com/gnosis/{apiKey}
protocol: wss
description: Gnosis Mainnet
variables:
apiKey: { default: '' }
celo:
url: rpc.ankr.com/celo/{apiKey}
protocol: wss
description: Celo Mainnet
variables:
apiKey: { default: '' }
moonbeam:
url: rpc.ankr.com/moonbeam/{apiKey}
protocol: wss
description: Moonbeam Mainnet
variables:
apiKey: { default: '' }
linea:
url: rpc.ankr.com/linea/{apiKey}
protocol: wss
description: Linea Mainnet
variables:
apiKey: { default: '' }
scroll:
url: rpc.ankr.com/scroll/{apiKey}
protocol: wss
description: Scroll Mainnet
variables:
apiKey: { default: '' }
zksync-era:
url: rpc.ankr.com/zksync_era/{apiKey}
protocol: wss
description: zkSync Era Mainnet
variables:
apiKey: { default: '' }
blast:
url: rpc.ankr.com/blast_testnet_sepolia/{apiKey}
protocol: wss
description: Blast Mainnet / Sepolia testnet
variables:
apiKey: { default: '' }
mantle:
url: rpc.ankr.com/mantle/{apiKey}
protocol: wss
description: Mantle Mainnet
variables:
apiKey: { default: '' }
metis:
url: rpc.ankr.com/metis/{apiKey}
protocol: wss
description: Metis Mainnet
variables:
apiKey: { default: '' }
filecoin:
url: rpc.ankr.com/filecoin/{apiKey}
protocol: wss
description: Filecoin Mainnet
variables:
apiKey: { default: '' }
flare:
url: rpc.ankr.com/flare/{apiKey}
protocol: wss
description: Flare Standard EVM Mainnet
variables:
apiKey: { default: '' }
harmony:
url: rpc.ankr.com/harmony/{apiKey}
protocol: wss
description: Harmony Mainnet
variables:
apiKey: { default: '' }
iotex:
url: rpc.ankr.com/iotex/{apiKey}
protocol: wss
description: IoTeX Mainnet
variables:
apiKey: { default: '' }
iota-evm:
url: rpc.ankr.com/iota_evm/{apiKey}
protocol: wss
description: IOTA EVM Mainnet
variables:
apiKey: { default: '' }
kaia:
url: rpc.ankr.com/kaia/{apiKey}
protocol: wss
description: Kaia Mainnet
variables:
apiKey: { default: '' }
kava-evm:
url: rpc.ankr.com/kava_evm/{apiKey}
protocol: wss
description: Kava EVM Mainnet
variables:
apiKey: { default: '' }
sei-evm:
url: rpc.ankr.com/sei_evm/{apiKey}
protocol: wss
description: Sei EVM Mainnet
variables:
apiKey: { default: '' }
heco:
url: rpc.ankr.com/heco/{apiKey}
protocol: wss
description: Huobi ECO Chain Mainnet
variables:
apiKey: { default: '' }
horizen-eon:
url: rpc.ankr.com/horizen_eon/{apiKey}
protocol: wss
description: Horizen EON Mainnet
variables:
apiKey: { default: '' }
rollux:
url: rpc.ankr.com/rollux/{apiKey}
protocol: wss
description: Rollux Mainnet
variables:
apiKey: { default: '' }
syscoin:
url: rpc.ankr.com/syscoin/{apiKey}
protocol: wss
description: Syscoin Mainnet
variables:
apiKey: { default: '' }
telos:
url: rpc.ankr.com/telos/{apiKey}
protocol: wss
description: Telos Mainnet
variables:
apiKey: { default: '' }
xai:
url: rpc.ankr.com/xai/{apiKey}
protocol: wss
description: Xai Mainnet
variables:
apiKey: { default: '' }
xdc:
url: rpc.ankr.com/xdc/{apiKey}
protocol: wss
description: XDC Network Mainnet
variables:
apiKey: { default: '' }
xlayer:
url: rpc.ankr.com/xlayer/{apiKey}
protocol: wss
description: X Layer Mainnet
variables:
apiKey: { default: '' }
monad:
url: rpc.ankr.com/monad_testnet/{apiKey}
protocol: wss
description: Monad Mainnet / Testnet
variables:
apiKey: { default: '' }
sonic:
url: rpc.ankr.com/sonic_mainnet/{apiKey}
protocol: wss
description: Sonic Mainnet
variables:
apiKey: { default: '' }
story:
url: rpc.ankr.com/story_mainnet/{apiKey}
protocol: wss
description: Story Mainnet
variables:
apiKey: { default: '' }
swell:
url: rpc.ankr.com/swell/{apiKey}
protocol: wss
description: Swell Mainnet / Sepolia
variables:
apiKey: { default: '' }
taiko:
url: rpc.ankr.com/taiko_hekla/{apiKey}
protocol: wss
description: Taiko Hekla testnet
variables:
apiKey: { default: '' }
kite:
url: rpc.ankr.com/kite_mainnet/{apiKey}
protocol: wss
description: Kite AI Mainnet
variables:
apiKey: { default: '' }
bahamut:
url: rpc.ankr.com/bahamut/{apiKey}
protocol: wss
description: Bahamut Mainnet
variables:
apiKey: { default: '' }
b2-network:
url: rpc.ankr.com/b2/{apiKey}
protocol: wss
description: B2 Network Mainnet
variables:
apiKey: { default: '' }
bitlayer:
url: rpc.ankr.com/bitlayer/{apiKey}
protocol: wss
description: Bitlayer Mainnet
variables:
apiKey: { default: '' }
botanix:
url: rpc.ankr.com/botanix_testnet/{apiKey}
protocol: wss
description: Botanix Mainnet / Testnet
variables:
apiKey: { default: '' }
chiliz:
url: rpc.ankr.com/chiliz/{apiKey}
protocol: wss
description: Chiliz Mainnet
variables:
apiKey: { default: '' }
core:
url: rpc.ankr.com/core/{apiKey}
protocol: wss
description: Core Mainnet
variables:
apiKey: { default: '' }
corn:
url: rpc.ankr.com/corn_maizenet/{apiKey}
protocol: wss
description: Corn Mainnet
variables:
apiKey: { default: '' }
electroneum:
url: rpc.ankr.com/electroneum/{apiKey}
protocol: wss
description: Electroneum Mainnet
variables:
apiKey: { default: '' }
etherlink:
url: rpc.ankr.com/etherlink_mainnet/{apiKey}
protocol: wss
description: Etherlink Mainnet
variables:
apiKey: { default: '' }
goat:
url: rpc.ankr.com/goat_testnet/{apiKey}
protocol: wss
description: GOAT testnet
variables:
apiKey: { default: '' }
gravity:
url: rpc.ankr.com/gravity/{apiKey}
protocol: wss
description: Gravity Mainnet
variables:
apiKey: { default: '' }
kinto:
url: rpc.ankr.com/kinto/{apiKey}
protocol: wss
description: Kinto Mainnet
variables:
apiKey: { default: '' }
matchain:
url: rpc.ankr.com/matchain_mainnet/{apiKey}
protocol: wss
description: Matchain Mainnet
variables:
apiKey: { default: '' }
neura:
url: rpc.ankr.com/neura_testnet/{apiKey}
protocol: wss
description: Neura testnet
variables:
apiKey: { default: '' }
somnia:
url: rpc.ankr.com/somnia_testnet/{apiKey}
protocol: wss
description: Somnia testnet
variables:
apiKey: { default: '' }
tac:
url: rpc.ankr.com/tac_turin/{apiKey}
protocol: wss
description: TAC Mainnet / SPB / Turin
variables:
apiKey: { default: '' }
tenet:
url: rpc.ankr.com/tenet_evm/{apiKey}
protocol: wss
description: Tenet Mainnet Beta
variables:
apiKey: { default: '' }
xphere:
url: rpc.ankr.com/xphere_mainnet/{apiKey}
protocol: wss
description: Xphere Mainnet / Testnet
variables:
apiKey: { default: '' }
# Non-EVM chains documented as supporting WSS.
solana:
url: rpc.ankr.com/solana/{apiKey}
protocol: wss
description: |
Solana Mainnet WebSocket endpoint. Per chains-list.mdx, the only Solana
method Ankr flags as unsupported is `getLargestAccounts`; the subscribe
method taxonomy follows the upstream Solana RPC websocket spec
(https://solana.com/docs/rpc/websocket). Ankr does not enumerate
individual *Subscribe methods in its docs.
variables:
apiKey: { default: '' }
solana-devnet:
url: rpc.ankr.com/solana_devnet/{apiKey}
protocol: wss
description: Solana Devnet WebSocket endpoint
variables:
apiKey: { default: '' }
xrp:
url: rpc.ankr.com/xrp_mainnet/{apiKey}
protocol: wss
description: XRP Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
ton:
url: rpc.ankr.com/ton_api_v2/{apiKey}
protocol: wss
description: TON JSON-RPC Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
polkadot:
url: rpc.ankr.com/polkadot/{apiKey}
protocol: wss
description: Polkadot Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
kusama:
url: rpc.ankr.com/kusama/{apiKey}
protocol: wss
description: Kusama Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
sui:
url: rpc.ankr.com/sui/{apiKey}
protocol: wss
description: Sui Mainnet / Testnet WebSocket endpoint
variables:
apiKey: { default: '' }
nervos:
url: rpc.ankr.com/nervos/{apiKey}
protocol: wss
description: Nervos CKB Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
zero-g-evm:
url: rpc.ankr.com/0g_galileo_testnet_evm/{apiKey}
protocol: wss
description: 0G Galileo EVM testnet WebSocket endpoint
variables:
apiKey: { default: '' }
zero-g-tendermint:
url: rpc.ankr.com/0g_galileo_testnet_tendermint/{apiKey}
protocol: wss
description: 0G Galileo Tendermint testnet WebSocket endpoint
variables:
apiKey: { default: '' }
allora:
url: rpc.ankr.com/allora_testnet/{apiKey}
protocol: wss
description: Allora Tendermint testnet WebSocket endpoint
variables:
apiKey: { default: '' }
atleta:
url: rpc.ankr.com/atleta_olympia/{apiKey}
protocol: wss
description: Atleta Olympia WebSocket endpoint
variables:
apiKey: { default: '' }
avail:
url: rpc.ankr.com/avail_turing_testnet/{apiKey}
protocol: wss
description: Avail Turing testnet WebSocket endpoint
variables:
apiKey: { default: '' }
secret-network:
url: rpc.ankr.com/scrt/{apiKey}
protocol: wss
description: Secret Network Tendermint Mainnet WebSocket endpoint
variables:
apiKey: { default: '' }
midnight:
url: rpc.ankr.com/midnight_testnet/{apiKey}
protocol: wss
description: Midnight testnet WebSocket endpoint
variables:
apiKey: { default: '' }
channels:
# ---- EVM JSON-RPC subscription channels ----
#
# Ankr documents support for the standard Ethereum execution-apis JSON-RPC
# surface over WSS. The unsupported list for every WSS-enabled EVM chain
# is the same four methods: txpool_content, txpool_inspect, txpool_status,
# txpool_contentFrom. eth_subscribe / eth_unsubscribe are NOT on the
# unsupported list and therefore are committed-to surfaces.
#
# Ankr does NOT enumerate which subscription type strings eth_subscribe
# accepts. Per the canonical execution-apis spec, the standard set is
# newHeads, logs, newPendingTransactions, syncing — but those are not
# named in Ankr's docs and so are intentionally not enumerated here.
/evm/eth_subscribe:
description: |
Client invokes `eth_subscribe` to subscribe to a stream of
server-pushed events. The first parameter is a subscription-type
string; the optional second parameter is a type-specific options
object. Ankr does not enumerate accepted subscription-type strings —
consult the upstream Ethereum execution-apis spec.
bindings:
ws:
bindingVersion: '0.1.0'
publish:
operationId: ethSubscribe
summary: Subscribe to an EVM event stream
message:
$ref: '#/components/messages/EthSubscribeRequest'
subscribe:
operationId: ethSubscribeNotifications
summary: Receive eth_subscription notifications
message:
$ref: '#/components/messages/EthSubscriptionNotification'
/evm/eth_unsubscribe:
description: |
Client invokes `eth_unsubscribe` with a previously-returned subscription
ID to cancel a stream.
bindings:
ws:
bindingVersion: '0.1.0'
publish:
operationId: ethUnsubscribe
summary: Cancel an existing EVM subscription
message:
$ref: '#/components/messages/EthUnsubscribeRequest'
# ---- Solana JSON-RPC subscription channels ----
#
# Per chains-list.mdx, Ankr supports all "applicable" Solana RPC methods on
# both HTTPS and WSS except `getLargestAccounts`. Ankr's Solana
# documentation page documents only HTTP methods; subscription methods
# are not individually named. The canonical Solana RPC websocket spec
# (https://solana.com/docs/rpc/websocket) defines the subscribe namespace.
# Rather than fabricate a per-method enumeration Ankr has not itself
# committed to, this channel models the subscribe namespace generically.
/solana/subscribe:
description: |
Client invokes one of Solana's `*Subscribe` JSON-RPC methods to open a
stream (e.g. `accountSubscribe`, `logsSubscribe`, `slotSubscribe`,
`programSubscribe`, `signatureSubscribe`, `blockSubscribe`,
`rootSubscribe`, `voteSubscribe`, `slotsUpdatesSubscribe`).
Per Ankr's chains-list documentation, Ankr commits to all standard
Solana RPC methods except `getLargestAccounts`. Ankr does not
individually document any *Subscribe method.
bindings:
ws:
bindingVersion: '0.1.0'
publish:
operationId: solanaSubscribe
summary: Open a Solana subscription stream
message:
$ref: '#/components/messages/SolanaSubscribeRequest'
subscribe:
operationId: solanaNotifications
summary: Receive Solana subscription notifications
message:
$ref: '#/components/messages/SolanaSubscriptionNotification'
/solana/unsubscribe:
description: |
Client invokes one of Solana's `*Unsubscribe` JSON-RPC methods to close
a stream.
bindings:
ws:
bindingVersion: '0.1.0'
publish:
operationId: solanaUnsubscribe
summary: Cancel an existing Solana subscription
message:
$ref: '#/components/messages/SolanaUnsubscribeRequest'
components:
messages:
EthSubscribeRequest:
name: EthSubscribeRequest
title: eth_subscribe JSON-RPC request
summary: |
Client → server JSON-RPC 2.0 request opening an EVM subscription.
contentType: application/json
payload:
$ref: '#/components/schemas/EthSubscribeRequest'
EthUnsubscribeRequest:
name: EthUnsubscribeRequest
title: eth_unsubscribe JSON-RPC request
summary: |
Client → server JSON-RPC 2.0 request closing an EVM subscription.
contentType: application/json
payload:
$ref: '#/components/schemas/EthUnsubscribeRequest'
EthSubscriptionNotification:
name: EthSubscriptionNotification
title: eth_subscription notification
summary: |
Server → client JSON-RPC notification delivered while the subscription
is open. The shape of `params.result` is governed by the upstream
Ethereum execution-apis spec for the requested subscription type.
contentType: application/json
payload:
$ref: '#/components/schemas/EthSubscriptionNotification'
SolanaSubscribeRequest:
name: SolanaSubscribeRequest
title: Solana *Subscribe JSON-RPC request
summary: |
Client → server JSON-RPC 2.0 request opening a Solana subscription.
contentType: application/json
payload:
$ref: '#/components/schemas/SolanaSubscribeRequest'
SolanaUnsubscribeRequest:
name: SolanaUnsubscribeRequest
title: Solana *Unsubscribe JSON-RPC request
summary: |
Client → server JSON-RPC 2.0 request closing a Solana subscription.
contentType: application/json
payload:
$ref: '#/components/schemas/SolanaUnsubscribeRequest'
SolanaSubscriptionNotification:
name: SolanaSubscriptionNotification
title: Solana subscription notification
summary: |
Server → client JSON-RPC notification delivered while the subscription
is open. The shape of `params.result` is governed by the upstream
Solana RPC websocket spec for the requested subscription method.
contentType: application/json
payload:
$ref: '#/components/schemas/SolanaSubscriptionNotification'
schemas:
JsonRpcId:
description: JSON-RPC 2.0 request id
oneOf:
- type: string
- type: integer
- type: 'null'
EthSubscribeRequest:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc:
type: string
enum: ['2.0']
id:
$ref: '#/components/schemas/JsonRpcId'
method:
type: string
enum: [eth_subscribe]
params:
type: array
minItems: 1
maxItems: 2
description: |
First element is the subscription-type string; second optional
element is a type-specific options object. Ankr does not enumerate
accepted type strings; consult the Ethereum execution-apis spec
(https://github.com/ethereum/execution-apis) for the canonical set.
items:
oneOf:
- type: string
- type: object
EthUnsubscribeRequest:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc:
type: string
enum: ['2.0']
id:
$ref: '#/components/schemas/JsonRpcId'
method:
type: string
enum: [eth_unsubscribe]
params:
type: array
minItems: 1
maxItems: 1
items:
type: string
description: Subscription ID returned by the original eth_subscribe call
EthSubscriptionNotification:
type: object
required: [jsonrpc, method, params]
properties:
jsonrpc:
type: string
enum: ['2.0']
method:
type: string
enum: [eth_subscription]
params:
type: object
required: [subscription, result]
properties:
subscription:
type: string
description: ID returned by the original eth_subscribe request
result:
description: |
Type-specific event payload. Schema is determined by the
subscription-type string used at subscribe time; not enumerated
by Ankr.
SolanaSubscribeRequest:
type: object
required: [jsonrpc, id, method]
properties:
jsonrpc:
type: string
enum: ['2.0']
id:
$ref: '#/components/schemas/JsonRpcId'
method:
type: string
description: |
One of Solana's subscribe methods. Ankr does not individually
document these; the canonical taxonomy is defined by the Solana
RPC websocket spec (https://solana.com/docs/rpc/websocket).
params:
type: array
description: Method-specific positional parameters
SolanaUnsubscribeRequest:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc:
type: string
enum: ['2.0']
id:
$ref: '#/components/schemas/JsonRpcId'
method:
type: string
description: |
One of Solana's unsubscribe methods (paired with a subscribe
method, e.g. accountUnsubscribe).
params:
type: array
minItems: 1
maxItems: 1
items:
type: integer
description: Subscription ID returned by the original subscribe call
SolanaSubscriptionNotification:
type: object
required: [jsonrpc, method, params]
properties:
jsonrpc:
type: string
enum: ['2.0']
method:
type: string
description: |
Notification method name. Schema is defined by the upstream Solana
RPC websocket spec for each subscribe method.
params:
type: object
required: [subscription, result]
properties:
subscription:
type: integer
description: ID returned by the original subscribe request
result:
description: Method-specific event payload
securitySchemes:
apiKey:
type: apiKey
in: user
description: |
Ankr authenticates WebSocket connections by embedding the project
API key as the last URL path segment (server `apiKey` variable).
Obtain a key from https://www.ankr.com/rpc/projects/. The Freemium
or Premium plan is required to use the WSS transport.
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/ankr-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms .
A second provider on the same verified email joins the account you already have.