ankr · AsyncAPI Specification

Review

Version

View Spec View on GitHub AsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
aid: ankr
generated: '2026-05-29'
target: AsyncAPI 2.6 spec for Ankr's WebSocket-based RPC subscriptions
status: partial
summary: |
  Ankr publicly documents that WSS is supported on ~50 EVM/EVM-adjacent chains and on
  Solana, and that WebSocket traffic is metered as Subscription + Notification actions.
  However, Ankr's documentation does NOT enumerate the specific subscription types
  (e.g. newHeads, logs, newPendingTransactions, syncing for EVM; accountSubscribe,
  logsSubscribe, programSubscribe, signatureSubscribe, slotSubscribe, blockSubscribe,
  rootSubscribe, voteSubscribe, slotsUpdatesSubscribe for Solana).
  Per the hard rule "every subscription from official Ankr docs — no fabrication",
  the resulting AsyncAPI spec is intentionally conservative: it models the
  JSON-RPC-over-WebSocket envelope and the eth_subscribe / eth_unsubscribe operations
  Ankr commits to, plus the Solana subscribe/unsubscribe namespace, without
  enumerating individual subscription types Ankr has not itself named.

sources_consulted:
- url: https://www.ankr.com/docs/rpc-service/chains/chains-list/
  github_path: pages/rpc-service/chains/chains-list.mdx
  status: fetched
  notes: |
    Authoritative source for which chains/networks expose WSS. Lists 50+ EVM chains
    and Solana Mainnet+Devnet as `HTTPS and WSS`. For each chain's WSS surface, the
    only explicitly unsupported methods are `txpool_content`, `txpool_inspect`,
    `txpool_status`, `txpool_contentFrom`. Confirms Solana WSS support; only
    `getLargestAccounts` is listed as unsupported for Solana (no subscribe methods
    enumerated).
- url: https://www.ankr.com/docs/rpc-service/service-plans/
  github_path: pages/rpc-service/service-plans.mdx
  status: fetched
  notes: |
    Confirms WSS connection requires Freemium/Premium plan. Documents WebSocket
    interaction as two actions: Subscription (establishing WSS + subscribing to
    events) and Notification (receiving events). Prices Solana subscriptions at
    500 credits and EVM-compatible at 200 credits; Solana notifications at 500
    credits, "Other" notifications at 100 credits.
- url: https://www.ankr.com/docs/rpc-service/pricing/
  github_path: pages/rpc-service/pricing.mdx
  status: fetched
  notes: Same WSS pricing table as service-plans.mdx.
- url: https://www.ankr.com/docs/rpc-service/chains/chains-api/ethereum/
  github_path: pages/rpc-service/chains/chains-api/ethereum.mdx
  status: fetched
  notes: |
    Documents standard Ethereum JSON-RPC methods (web3_*, net_*, eth_*) over
    HTTPS. Does NOT document eth_subscribe, eth_unsubscribe, or any specific
    subscription type (newHeads, logs, newPendingTransactions, syncing). The
    docs implicitly cover them via the "all applicable methods except those
    listed as unsupported" statement on chains-list.mdx.
- url: https://www.ankr.com/docs/rpc-service/chains/chains-api/solana/
  github_path: pages/rpc-service/chains/chains-api/solana.mdx
  status: fetched
  notes: |
    Documents 50 Solana HTTP JSON-RPC methods (getAccountInfo, getBalance, getBlock,
    sendTransaction, simulateTransaction, etc.). Does NOT document any *Subscribe
    method (accountSubscribe, logsSubscribe, programSubscribe, signatureSubscribe,
    slotSubscribe, blockSubscribe, rootSubscribe, voteSubscribe,
    slotsUpdatesSubscribe). The chains-list page asserts WSS is supported on
    Solana Mainnet and Devnet without enumerating subscription types.
- url: https://www.ankr.com/docs/rpc-service/chains/chains-api/websocket/
  status: not_found
  notes: |
    No dedicated WebSocket subscriptions page exists in the Ankr documentation
    repository (Ankr-network/ankr-docs on branch `stage`). A repository-wide
    search for `websocket|subscribe|wss://` produced no dedicated reference page
    for eth_subscribe types or Solana subscription methods.

documentation_gaps:
- gap: Ankr publishes no canonical wss:// URL example anywhere in its docs
  decision: |
    Followed the implicit Web3 convention used by the documented HTTPS endpoints
    — wss://rpc.ankr.com/{chain_slug}/{apiKey} — and called this assumption out
    explicitly in spec comments. Chain slugs reused from documented HTTPS URLs.
- gap: |
    Ankr does not enumerate which specific eth_subscribe types it accepts
    (newHeads, logs, newPendingTransactions, syncing).
  decision: |
    The AsyncAPI spec does NOT enumerate specific subscription type strings to
    avoid fabrication. It models eth_subscribe / eth_unsubscribe as the request
    methods with the first param being a `subscription_type` string, leaving
    the type taxonomy to upstream Ethereum execution-API spec
    (https://github.com/ethereum/execution-apis), which Ankr's chains-list page
    references as the canonical surface ("we support blockchain interaction via
    all the applicable methods except for those listed as unsupported").
- gap: |
    Ankr's Solana page does not list any *Subscribe method by name.
  decision: |
    AsyncAPI spec defers to the canonical Solana RPC websocket spec
    (https://solana.com/docs/rpc/websocket) for the subscribe method taxonomy and
    does not enumerate individual methods Ankr has not itself documented.

chains_with_documented_wss_support:
  source: pages/rpc-service/chains/chains-list.mdx
  evm_compatible:
  - chain: Arbitrum
    slug: arbitrum
    networks: [Mainnet, Testnet]
  - chain: Arbitrum Nova
    slug: arbitrumnova
    networks: [Mainnet]
  - chain: Atleta
    slug: atleta_olympia
    networks: [Olympia]
  - chain: Avalanche
    slug: avalanche
    networks: [Standard EVM Mainnet]
  - chain: B2 Network
    slug: b2
    networks: [Mainnet, Testnet]
  - chain: Bahamut
    slug: bahamut
    networks: [Mainnet, Testnet]
  - chain: Base
    slug: base
    networks: [Mainnet, Sepolia]
  - chain: Bitlayer
    slug: bitlayer
    networks: [Mainnet, Testnet]
  - chain: Blast
    slug: blast_testnet_sepolia
    networks: [Mainnet, Sepolia Testnet]
  - chain: BNB Smart Chain
    slug: bsc
    networks: [Mainnet, Chapel Testnet]
  - chain: Botanix
    slug: botanix_testnet
    networks: [Mainnet, Testnet]
  - chain: Celo
    slug: celo
    networks: [Mainnet, Testnet]
  - chain: Chiliz
    slug: chiliz
    networks: [Mainnet]
  - chain: Core
    slug: core
    networks: [Mainnet]
  - chain: Corn
    slug: corn_maizenet
    networks: [Mainnet, Testnet]
  - chain: Electroneum
    slug: electroneum
    networks: [Mainnet, Testnet]
  - chain: Ethereum
    slug: eth
    networks: [Mainnet, Holesky, Sepolia]
  - chain: Etherlink
    slug: etherlink_mainnet
    networks: [Mainnet, Testnet]
  - chain: Fantom
    slug: fantom
    networks: [Mainnet, Testnet]
  - chain: Filecoin
    slug: filecoin
    networks: [Mainnet, Testnet]
  - chain: Flare
    slug: flare
    networks: [Standard EVM Mainnet]
  - chain: Gnosis
    slug: gnosis
    networks: [Mainnet, Testnet]
  - chain: GOAT
    slug: goat_testnet
    networks: [Testnet]
  - chain: Gravity
    slug: gravity
    networks: [Mainnet]
  - chain: Linea
    slug: linea
    networks: [Mainnet]
  - chain: Harmony
    slug: harmony
    networks: [Mainnet]
  - chain: Huobi ECO Chain
    slug: heco
    networks: [Mainnet]
  - chain: Horizen EON
    slug: horizen_eon
    networks: [Mainnet, Gobi Testnet]
  - chain: IOTA EVM
    slug: iota_evm
    networks: [Mainnet, Testnet]
  - chain: IoTeX
    slug: iotex
    networks: [Mainnet, Testnet]
  - chain: Kaia
    slug: kaia
    networks: [Mainnet, Testnet]
  - chain: Kava
    slug: kava_evm
    networks: [EVM Mainnet]
  - chain: Kinto
    slug: kinto
    networks: [Mainnet]
  - chain: Mantle
    slug: mantle
    networks: [Mainnet, Sepolia Testnet]
  - chain: Matchain
    slug: matchain_mainnet
    networks: [Mainnet]
  - chain: Metis
    slug: metis
    networks: [Mainnet]
  - chain: Monad
    slug: monad_testnet
    networks: [Mainnet, Testnet]
  - chain: Moonbeam
    slug: moonbeam
    networks: [Mainnet]
  - chain: Neura
    slug: neura_testnet
    networks: [Testnet]
  - chain: Optimism
    slug: optimism
    networks: [Mainnet, Sepolia]
  - chain: Polygon
    slug: polygon
    networks: [Mainnet, Amoy Testnet]
  - chain: Rollux
    slug: rollux
    networks: [Mainnet, Testnet]
  - chain: Scroll
    slug: scroll
    networks: [Mainnet, Sepolia Testnet]
  - chain: Sei
    slug: sei_evm
    networks: [EVM Mainnet]
  - chain: Somnia
    slug: somnia_testnet
    networks: [Testnet]
  - chain: Sonic
    slug: sonic_mainnet
    networks: [Mainnet, Testnet]
  - chain: Story
    slug: story_mainnet
    networks: [Mainnet, Testnet]
  - chain: Swell
    slug: swell
    networks: [Mainnet, Sepolia]
  - chain: Syscoin
    slug: syscoin
    networks: [Mainnet]
  - chain: TAC
    slug: tac_turin
    networks: [Mainnet, SPB, Turin]
  - chain: Taiko
    slug: taiko_hekla
    networks: [Hekla Testnet]
  - chain: Kite AI
    slug: kite_mainnet
    networks: [Mainnet]
  - chain: Telos
    slug: telos
    networks: [Mainnet, Testnet]
  - chain: Tenet
    slug: tenet_evm
    networks: [Mainnet Beta]
  - chain: Xai
    slug: xai
    networks: [Mainnet, Testnet]
  - chain: XDC Network
    slug: xdc
    networks: [Mainnet, Testnet]
  - chain: X Layer
    slug: xlayer
    networks: [Mainnet, Testnet]
  - chain: Xphere
    slug: xphere_mainnet
    networks: [Mainnet, Testnet]
  - chain: zkSync Era
    slug: zksync_era
    networks: [Mainnet, Testnet]
  non_evm:
  - chain: Solana
    slug: solana
    networks: [Mainnet, Devnet]
  - chain: XRP
    slug: xrp_mainnet
    networks: [Mainnet]
  - chain: TON
    slug: ton_api_v2
    networks: [JSON-RPC Mainnet]
  - chain: Polkadot
    slug: polkadot
    networks: [Mainnet]
  - chain: Kusama
    slug: kusama
    networks: [Mainnet]
  - chain: Sui
    slug: sui
    networks: [Mainnet, Testnet]
  - chain: Nervos
    slug: nervos
    networks: [Nervos CKB Mainnet]
  - chain: Allora
    slug: allora_testnet
    networks: [Tendermint RPC Testnet]
  - chain: 0G
    slug: 0g_galileo_testnet_evm
    networks: [EVM Testnet, Tendermint Testnet]
  - chain: Atleta
    slug: atleta_olympia
    networks: [Olympia]
  - chain: Avail
    slug: avail_turing_testnet
    networks: [Turing Testnet]
  - chain: Secret Network
    slug: scrt
    networks: [Tendermint Mainnet]
  - chain: Midnight
    slug: midnight_testnet
    networks: [Testnet]

what_was_produced:
- file: asyncapi/ankr-asyncapi.yml
  scope: |
    AsyncAPI 2.6 spec covering the JSON-RPC-over-WebSocket envelope Ankr commits
    to via the chains-list and service-plans pages. Servers include the EVM
    chains and Solana documented as `HTTPS and WSS`. Channels are scoped to
    eth_subscribe / eth_unsubscribe (EVM) and the Solana subscribe/unsubscribe
    method namespace, with a `subscription_type` parameter intentionally left
    unenumerated so the spec does not invent commitments Ankr has not made.
- file: asyncapi/review.yml
  scope: This file. Documents what the docs do and do not commit to.