- ---
- order: 7
- ---
-
- # Subscribing to events via Websocket
-
- Tendermint emits different events, which you can subscribe to via
- [Websocket](https://en.wikipedia.org/wiki/WebSocket). This can be useful
- for third-party applications (for analysis) or for inspecting state.
-
- [List of events](https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants)
-
- To connect to a node via websocket from the CLI, you can use a tool such as
- [wscat](https://github.com/websockets/wscat) and run:
-
- ```sh
- wscat ws://127.0.0.1:26657/websocket
- ```
-
- You can subscribe to any of the events above by calling the `subscribe` RPC
- method via Websocket along with a valid query.
-
- ```json
- {
- "jsonrpc": "2.0",
- "method": "subscribe",
- "id": 0,
- "params": {
- "query": "tm.event='NewBlock'"
- }
- }
- ```
-
- Check out [API docs](https://docs.tendermint.com/master/rpc/) for
- more information on query syntax and other options.
-
- You can also use tags, given you had included them into DeliverTx
- response, to query transaction results. See [Indexing
- transactions](../app-dev/indexing-transactions.md) for details.
-
- ## ValidatorSetUpdates
-
- When validator set changes, ValidatorSetUpdates event is published. The
- event carries a list of pubkey/power pairs. The list is the same
- Tendermint receives from ABCI application (see [EndBlock
- section](https://github.com/tendermint/tendermint/blob/master/spec/abci/abci.md#endblock) in
- the ABCI spec).
-
- Response:
-
- ```json
- {
- "jsonrpc": "2.0",
- "id": 0,
- "result": {
- "query": "tm.event='ValidatorSetUpdates'",
- "data": {
- "type": "tendermint/event/ValidatorSetUpdates",
- "value": {
- "validator_updates": [
- {
- "address": "09EAD022FD25DE3A02E64B0FE9610B1417183EE4",
- "pub_key": {
- "type": "tendermint/PubKeyEd25519",
- "value": "ww0z4WaZ0Xg+YI10w43wTWbBmM3dpVza4mmSQYsd0ck="
- },
- "voting_power": "10",
- "proposer_priority": "0"
- }
- ]
- }
- }
- }
- }
- ```
|