# Message Format

Messages received from the WebSocket API will be JSON objects with the following similar format:

<table><thead><tr><th width="162">Property</th><th width="118">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>sequence</code></strong></td><td>int</td><td>The sequence number that the message was sent in</td></tr><tr><td><strong><code>recipient</code></strong></td><td>string</td><td>The corresponding WebSocket feed that the message was sent to</td></tr><tr><td><strong><code>timestamp</code></strong></td><td>int</td><td>The UNIX timestamp (in nanoseconds)</td></tr><tr><td><strong><code>payload</code></strong></td><td>JSON</td><td>The payload parameter will be a JSON string that contains then data</td></tr></tbody></table>

{% hint style="info" %}
Please note that the `sequence` number sent by the WebSocket is not guaranteed to be in ascending order. If you detect any gaps or incorrect ordering you should reconnect.
{% endhint %}

**Example Message**

```json
{
  "sequence": 10,
  "recipient": "private.user.balances",
  "timestamp": 1649899310281716289,
  "payload": [{
    "currency": "aave",
    "balance": "0.17572419",
    "available": "0.17572419",
    "held": "0",
    "wallet_display_id": "5a3f1b1c-719d-11e9-b0be-0ea0e44d1000"
  }, {
    "currency": "ada",
    "balance": "42.32365721",
    "available": "42.32365721",
    "held": "0",
    "wallet_display_id": "5a3f1b1c-719d-11e9-b0be-0ea0e44d1000"
  }, {
    "currency": "atom",
    "balance": "0.40485184",
    "available": "0.40485184",
    "held": "0",
    "wallet_display_id": "5a3f1b1c-719d-11e9-b0be-0ea0e44d1000"
  }, {
    "currency": "avax",
    "balance": "0",
    "available": "0",
    "held": "0",
    "wallet_display_id": "5a3f1b1c-719d-11e9-b0be-0ea0e44d1000"
  }]
}
```
