# blockSubscribe

Subscribe to receive a notification anytime a new block is Confirmed or Finalized.

This method will use `20` [Compute Units](/v1/about/billing.md).

***

## **Parameters**

* `filters` string. The filter criteria for the logs to receive results by account type. Currently it supports the following params:
  * `all` string. Includes all transactions in a block.
  * `object` object. An object with the following field:
    * `mentionsAccountOrProgram` string Only retrieve transactions that reference the specified public key as a base-58 encoded string. If a block contains no such references, no notifications will be generated.
  * `object` *optional.* Configuration object containing the following fields:
    * `commitment` string. The level of commitment required for the query. The options include:
      * `finalized` string. The node will query the most recent block confirmed by the supermajority of the cluster as having reached maximum lockout, meaning the cluster has recognized this block as finalized.
      * `confirmed` string. The node will query the most recent block that has been voted on by the supermajority of the cluster.
      * `processed` string. The node will query its most recent block. Note that the block may not be complete.
    * `transactionDetails` string. The level of transaction detail to return, either 'full', 'signatures', or 'none'.
    * `showRewards` boolean. Indicated whether to populate the 'rewards' array.
    * `encoding` string. The encoding format for account data. It can be one of base58 (slow), base64, base64+zstd or jsonParsed.

## Returns

`result` integer The subscription id.

`blockNotification` object. The notification object with the following fields:

* `slot` integer. The corresponding slot.
* `err` object. Error if something went wrong publishing the notification otherwise null.
* `block` object. A block object as seen in the getBlock RPC HTTP method.

```bash
// Result
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "blockSubscribe",
  "params": [
    {
      "mentionsAccountOrProgram": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op"
    },
    {
      "commitment": "confirmed",
      "encoding": "base64",
      "showRewards": true,
      "transactionDetails": "full"
    }
  ]
}
```

{% tabs %}
{% tab title="mainnet" %}

<pre class="language-bash"><code class="lang-bash"><strong>wscat -c wss://mainnet.solana.validationcloud.io/v1/&#x3C;YOUR_API_KEY_HERE>
</strong># wait for connection
{"id":1,"jsonrpc":"2.0","method":"blockSubscribe","params":["all"]}
    
</code></pre>

{% endtab %}

{% tab title="devnet" %}

```bash
wscat -c wss://devnet.solana.validationcloud.io/v1/<YOUR_API_KEY_HERE>
# wait for connection
{"id":1,"jsonrpc":"2.0","method":"accountSubscribe","params":["E645TckHQnDcavVv92Etc6xSWQaq8zzPtPRGBheviRAk",{"encoding": "jsonParsed", "commitment": "finalized"}]}
    
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.validationcloud.io/v1/solana/websocket-unstable-methods/blocksubscribe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
