Home
QuickNode
QuickNode WebSocket Subscription API
QuickNode WebSocket Subscription API
Version 1.0.0
AsyncAPI definition for QuickNode WebSocket subscription endpoints across Ethereum (and EVM-compatible chains) and Solana. All subscriptions use the JSON-RPC 2.0 envelope. After a successful subscription request the server responds with a subscription id; the server then pushes notifications via the corresponding `*Notification` method until the client unsubscribes. Sources: - https://www.quicknode.com/docs/ethereum/eth_subscribe - https://www.quicknode.com/docs/solana/accountSubscribe - https://www.quicknode.com/docs/solana/blockSubscribe - https://www.quicknode.com/docs/solana/logsSubscribe - https://www.quicknode.com/docs/solana/programSubscribe - https://www.quicknode.com/docs/solana/signatureSubscribe - https://www.quicknode.com/docs/solana/slotSubscribe - https://www.quicknode.com/docs/solana/slotsUpdatesSubscribe - https://www.quicknode.com/docs/solana/voteSubscribe - https://www.quicknode.com/docs/solana/rootSubscribe
Channels
ethereum/newHeads
publish subscribeEthNewHeads
Send eth_subscribe / eth_unsubscribe for newHeads
Subscribe to new block headers on Ethereum (or any EVM chain) via `eth_subscribe` with the `newHeads` subscription type. The server returns a hex-encoded subscription id and then streams a notification for every new block header. Cancel with `eth_unsubscribe`.
ethereum/logs
publish subscribeEthLogs
Send eth_subscribe / eth_unsubscribe for logs
Subscribe to event logs matching filter criteria (addresses, topics) via `eth_subscribe` with the `logs` subscription type.
ethereum/newPendingTransactions
publish subscribeEthNewPendingTransactions
Send eth_subscribe / eth_unsubscribe for newPendingTransactions
Subscribe to pending transactions entering the mempool via `eth_subscribe` with the `newPendingTransactions` subscription type. With the optional boolean flag set to true, full transaction objects are returned instead of hashes.
ethereum/syncing
publish subscribeEthSyncing
Send eth_subscribe / eth_unsubscribe for syncing
Subscribe to node sync state changes via `eth_subscribe` with the `syncing` subscription type. Notifications are emitted when the node starts or stops syncing and with periodic progress reports.
solana/accountSubscribe
publish subscribeSolanaAccount
Send accountSubscribe / accountUnsubscribe
Subscribe to changes (lamports or data) on a specific Solana account identified by a base-58 encoded Pubkey. Notifications use the same shape as the `getAccountInfo` RPC response. Cancel with `accountUnsubscribe`.
solana/blockSubscribe
publish subscribeSolanaBlock
Send blockSubscribe / blockUnsubscribe
Subscribe to new confirmed or finalized blocks. The notification block payload mirrors the structure returned by `getBlock`. Cancel with `blockUnsubscribe`.
solana/logsSubscribe
publish subscribeSolanaLogs
Send logsSubscribe / logsUnsubscribe
Subscribe to transaction logs filtered by `all`, `allWithVotes`, or an object filter (e.g. mentioning a particular account). Cancel with `logsUnsubscribe`.
solana/programSubscribe
publish subscribeSolanaProgram
Send programSubscribe / programUnsubscribe
Subscribe to changes for any account owned by a specific program. The notification payload mirrors `getProgramAccounts`. Cancel with `programUnsubscribe`.
solana/signatureSubscribe
publish subscribeSolanaSignature
Send signatureSubscribe / signatureUnsubscribe
Subscribe to confirmation of a specific transaction signature. The subscription is automatically cancelled after the notification is delivered.
solana/slotSubscribe
publish subscribeSolanaSlot
Send slotSubscribe / slotUnsubscribe
Subscribe to slot processing notifications. Cancel with `slotUnsubscribe`.
solana/slotsUpdatesSubscribe
publish subscribeSolanaSlotsUpdates
Send slotsUpdatesSubscribe / slotsUpdatesUnsubscribe
Subscribe to detailed slot update lifecycle events (firstShredReceived, completed, createdBank, frozen, dead, optimisticConfirmation, root). Cancel with `slotsUpdatesUnsubscribe`.
solana/voteSubscribe
publish subscribeSolanaVote
Send voteSubscribe / voteUnsubscribe
Subscribe to pre-consensus validator vote notifications. Cancel with `voteUnsubscribe`. Note: votes are pre-consensus and may not enter the ledger.
solana/rootSubscribe
publish subscribeSolanaRoot
Send rootSubscribe / rootUnsubscribe
Subscribe to new root slot notifications. Cancel with `rootUnsubscribe`.
Messages
✉
EthSubscribeNewHeadsRequest
eth_subscribe newHeads request
Subscribe to new block headers
✉
EthSubscribeLogsRequest
eth_subscribe logs request
Subscribe to logs matching an optional address/topics filter
✉
EthSubscribeNewPendingTransactionsRequest
eth_subscribe newPendingTransactions request
Subscribe to pending transactions in the mempool
✉
EthSubscribeSyncingRequest
eth_subscribe syncing request
Subscribe to node sync state notifications
✉
EthUnsubscribeRequest
eth_unsubscribe request
Cancel an active eth_subscribe subscription
✉
EthSubscribeResponse
eth_subscribe response
Returned subscription id (hex string)
✉
EthUnsubscribeResponse
eth_unsubscribe response
✉
EthNewHeadsNotification
eth_subscription newHeads notification
✉
EthLogsNotification
eth_subscription logs notification
✉
EthNewPendingTransactionsNotification
eth_subscription newPendingTransactions notification
✉
EthSyncingNotification
eth_subscription syncing notification
✉
SolSubscribeResponse
Solana *Subscribe response
Returned subscription id (integer)
✉
SolUnsubscribeResponse
Solana *Unsubscribe response
✉
SolAccountSubscribeRequest
accountSubscribe request
✉
SolAccountUnsubscribeRequest
accountUnsubscribe request
✉
SolAccountNotification
accountNotification
Notification matching the getAccountInfo response shape
✉
SolBlockSubscribeRequest
blockSubscribe request
✉
SolBlockUnsubscribeRequest
blockUnsubscribe request
✉
SolBlockNotification
blockNotification
✉
SolLogsSubscribeRequest
logsSubscribe request
✉
SolLogsUnsubscribeRequest
logsUnsubscribe request
✉
SolLogsNotification
logsNotification
✉
SolProgramSubscribeRequest
programSubscribe request
✉
SolProgramUnsubscribeRequest
programUnsubscribe request
✉
SolProgramNotification
programNotification
Notification matching the getProgramAccounts response shape
✉
SolSignatureSubscribeRequest
signatureSubscribe request
✉
SolSignatureUnsubscribeRequest
signatureUnsubscribe request
✉
SolSignatureNotification
signatureNotification
Delivered once when the signature reaches the requested commitment. The subscription is automatically cancelled after delivery.
✉
SolSlotSubscribeRequest
slotSubscribe request
✉
SolSlotUnsubscribeRequest
slotUnsubscribe request
✉
SolSlotNotification
slotNotification
✉
SolSlotsUpdatesSubscribeRequest
slotsUpdatesSubscribe request
✉
SolSlotsUpdatesUnsubscribeRequest
slotsUpdatesUnsubscribe request
✉
SolSlotsUpdatesNotification
slotsUpdatesNotification
✉
SolVoteSubscribeRequest
voteSubscribe request
✉
SolVoteUnsubscribeRequest
voteUnsubscribe request
✉
SolVoteNotification
voteNotification
✉
SolRootSubscribeRequest
rootSubscribe request
✉
SolRootUnsubscribeRequest
rootUnsubscribe request
✉
SolRootNotification
rootNotification
Servers
wss
ethereum
wss://{endpointName}.quiknode.pro/{token}/
QuickNode Ethereum (and EVM-compatible) WebSocket endpoint
wss
solana
wss://{endpointName}.solana-mainnet.quiknode.pro/{token}/
QuickNode Solana WebSocket endpoint
AsyncAPI Specification
asyncapi: '2.6.0'
info:
title: QuickNode WebSocket Subscription API
version: '1.0.0'
description: |
AsyncAPI definition for QuickNode WebSocket subscription endpoints across
Ethereum (and EVM-compatible chains) and Solana. All subscriptions use the
JSON-RPC 2.0 envelope. After a successful subscription request the server
responds with a subscription id; the server then pushes notifications via
the corresponding `*Notification` method until the client unsubscribes.
Sources:
- https://www.quicknode.com/docs/ethereum/eth_subscribe
- https://www.quicknode.com/docs/solana/accountSubscribe
- https://www.quicknode.com/docs/solana/blockSubscribe
- https://www.quicknode.com/docs/solana/logsSubscribe
- https://www.quicknode.com/docs/solana/programSubscribe
- https://www.quicknode.com/docs/solana/signatureSubscribe
- https://www.quicknode.com/docs/solana/slotSubscribe
- https://www.quicknode.com/docs/solana/slotsUpdatesSubscribe
- https://www.quicknode.com/docs/solana/voteSubscribe
- https://www.quicknode.com/docs/solana/rootSubscribe
contact:
name: QuickNode
url: https://www.quicknode.com/
license:
name: Proprietary
url: https://www.quicknode.com/terms
defaultContentType: application/json
servers:
ethereum:
url: wss://{endpointName}.quiknode.pro/{token}/
protocol: wss
description: QuickNode Ethereum (and EVM-compatible) WebSocket endpoint
variables:
endpointName:
description: Customer-specific QuickNode endpoint slug
default: your-endpoint
token:
description: Authentication token issued by QuickNode for the endpoint
default: your-token
solana:
url: wss://{endpointName}.solana-mainnet.quiknode.pro/{token}/
protocol: wss
description: QuickNode Solana WebSocket endpoint
variables:
endpointName:
description: Customer-specific QuickNode endpoint slug
default: your-endpoint
token:
description: Authentication token issued by QuickNode for the endpoint
default: your-token
channels:
###############################
# Ethereum / EVM subscriptions
###############################
ethereum/newHeads:
description: |
Subscribe to new block headers on Ethereum (or any EVM chain) via
`eth_subscribe` with the `newHeads` subscription type. The server returns
a hex-encoded subscription id and then streams a notification for every
new block header. Cancel with `eth_unsubscribe`.
servers:
- ethereum
publish:
operationId: subscribeEthNewHeads
summary: Send eth_subscribe / eth_unsubscribe for newHeads
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeNewHeadsRequest'
- $ref: '#/components/messages/EthUnsubscribeRequest'
subscribe:
operationId: receiveEthNewHeads
summary: Receive subscription id and newHeads notifications
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeResponse'
- $ref: '#/components/messages/EthUnsubscribeResponse'
- $ref: '#/components/messages/EthNewHeadsNotification'
ethereum/logs:
description: |
Subscribe to event logs matching filter criteria (addresses, topics) via
`eth_subscribe` with the `logs` subscription type.
servers:
- ethereum
publish:
operationId: subscribeEthLogs
summary: Send eth_subscribe / eth_unsubscribe for logs
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeLogsRequest'
- $ref: '#/components/messages/EthUnsubscribeRequest'
subscribe:
operationId: receiveEthLogs
summary: Receive subscription id and log notifications
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeResponse'
- $ref: '#/components/messages/EthUnsubscribeResponse'
- $ref: '#/components/messages/EthLogsNotification'
ethereum/newPendingTransactions:
description: |
Subscribe to pending transactions entering the mempool via
`eth_subscribe` with the `newPendingTransactions` subscription type. With
the optional boolean flag set to true, full transaction objects are
returned instead of hashes.
servers:
- ethereum
publish:
operationId: subscribeEthNewPendingTransactions
summary: Send eth_subscribe / eth_unsubscribe for newPendingTransactions
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeNewPendingTransactionsRequest'
- $ref: '#/components/messages/EthUnsubscribeRequest'
subscribe:
operationId: receiveEthNewPendingTransactions
summary: Receive subscription id and pending transaction notifications
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeResponse'
- $ref: '#/components/messages/EthUnsubscribeResponse'
- $ref: '#/components/messages/EthNewPendingTransactionsNotification'
ethereum/syncing:
description: |
Subscribe to node sync state changes via `eth_subscribe` with the
`syncing` subscription type. Notifications are emitted when the node
starts or stops syncing and with periodic progress reports.
servers:
- ethereum
publish:
operationId: subscribeEthSyncing
summary: Send eth_subscribe / eth_unsubscribe for syncing
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeSyncingRequest'
- $ref: '#/components/messages/EthUnsubscribeRequest'
subscribe:
operationId: receiveEthSyncing
summary: Receive subscription id and syncing notifications
message:
oneOf:
- $ref: '#/components/messages/EthSubscribeResponse'
- $ref: '#/components/messages/EthUnsubscribeResponse'
- $ref: '#/components/messages/EthSyncingNotification'
###############################
# Solana subscriptions
###############################
solana/accountSubscribe:
description: |
Subscribe to changes (lamports or data) on a specific Solana account
identified by a base-58 encoded Pubkey. Notifications use the same
shape as the `getAccountInfo` RPC response. Cancel with
`accountUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaAccount
summary: Send accountSubscribe / accountUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolAccountSubscribeRequest'
- $ref: '#/components/messages/SolAccountUnsubscribeRequest'
subscribe:
operationId: receiveSolanaAccount
summary: Receive subscription id and account notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolAccountNotification'
solana/blockSubscribe:
description: |
Subscribe to new confirmed or finalized blocks. The notification block
payload mirrors the structure returned by `getBlock`. Cancel with
`blockUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaBlock
summary: Send blockSubscribe / blockUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolBlockSubscribeRequest'
- $ref: '#/components/messages/SolBlockUnsubscribeRequest'
subscribe:
operationId: receiveSolanaBlock
summary: Receive subscription id and block notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolBlockNotification'
solana/logsSubscribe:
description: |
Subscribe to transaction logs filtered by `all`, `allWithVotes`, or an
object filter (e.g. mentioning a particular account). Cancel with
`logsUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaLogs
summary: Send logsSubscribe / logsUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolLogsSubscribeRequest'
- $ref: '#/components/messages/SolLogsUnsubscribeRequest'
subscribe:
operationId: receiveSolanaLogs
summary: Receive subscription id and log notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolLogsNotification'
solana/programSubscribe:
description: |
Subscribe to changes for any account owned by a specific program. The
notification payload mirrors `getProgramAccounts`. Cancel with
`programUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaProgram
summary: Send programSubscribe / programUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolProgramSubscribeRequest'
- $ref: '#/components/messages/SolProgramUnsubscribeRequest'
subscribe:
operationId: receiveSolanaProgram
summary: Receive subscription id and program-account notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolProgramNotification'
solana/signatureSubscribe:
description: |
Subscribe to confirmation of a specific transaction signature. The
subscription is automatically cancelled after the notification is
delivered.
servers:
- solana
publish:
operationId: subscribeSolanaSignature
summary: Send signatureSubscribe / signatureUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolSignatureSubscribeRequest'
- $ref: '#/components/messages/SolSignatureUnsubscribeRequest'
subscribe:
operationId: receiveSolanaSignature
summary: Receive subscription id and signature notification
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolSignatureNotification'
solana/slotSubscribe:
description: |
Subscribe to slot processing notifications. Cancel with `slotUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaSlot
summary: Send slotSubscribe / slotUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolSlotSubscribeRequest'
- $ref: '#/components/messages/SolSlotUnsubscribeRequest'
subscribe:
operationId: receiveSolanaSlot
summary: Receive subscription id and slot notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolSlotNotification'
solana/slotsUpdatesSubscribe:
description: |
Subscribe to detailed slot update lifecycle events (firstShredReceived,
completed, createdBank, frozen, dead, optimisticConfirmation, root).
Cancel with `slotsUpdatesUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaSlotsUpdates
summary: Send slotsUpdatesSubscribe / slotsUpdatesUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolSlotsUpdatesSubscribeRequest'
- $ref: '#/components/messages/SolSlotsUpdatesUnsubscribeRequest'
subscribe:
operationId: receiveSolanaSlotsUpdates
summary: Receive subscription id and slot-update notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolSlotsUpdatesNotification'
solana/voteSubscribe:
description: |
Subscribe to pre-consensus validator vote notifications. Cancel with
`voteUnsubscribe`. Note: votes are pre-consensus and may not enter the
ledger.
servers:
- solana
publish:
operationId: subscribeSolanaVote
summary: Send voteSubscribe / voteUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolVoteSubscribeRequest'
- $ref: '#/components/messages/SolVoteUnsubscribeRequest'
subscribe:
operationId: receiveSolanaVote
summary: Receive subscription id and vote notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolVoteNotification'
solana/rootSubscribe:
description: |
Subscribe to new root slot notifications. Cancel with `rootUnsubscribe`.
servers:
- solana
publish:
operationId: subscribeSolanaRoot
summary: Send rootSubscribe / rootUnsubscribe
message:
oneOf:
- $ref: '#/components/messages/SolRootSubscribeRequest'
- $ref: '#/components/messages/SolRootUnsubscribeRequest'
subscribe:
operationId: receiveSolanaRoot
summary: Receive subscription id and root notifications
message:
oneOf:
- $ref: '#/components/messages/SolSubscribeResponse'
- $ref: '#/components/messages/SolUnsubscribeResponse'
- $ref: '#/components/messages/SolRootNotification'
components:
messages:
# ---------- Ethereum messages ----------
EthSubscribeNewHeadsRequest:
name: EthSubscribeNewHeadsRequest
title: eth_subscribe newHeads request
summary: Subscribe to new block headers
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: eth_subscribe }
params:
type: array
minItems: 1
maxItems: 1
items:
- { type: string, const: newHeads }
example:
jsonrpc: '2.0'
id: 1
method: eth_subscribe
params: [newHeads]
EthSubscribeLogsRequest:
name: EthSubscribeLogsRequest
title: eth_subscribe logs request
summary: Subscribe to logs matching an optional address/topics filter
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: eth_subscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- { type: string, const: logs }
- $ref: '#/components/schemas/EthLogsFilter'
example:
jsonrpc: '2.0'
id: 1
method: eth_subscribe
params:
- logs
- address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
topics:
- '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
EthSubscribeNewPendingTransactionsRequest:
name: EthSubscribeNewPendingTransactionsRequest
title: eth_subscribe newPendingTransactions request
summary: Subscribe to pending transactions in the mempool
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: eth_subscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- { type: string, const: newPendingTransactions }
- { type: boolean, description: 'When true, returns full transaction objects instead of hashes' }
example:
jsonrpc: '2.0'
id: 1
method: eth_subscribe
params: [newPendingTransactions, false]
EthSubscribeSyncingRequest:
name: EthSubscribeSyncingRequest
title: eth_subscribe syncing request
summary: Subscribe to node sync state notifications
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: eth_subscribe }
params:
type: array
minItems: 1
maxItems: 1
items:
- { type: string, const: syncing }
example:
jsonrpc: '2.0'
id: 1
method: eth_subscribe
params: [syncing]
EthUnsubscribeRequest:
name: EthUnsubscribeRequest
title: eth_unsubscribe request
summary: Cancel an active eth_subscribe subscription
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: eth_unsubscribe }
params:
type: array
minItems: 1
maxItems: 1
items:
- { type: string, description: 'Hex-encoded subscription id returned from eth_subscribe' }
example:
jsonrpc: '2.0'
id: 2
method: eth_unsubscribe
params: ['0x9cef478923ff08bf67fde6c64013158d']
EthSubscribeResponse:
name: EthSubscribeResponse
title: eth_subscribe response
summary: Returned subscription id (hex string)
contentType: application/json
payload:
type: object
required: [jsonrpc, id, result]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
result:
type: string
description: Hex-encoded subscription id
example:
jsonrpc: '2.0'
id: 1
result: '0x9cef478923ff08bf67fde6c64013158d'
EthUnsubscribeResponse:
name: EthUnsubscribeResponse
title: eth_unsubscribe response
contentType: application/json
payload:
type: object
required: [jsonrpc, id, result]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
result:
type: boolean
description: True if the subscription was cancelled
example:
jsonrpc: '2.0'
id: 2
result: true
EthNewHeadsNotification:
name: EthNewHeadsNotification
title: eth_subscription newHeads notification
contentType: application/json
payload:
$ref: '#/components/schemas/EthNotificationEnvelope'
# the result is a block header
EthLogsNotification:
name: EthLogsNotification
title: eth_subscription logs notification
contentType: application/json
payload:
$ref: '#/components/schemas/EthNotificationEnvelope'
EthNewPendingTransactionsNotification:
name: EthNewPendingTransactionsNotification
title: eth_subscription newPendingTransactions notification
contentType: application/json
payload:
$ref: '#/components/schemas/EthNotificationEnvelope'
EthSyncingNotification:
name: EthSyncingNotification
title: eth_subscription syncing notification
contentType: application/json
payload:
$ref: '#/components/schemas/EthNotificationEnvelope'
# ---------- Solana shared messages ----------
SolSubscribeResponse:
name: SolSubscribeResponse
title: Solana *Subscribe response
summary: Returned subscription id (integer)
contentType: application/json
payload:
type: object
required: [jsonrpc, id, result]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
result:
type: integer
description: Subscription id used to unsubscribe
example:
jsonrpc: '2.0'
id: 1
result: 23784
SolUnsubscribeResponse:
name: SolUnsubscribeResponse
title: Solana *Unsubscribe response
contentType: application/json
payload:
type: object
required: [jsonrpc, id, result]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
result: { type: boolean }
example:
jsonrpc: '2.0'
id: 2
result: true
# ---------- Solana account ----------
SolAccountSubscribeRequest:
name: SolAccountSubscribeRequest
title: accountSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: accountSubscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- { type: string, description: 'Base-58 Pubkey of the account to monitor' }
- $ref: '#/components/schemas/SolAccountConfig'
example:
jsonrpc: '2.0'
id: 1
method: accountSubscribe
params:
- 'CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12'
- { encoding: jsonParsed, commitment: finalized }
SolAccountUnsubscribeRequest:
name: SolAccountUnsubscribeRequest
title: accountUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolAccountNotification:
name: SolAccountNotification
title: accountNotification
summary: Notification matching the getAccountInfo response shape
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: accountNotification }
# ---------- Solana block ----------
SolBlockSubscribeRequest:
name: SolBlockSubscribeRequest
title: blockSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: blockSubscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- oneOf:
- { type: string, enum: [all] }
- type: object
properties:
mentionsAccountOrProgram: { type: string }
- $ref: '#/components/schemas/SolBlockConfig'
example:
jsonrpc: '2.0'
id: 1
method: blockSubscribe
params: [all]
SolBlockUnsubscribeRequest:
name: SolBlockUnsubscribeRequest
title: blockUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolBlockNotification:
name: SolBlockNotification
title: blockNotification
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: blockNotification }
params:
type: object
properties:
result:
type: object
properties:
context:
type: object
properties:
slot: { type: integer }
value:
type: object
properties:
slot: { type: integer }
err: { type: [object, 'null'] }
block:
type: object
description: Block object (same shape as getBlock)
# ---------- Solana logs ----------
SolLogsSubscribeRequest:
name: SolLogsSubscribeRequest
title: logsSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: logsSubscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- oneOf:
- { type: string, enum: [all, allWithVotes] }
- type: object
properties:
mentions:
type: array
items: { type: string }
- type: object
properties:
commitment: { $ref: '#/components/schemas/SolCommitment' }
encoding: { $ref: '#/components/schemas/SolEncoding' }
example:
jsonrpc: '2.0'
id: 1
method: logsSubscribe
params:
- { mentions: ['11111111111111111111111111111111'] }
- { commitment: finalized }
SolLogsUnsubscribeRequest:
name: SolLogsUnsubscribeRequest
title: logsUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolLogsNotification:
name: SolLogsNotification
title: logsNotification
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: logsNotification }
params:
type: object
properties:
result:
type: object
properties:
context:
type: object
properties:
slot: { type: integer }
value:
type: object
properties:
signature: { type: string, description: Base-58 transaction signature }
err: { type: [object, 'null'] }
logs:
type: [array, 'null']
items: { type: string }
# ---------- Solana program ----------
SolProgramSubscribeRequest:
name: SolProgramSubscribeRequest
title: programSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: programSubscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- { type: string, description: 'Base-58 program id' }
- $ref: '#/components/schemas/SolProgramConfig'
example:
jsonrpc: '2.0'
id: 1
method: programSubscribe
params:
- 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
- { encoding: jsonParsed, commitment: confirmed }
SolProgramUnsubscribeRequest:
name: SolProgramUnsubscribeRequest
title: programUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolProgramNotification:
name: SolProgramNotification
title: programNotification
summary: Notification matching the getProgramAccounts response shape
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: programNotification }
# ---------- Solana signature ----------
SolSignatureSubscribeRequest:
name: SolSignatureSubscribeRequest
title: signatureSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method, params]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: signatureSubscribe }
params:
type: array
minItems: 1
maxItems: 2
items:
- { type: string, description: 'Base-58 transaction signature' }
- type: object
properties:
commitment: { $ref: '#/components/schemas/SolCommitment' }
example:
jsonrpc: '2.0'
id: 1
method: signatureSubscribe
params:
- '5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KcEZQXKZ7G4'
- { commitment: finalized }
SolSignatureUnsubscribeRequest:
name: SolSignatureUnsubscribeRequest
title: signatureUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolSignatureNotification:
name: SolSignatureNotification
title: signatureNotification
summary: |
Delivered once when the signature reaches the requested commitment.
The subscription is automatically cancelled after delivery.
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: signatureNotification }
params:
type: object
properties:
result:
type: object
properties:
context:
type: object
properties:
slot: { type: integer }
value:
type: object
properties:
err: { type: [object, 'null'] }
# ---------- Solana slot ----------
SolSlotSubscribeRequest:
name: SolSlotSubscribeRequest
title: slotSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: slotSubscribe }
params:
type: array
maxItems: 0
example:
jsonrpc: '2.0'
id: 1
method: slotSubscribe
SolSlotUnsubscribeRequest:
name: SolSlotUnsubscribeRequest
title: slotUnsubscribe request
contentType: application/json
payload:
$ref: '#/components/schemas/SolUnsubscribeRequestBody'
SolSlotNotification:
name: SolSlotNotification
title: slotNotification
contentType: application/json
payload:
allOf:
- $ref: '#/components/schemas/SolNotificationEnvelope'
- type: object
properties:
method: { const: slotNotification }
params:
type: object
properties:
result:
type: object
required: [parent, root, slot]
properties:
parent: { type: integer, description: Parent slot number }
root: { type: integer, description: Current root slot }
slot: { type: integer, description: New slot value }
# ---------- Solana slotsUpdates ----------
SolSlotsUpdatesSubscribeRequest:
name: SolSlotsUpdatesSubscribeRequest
title: slotsUpdatesSubscribe request
contentType: application/json
payload:
type: object
required: [jsonrpc, id, method]
properties:
jsonrpc: { const: '2.0' }
id: { type: [integer, string] }
method: { const: slo
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/quicknode/refs/heads/main/asyncapi/quicknode-asyncapi.yml