> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Как использовать accountSubscribe

> Получайте обновления аккаунта Solana в реальном времени с помощью `accountSubscribe`. Отслеживайте изменения баланса, данных и количества лампортов через WebSocket.

## Что такое `accountSubscribe`?

WebSocket в Solana поддерживает метод, который позволяет подписаться на аккаунт и получать уведомления через WebSocket-соединение при каждом изменении количества лампортов или данных, связанных с соответствующим публичным ключом аккаунта.

Этот метод полностью соответствует [спецификации WSS API Solana](https://solana.com/docs/rpc/websocket#accountsubscribe).

## Параметры

* `string`: публичный ключ аккаунта, передаваемый в формате `base58` (обязательный параметр)
* `object`: необязательный объект для передачи дополнительных параметров
* `encoding`: задает формат данных, возвращаемых в `AccountNotification`. Поддерживаемые значения: `base58` (по умолчанию), `base64`, `base64+zstd`, `jsonParsed`
* `commitment`: задает уровень подтверждения транзакции. Поддерживаемые значения: `finalized` (по умолчанию), `confirmed`, `processed`
* `notifyOn`: **Устарел — не выполняет никаких действий начиная с Agave 4.2.** Установка `notifyOn` ни на что не влияет. Это поле будет удалено в будущем.

## Пример подписки на аккаунт

В этом примере мы подписываемся на изменения аккаунта `SysvarC1ock11111111111111111111111111111111`.

Мы будем получать обновление при каждом изменении данных аккаунта или количества лампортов на нем.

Для этого аккаунта обновления происходят часто, поскольку `slot` и `unixTimestamp` входят в возвращаемые данные аккаунта.

<Tip>
  Метод `accountSubscribe` с фильтрацией от Helius доступен через те же унифицированные [эндпоинты](https://www.helius.dev/docs/api-reference/endpoints) `wss://mainnet.helius-rpc.com` и `wss://devnet.helius-rpc.com`, что и остальные методы подписки WebSocket.
</Tip>

<CodeGroup>
  ```javascript theme={"system"}
  const WebSocket = require('ws');

  // Create a WebSocket connection
  const ws = new WebSocket('wss://mainnet.helius-rpc.com?api-key=<API_KEY>');

  // Function to send a request to the WebSocket server
  function sendRequest(ws) {
      const request = {
          jsonrpc: "2.0",
          id: 420,
          method: "accountSubscribe",
          params: [
              "SysvarC1ock11111111111111111111111111111111", // pubkey of account we want to subscribe to
              {
                  encoding: "jsonParsed", // base58, base64, base64+zstd, jsonParsed
                  commitment: "confirmed", // defaults to finalized if unset
              }
          ]
      };
      ws.send(JSON.stringify(request));
  }

  // Function to send a ping to the WebSocket server
  function startPing(ws) {
      setInterval(() => {
          if (ws.readyState === WebSocket.OPEN) {
              ws.ping();
              console.log('Ping sent');
          }
      }, 30000); // Ping every 30 seconds
  }

  // Define WebSocket event handlers

  ws.on('open', function open() {
      console.log('WebSocket is open');
      sendRequest(ws);  // Send a request once the WebSocket is open
      startPing(ws);    // Start sending pings
  });

  ws.on('message', function incoming(data) {
      const messageStr = data.toString('utf8');
      try {
          const messageObj = JSON.parse(messageStr);
          console.log('Received:', messageObj);
      } catch (e) {
          console.error('Failed to parse JSON:', e);
      }
  });

  ws.on('error', function error(err) {
      console.error('WebSocket error:', err);
  });

  ws.on('close', function close() {
      console.log('WebSocket is closed');
  });
  ```
</CodeGroup>

### Пример уведомления

<CodeGroup>
  ```json theme={"system"}
  {
      "jsonrpc": "2.0",
      "method": "accountNotification",
      "params": {
          "subscription": 237508762798666,
          "result": {
              "context": {"slot": 235781083},
              "value": {
                  "lamports": 1169280,
                  "data": "BvEhEb6hixL3QPn41gHcyi2CDGKt381jbNKFFCQr6XDTzCTXCuSUG9D",
                  "owner": "Sysvar1111111111111111111111111111111111111",
                  "executable": false,
                  "rentEpoch": 361,
                  "space": 40
              }
          }
      }
  }
  ```
</CodeGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.