Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions methods/websocket/voteUnsubscribe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# voteUnsubscribe

Cancels a subscription created by `voteSubscribe` on the same WebSocket connection and returns `true`. An id that this connection does not hold returns `InvalidParams` (-32602) with the message `Invalid subscription id.` Agave returns `MethodNotFound` unless the validator enables `--rpc-pubsub-enable-vote-subscription`.

## Implementation notes

[**Agave**](../../implementations/agave.md) implements this method in the [pinned PubSub trait](https://github.com/anza-xyz/agave/blob/6dd9d38771e46103b9680357a855804165612602/rpc/src/rpc_pubsub.rs#L227).
28 changes: 28 additions & 0 deletions methods/websocket/voteUnsubscribe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: voteUnsubscribe
status: standard
summary: Cancel a voteSubscribe subscription.
params:
- name: subscriptionId
required: true
summary: Identifier returned by voteSubscribe on this connection.
schema: { $ref: '#/components/schemas/U64' }
result:
name: success
summary: True when the subscription is cancelled.
schema: { type: boolean }
errors:
- $ref: '#/components/errors/MethodNotFound'
- $ref: '#/components/errors/InvalidParams'
examples:
- name: basic
summary: Cancel a subscription.
params:
- name: subscriptionId
value: 1
result:
name: success
value: true
implementations:
agave: { status: full }
cloudbreak: { status: none }
superbank: { status: none }
38 changes: 38 additions & 0 deletions proposals/0060-vote-unsubscribe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
number: 0060
title: Add voteUnsubscribe
authors: [rpcpool]
status: draft
created: 2026-09-14
reference-implementations: [https://github.com/anza-xyz/agave/blob/6dd9d38771e46103b9680357a855804165612602/rpc/src/rpc_pubsub.rs#L227]
---

# Add voteUnsubscribe

## Summary

Add the voteUnsubscribe WebSocket RPC method.

## Motivation

Agave exposes this public PubSub lifecycle method.

## Specification

Add the paired WebSocket method page. It defines the connection-scoped cancellation request, true result, and invalid-subscription error.

## Return-type impact

The method returns true after cancellation.

## Compatibility

This is additive. Agave implements it. Cloudbreak and Superbank do not currently implement WebSocket PubSub.

## Reference implementation

[Agave pinned handler](https://github.com/anza-xyz/agave/blob/6dd9d38771e46103b9680357a855804165612602/rpc/src/rpc_pubsub.rs#L227)

## Security considerations

Servers release the subscription resources when this call succeeds.
2 changes: 1 addition & 1 deletion spec-info.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
title: Solana JSON-RPC API
version: 0.1.0
version: 0.2.0
license:
name: MIT
url: https://opensource.org/license/mit/
Expand Down
Loading