Home
Syndica
Syndica Solana RPC PubSub & ChainStream WebSocket API
Syndica Solana RPC PubSub & ChainStream WebSocket API
Version 1.0.0
AsyncAPI 2.6 specification for Syndica's Solana WebSocket surface. Covers two products: 1. **Solana RPC PubSub** — JSON-RPC 2.0 subscriptions served from `wss://solana-mainnet.api.syndica.io/api-key/`. Drop-in compatible with the standard Solana PubSub methods (`accountSubscribe`, `blockSubscribe`, `logsSubscribe`, `programSubscribe`, `signatureSubscribe`, `slotSubscribe`, `voteSubscribe`, `rootSubscribe`) and their matching `*Unsubscribe` calls. 2. **ChainStream** — Syndica's proprietary low-latency JSON-RPC 2.0 streaming API served from `wss://chainstream.api.syndica.io/api-key/`. Consolidates updates across multiple validators using a "fastest wins" strategy and supports `transactionsSubscribe`, `slotsSubscribe`, and `blocksSubscribe`, plus their `*Unsubscribe` counterparts. Authentication is performed by embedding the credential in the URL path.
View Spec
View on GitHub
Solana Blockchain Web3 RPC Streaming Infrastructure Validator Staking Real-Time AsyncAPI Events WebSockets
Channels
accountSubscribe
publish accountSubscribe
Open an account subscription.
Subscribe to an account to receive notifications when the lamports or data for a given account public key changes.
accountUnsubscribe
publish accountUnsubscribe
Unsubscribe from account-change notifications.
blockSubscribe
publish blockSubscribe
Subscribe to receive notifications when a new block is confirmed or finalized. Filter by `all` or by `mentionsAccountOrProgram`.
blockUnsubscribe
publish blockUnsubscribe
Unsubscribe from block notifications.
logsSubscribe
publish logsSubscribe
Subscribe to transaction log notifications. Filter by `all`, `allWithVotes`, or by `mentions` of one account public key.
logsUnsubscribe
publish logsUnsubscribe
Unsubscribe from log notifications.
programSubscribe
publish programSubscribe
Subscribe to a program to receive notifications when the lamports or data for any account owned by the program changes.
programUnsubscribe
publish programUnsubscribe
Unsubscribe from program-account notifications.
signatureSubscribe
publish signatureSubscribe
Subscribe to a transaction signature to receive a single notification when the transaction reaches the requested commitment level.
signatureUnsubscribe
publish signatureUnsubscribe
Unsubscribe from signature notifications.
slotSubscribe
publish slotSubscribe
Subscribe to receive notification any time a slot is processed by the validator.
slotUnsubscribe
publish slotUnsubscribe
Unsubscribe from slot notifications.
voteSubscribe
publish voteSubscribe
Subscribe to receive notification any time a new vote is observed in gossip. These votes are pre-consensus and not guaranteed to land on chain.
voteUnsubscribe
publish voteUnsubscribe
Unsubscribe from vote notifications.
rootSubscribe
publish rootSubscribe
Subscribe to receive notification any time a new root is set by the validator.
rootUnsubscribe
publish rootUnsubscribe
Unsubscribe from root notifications.
chainstream.transactionsSubscribe
publish chainstreamTransactionsSubscribe
ChainStream `transactionsSubscribe` — receive real-time Solana transaction notifications consolidated across multiple validators. Supports the optional `verified` parameter to deliver only transactions confirmed by multiple validators at `processed` commitment.
chainstream.transactionsUnsubscribe
publish chainstreamTransactionsUnsubscribe
Unsubscribe from ChainStream transaction notifications.
chainstream.slotsSubscribe
publish chainstreamSlotsSubscribe
ChainStream `slotsSubscribe` — real-time slot updates consolidated across validators.
chainstream.slotsUnsubscribe
publish chainstreamSlotsUnsubscribe
Unsubscribe from ChainStream slot notifications.
chainstream.blocksSubscribe
publish chainstreamBlocksSubscribe
ChainStream `blocksSubscribe` — encoded block notifications consolidated across validators.
chainstream.blocksUnsubscribe
publish chainstreamBlocksUnsubscribe
Unsubscribe from ChainStream block notifications.
Messages
✉
SimpleSubscribeRequest
JSON-RPC subscription request (no parameters)
✉
UnsubscribeRequest
JSON-RPC unsubscribe request
✉
UnsubscribeResult
JSON-RPC unsubscribe result
✉
AccountSubscribeRequest
AccountSubscribeRequest
✉
AccountNotification
AccountNotification
✉
BlockSubscribeRequest
BlockSubscribeRequest
✉
BlockNotification
BlockNotification
✉
LogsSubscribeRequest
LogsSubscribeRequest
✉
LogsNotification
LogsNotification
✉
ProgramSubscribeRequest
ProgramSubscribeRequest
✉
ProgramNotification
ProgramNotification
✉
SignatureSubscribeRequest
SignatureSubscribeRequest
✉
SignatureNotification
SignatureNotification
✉
SlotNotification
SlotNotification
✉
VoteNotification
VoteNotification
✉
RootNotification
RootNotification
✉
ChainstreamTransactionsSubscribeRequest
ChainstreamTransactionsSubscribeRequest
✉
ChainstreamTransactionsNotification
ChainstreamTransactionsNotification
✉
ChainstreamSlotsSubscribeRequest
ChainstreamSlotsSubscribeRequest
✉
ChainstreamSlotsNotification
ChainstreamSlotsNotification
✉
ChainstreamBlocksSubscribeRequest
ChainstreamBlocksSubscribeRequest
✉
ChainstreamBlocksNotification
ChainstreamBlocksNotification
Servers
wss
solana-rpc-pubsub
solana-mainnet.api.syndica.io/api-key/{apiKey}
Syndica Solana RPC PubSub WebSocket endpoint.
wss
chainstream
chainstream.api.syndica.io/api-key/{apiKey}
Syndica ChainStream WebSocket endpoint.
AsyncAPI Specification
asyncapi: '2.6.0'
info:
title: Syndica Solana RPC PubSub & ChainStream WebSocket API
version: '1.0.0'
description: |
AsyncAPI 2.6 specification for Syndica's Solana WebSocket surface. Covers two
products:
1. **Solana RPC PubSub** — JSON-RPC 2.0 subscriptions served from
`wss://solana-mainnet.api.syndica.io/api-key/<API_KEY>`. Drop-in
compatible with the standard Solana PubSub methods (`accountSubscribe`,
`blockSubscribe`, `logsSubscribe`, `programSubscribe`,
`signatureSubscribe`, `slotSubscribe`, `voteSubscribe`,
`rootSubscribe`) and their matching `*Unsubscribe` calls.
2. **ChainStream** — Syndica's proprietary low-latency JSON-RPC 2.0
streaming API served from
`wss://chainstream.api.syndica.io/api-key/<API_KEY>`. Consolidates
updates across multiple validators using a "fastest wins" strategy
and supports `transactionsSubscribe`, `slotsSubscribe`, and
`blocksSubscribe`, plus their `*Unsubscribe` counterparts.
Authentication is performed by embedding the credential in the URL path.
contact:
name: Syndica Support
url: https://docs.syndica.io
email: support@syndica.io
license:
name: Proprietary
url: https://syndica.io
defaultContentType: application/json
servers:
solana-rpc-pubsub:
url: solana-mainnet.api.syndica.io/api-key/{apiKey}
protocol: wss
description: Syndica Solana RPC PubSub WebSocket endpoint.
variables:
apiKey:
description: Syndica API key (credential).
default: REPLACE_WITH_API_KEY
chainstream:
url: chainstream.api.syndica.io/api-key/{apiKey}
protocol: wss
description: Syndica ChainStream WebSocket endpoint.
variables:
apiKey:
description: Syndica API key (credential).
default: REPLACE_WITH_API_KEY
channels:
# ---------------- Solana RPC PubSub ----------------
accountSubscribe:
description: |
Subscribe to an account to receive notifications when the lamports or data
for a given account public key changes.
servers:
- solana-rpc-pubsub
publish:
operationId: accountSubscribe
summary: Open an account subscription.
message:
$ref: '#/components/messages/AccountSubscribeRequest'
subscribe:
operationId: accountNotification
summary: Receive account change notifications.
message:
$ref: '#/components/messages/AccountNotification'
accountUnsubscribe:
description: Unsubscribe from account-change notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: accountUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: accountUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
blockSubscribe:
description: |
Subscribe to receive notifications when a new block is confirmed or
finalized. Filter by `all` or by `mentionsAccountOrProgram`.
servers:
- solana-rpc-pubsub
publish:
operationId: blockSubscribe
message:
$ref: '#/components/messages/BlockSubscribeRequest'
subscribe:
operationId: blockNotification
message:
$ref: '#/components/messages/BlockNotification'
blockUnsubscribe:
description: Unsubscribe from block notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: blockUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: blockUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
logsSubscribe:
description: |
Subscribe to transaction log notifications. Filter by `all`, `allWithVotes`,
or by `mentions` of one account public key.
servers:
- solana-rpc-pubsub
publish:
operationId: logsSubscribe
message:
$ref: '#/components/messages/LogsSubscribeRequest'
subscribe:
operationId: logsNotification
message:
$ref: '#/components/messages/LogsNotification'
logsUnsubscribe:
description: Unsubscribe from log notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: logsUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: logsUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
programSubscribe:
description: |
Subscribe to a program to receive notifications when the lamports or data
for any account owned by the program changes.
servers:
- solana-rpc-pubsub
publish:
operationId: programSubscribe
message:
$ref: '#/components/messages/ProgramSubscribeRequest'
subscribe:
operationId: programNotification
message:
$ref: '#/components/messages/ProgramNotification'
programUnsubscribe:
description: Unsubscribe from program-account notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: programUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: programUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
signatureSubscribe:
description: |
Subscribe to a transaction signature to receive a single notification when
the transaction reaches the requested commitment level.
servers:
- solana-rpc-pubsub
publish:
operationId: signatureSubscribe
message:
$ref: '#/components/messages/SignatureSubscribeRequest'
subscribe:
operationId: signatureNotification
message:
$ref: '#/components/messages/SignatureNotification'
signatureUnsubscribe:
description: Unsubscribe from signature notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: signatureUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: signatureUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
slotSubscribe:
description: Subscribe to receive notification any time a slot is processed by the validator.
servers:
- solana-rpc-pubsub
publish:
operationId: slotSubscribe
message:
$ref: '#/components/messages/SimpleSubscribeRequest'
subscribe:
operationId: slotNotification
message:
$ref: '#/components/messages/SlotNotification'
slotUnsubscribe:
description: Unsubscribe from slot notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: slotUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: slotUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
voteSubscribe:
description: |
Subscribe to receive notification any time a new vote is observed in gossip.
These votes are pre-consensus and not guaranteed to land on chain.
servers:
- solana-rpc-pubsub
publish:
operationId: voteSubscribe
message:
$ref: '#/components/messages/SimpleSubscribeRequest'
subscribe:
operationId: voteNotification
message:
$ref: '#/components/messages/VoteNotification'
voteUnsubscribe:
description: Unsubscribe from vote notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: voteUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: voteUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
rootSubscribe:
description: Subscribe to receive notification any time a new root is set by the validator.
servers:
- solana-rpc-pubsub
publish:
operationId: rootSubscribe
message:
$ref: '#/components/messages/SimpleSubscribeRequest'
subscribe:
operationId: rootNotification
message:
$ref: '#/components/messages/RootNotification'
rootUnsubscribe:
description: Unsubscribe from root notifications.
servers:
- solana-rpc-pubsub
publish:
operationId: rootUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: rootUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
# ---------------- ChainStream ----------------
chainstream.transactionsSubscribe:
description: |
ChainStream `transactionsSubscribe` — receive real-time Solana transaction
notifications consolidated across multiple validators. Supports the optional
`verified` parameter to deliver only transactions confirmed by multiple
validators at `processed` commitment.
servers:
- chainstream
publish:
operationId: chainstreamTransactionsSubscribe
message:
$ref: '#/components/messages/ChainstreamTransactionsSubscribeRequest'
subscribe:
operationId: chainstreamTransactionsNotification
message:
$ref: '#/components/messages/ChainstreamTransactionsNotification'
chainstream.transactionsUnsubscribe:
description: Unsubscribe from ChainStream transaction notifications.
servers:
- chainstream
publish:
operationId: chainstreamTransactionsUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: chainstreamTransactionsUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
chainstream.slotsSubscribe:
description: ChainStream `slotsSubscribe` — real-time slot updates consolidated across validators.
servers:
- chainstream
publish:
operationId: chainstreamSlotsSubscribe
message:
$ref: '#/components/messages/ChainstreamSlotsSubscribeRequest'
subscribe:
operationId: chainstreamSlotsNotification
message:
$ref: '#/components/messages/ChainstreamSlotsNotification'
chainstream.slotsUnsubscribe:
description: Unsubscribe from ChainStream slot notifications.
servers:
- chainstream
publish:
operationId: chainstreamSlotsUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: chainstreamSlotsUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
chainstream.blocksSubscribe:
description: ChainStream `blocksSubscribe` — encoded block notifications consolidated across validators.
servers:
- chainstream
publish:
operationId: chainstreamBlocksSubscribe
message:
$ref: '#/components/messages/ChainstreamBlocksSubscribeRequest'
subscribe:
operationId: chainstreamBlocksNotification
message:
$ref: '#/components/messages/ChainstreamBlocksNotification'
chainstream.blocksUnsubscribe:
description: Unsubscribe from ChainStream block notifications.
servers:
- chainstream
publish:
operationId: chainstreamBlocksUnsubscribe
message:
$ref: '#/components/messages/UnsubscribeRequest'
subscribe:
operationId: chainstreamBlocksUnsubscribeResult
message:
$ref: '#/components/messages/UnsubscribeResult'
components:
messages:
# ---- Generic JSON-RPC envelopes ----
SimpleSubscribeRequest:
name: SimpleSubscribeRequest
title: JSON-RPC subscription request (no parameters)
payload:
type: object
required: [jsonrpc, id, method]
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string }
params:
type: array
items: {}
UnsubscribeRequest:
name: UnsubscribeRequest
title: JSON-RPC unsubscribe request
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string }
params:
type: array
items: { type: integer }
description: '[subscriptionId]'
UnsubscribeResult:
name: UnsubscribeResult
title: JSON-RPC unsubscribe result
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
result: { type: boolean }
# ---- accountSubscribe ----
AccountSubscribeRequest:
name: AccountSubscribeRequest
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [accountSubscribe] }
params:
type: array
minItems: 1
maxItems: 2
items:
oneOf:
- type: string
description: Account public key (base-58).
- $ref: '#/components/schemas/AccountSubscribeConfig'
AccountNotification:
name: AccountNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [accountNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
$ref: '#/components/schemas/AccountInfo'
# ---- blockSubscribe ----
BlockSubscribeRequest:
name: BlockSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [blockSubscribe] }
params:
type: array
items:
oneOf:
- type: string
enum: [all]
- type: object
properties:
mentionsAccountOrProgram: { type: string }
- $ref: '#/components/schemas/BlockSubscribeConfig'
BlockNotification:
name: BlockNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [blockNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
type: object
properties:
slot: { type: integer }
err: { type: [object, 'null'] }
block:
$ref: '#/components/schemas/Block'
# ---- logsSubscribe ----
LogsSubscribeRequest:
name: LogsSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [logsSubscribe] }
params:
type: array
items:
oneOf:
- type: string
enum: [all, allWithVotes]
- type: object
properties:
mentions:
type: array
items: { type: string }
- $ref: '#/components/schemas/CommitmentConfig'
LogsNotification:
name: LogsNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [logsNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
type: object
properties:
signature: { type: string }
err: { type: [object, 'null'] }
logs:
type: array
items: { type: string }
# ---- programSubscribe ----
ProgramSubscribeRequest:
name: ProgramSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [programSubscribe] }
params:
type: array
items:
oneOf:
- type: string
description: Program public key (base-58).
- $ref: '#/components/schemas/ProgramSubscribeConfig'
ProgramNotification:
name: ProgramNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [programNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
type: object
properties:
pubkey: { type: string }
account:
$ref: '#/components/schemas/AccountInfo'
# ---- signatureSubscribe ----
SignatureSubscribeRequest:
name: SignatureSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [signatureSubscribe] }
params:
type: array
items:
oneOf:
- type: string
description: Transaction signature (base-58).
- $ref: '#/components/schemas/SignatureSubscribeConfig'
SignatureNotification:
name: SignatureNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [signatureNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
type: object
properties:
err: { type: [object, 'null'] }
# ---- slotSubscribe ----
SlotNotification:
name: SlotNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [slotNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
parent: { type: integer }
root: { type: integer }
slot: { type: integer }
# ---- voteSubscribe ----
VoteNotification:
name: VoteNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [voteNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
hash: { type: string }
slots:
type: array
items: { type: integer }
timestamp: { type: [integer, 'null'] }
signature: { type: string }
votePubkey: { type: string }
# ---- rootSubscribe ----
RootNotification:
name: RootNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [rootNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: integer
description: Latest root slot number.
# ---- ChainStream ----
ChainstreamTransactionsSubscribeRequest:
name: ChainstreamTransactionsSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [transactionsSubscribe] }
params:
type: array
items:
type: object
properties:
network: { type: string, enum: [solana-mainnet] }
verified:
type: boolean
description: When true, deliver only transactions confirmed by multiple validators at `processed` commitment.
filter:
type: object
description: Filter by accounts included/excluded, vote, failed status, etc.
ChainstreamTransactionsNotification:
name: ChainstreamTransactionsNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [transactionsNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
slot: { type: integer }
signature: { type: string }
transaction:
type: object
description: Encoded transaction payload.
meta:
type: object
description: Transaction status metadata.
ChainstreamSlotsSubscribeRequest:
name: ChainstreamSlotsSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [slotsSubscribe] }
params:
type: array
items:
type: object
properties:
network: { type: string, enum: [solana-mainnet] }
ChainstreamSlotsNotification:
name: ChainstreamSlotsNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [slotsNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
slot: { type: integer }
parent: { type: integer }
status: { type: string, enum: [processed, confirmed, finalized] }
ChainstreamBlocksSubscribeRequest:
name: ChainstreamBlocksSubscribeRequest
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
id: { type: integer }
method: { type: string, enum: [blocksSubscribe] }
params:
type: array
items:
type: object
properties:
network: { type: string, enum: [solana-mainnet] }
encoding: { type: string, enum: [base64, base58, json, jsonParsed] }
transactionDetails: { type: string, enum: [full, accounts, signatures, none] }
ChainstreamBlocksNotification:
name: ChainstreamBlocksNotification
payload:
type: object
properties:
jsonrpc: { type: string, enum: ['2.0'] }
method: { type: string, enum: [blocksNotification] }
params:
type: object
properties:
subscription: { type: integer }
result:
type: object
properties:
slot: { type: integer }
block:
$ref: '#/components/schemas/Block'
schemas:
Commitment:
type: string
enum: [processed, confirmed, finalized]
CommitmentConfig:
type: object
properties:
commitment:
$ref: '#/components/schemas/Commitment'
Encoding:
type: string
enum: [base58, base64, base64+zstd, jsonParsed]
RpcContext:
type: object
properties:
slot: { type: integer }
apiVersion: { type: string }
AccountInfo:
type: object
properties:
lamports: { type: integer }
owner: { type: string }
data:
oneOf:
- type: array
items: { type: string }
- type: object
executable: { type: boolean }
rentEpoch: { type: integer }
space: { type: integer }
AccountSubscribeConfig:
type: object
properties:
commitment:
$ref: '#/components/schemas/Commitment'
encoding:
$ref: '#/components/schemas/Encoding'
BlockSubscribeConfig:
type: object
properties:
commitment:
$ref: '#/components/schemas/Commitment'
encoding:
$ref: '#/components/schemas/Encoding'
transactionDetails:
type: string
enum: [full, accounts, signatures, none]
showRewards: { type: boolean }
maxSupportedTransactionVersion: { type: integer }
ProgramSubscribeConfig:
type: object
properties:
commitment:
$ref: '#/components/schemas/Commitment'
encoding:
$ref: '#/components/schemas/Encoding'
filters:
type: array
items: { type: object }
withContext: { type: boolean }
SignatureSubscribeConfig:
type: object
properties:
commitment:
$ref: '#/components/schemas/Commitment'
enableReceivedNotification: { type: boolean }
Block:
type: object
properties:
blockHeight: { type: integer }
blockTime: { type: [integer, 'null'] }
blockhash: { type: string }
parentSlot: { type: integer }
previousBlockhash: { type: string }
transactions:
type: array
items: { type: object }
rewards:
type: array
items: { type: object }
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/syndica-io-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.