# social.colibri.beta.channel.read

> Published by [colibri.social](https://lexicon.garden/identity/did:plc:mprdjqjluoswa7awzggaggj3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel.read)
- [Documentation](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel.read/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel.read/examples)

## Definitions

### `social.colibri.beta.channel.read`

**Type**: `record`

Read state for one community's channels. The record key is the community DID, which bounds each record to a community's channel count and makes leaving a community a single delete.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cursors` | `array` | Yes | One cursor per read channel. |
| `community` | `string` (did) | Yes | The community these cursors belong to. Matches the record key. |

### `social.colibri.beta.channel.read#cursor`

**Type**: `object`

The last message read in one channel.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cursor` | `string` (tid) | Yes | Record key of the last message read. Message keys are TIDs, so they order by time. |
| `channel` | `string` (record-key) | Yes | The channel's space key. |

## Raw Schema

```json
{
  "id": "social.colibri.beta.channel.read",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "community",
          "cursors"
        ],
        "properties": {
          "cursors": {
            "type": "array",
            "items": {
              "ref": "#cursor",
              "type": "ref"
            },
            "description": "One cursor per read channel."
          },
          "community": {
            "type": "string",
            "format": "did",
            "description": "The community these cursors belong to. Matches the record key."
          }
        }
      },
      "description": "Read state for one community's channels. The record key is the community DID, which bounds each record to a community's channel count and makes leaving a community a single delete."
    },
    "cursor": {
      "type": "object",
      "required": [
        "channel",
        "cursor"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "format": "tid",
          "description": "Record key of the last message read. Message keys are TIDs, so they order by time."
        },
        "channel": {
          "type": "string",
          "format": "record-key",
          "description": "The channel's space key."
        }
      },
      "description": "The last message read in one channel."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
