# monster.attest.bookmark

> Published by [attest.attest.monster](https://lexicon.garden/identity/did:plc:tqeqvx3hcgzg5uvgogwkm7lk)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:tqeqvx3hcgzg5uvgogwkm7lk/monster.attest.bookmark)
- [Documentation](https://lexicon.garden/lexicon/did:plc:tqeqvx3hcgzg5uvgogwkm7lk/monster.attest.bookmark/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:tqeqvx3hcgzg5uvgogwkm7lk/monster.attest.bookmark/examples)

## Definitions

### `monster.attest.bookmark`

**Type**: `record`

A bookmark: the author files a URL, DOI or content hash under tags, with an optional title and note. Filing is not endorsing (that is monster.attest.vote). One per author per subject; the record key is a base32 sha256 of the subject; writing again updates it; delete to remove.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `note` | `string` | No |  |
| `signatures` | `ref` → `app.certified.signature.defs#list` | No | Inline signatures per the ATProtocol Attestation Specification; attest requires one from the author's device key. |
| `subject` | `string` (uri) | Yes | What is bookmarked: a normalised https URL, a doi: URI or a sha256: URI. |
| `tags` | `array` | No | Lowercase words; letters, digits and hyphens. |
| `title` | `string` | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A bookmark: the author files a URL, DOI or content hash under tags, with an optional title and note. Filing is not endorsing (that is monster.attest.vote). One per author per subject; the record key is a base32 sha256 of the subject; writing again updates it; delete to remove.",
      "key": "any",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "note": {
            "maxGraphemes": 2000,
            "maxLength": 8000,
            "type": "string"
          },
          "signatures": {
            "description": "Inline signatures per the ATProtocol Attestation Specification; attest requires one from the author's device key.",
            "ref": "app.certified.signature.defs#list",
            "type": "ref"
          },
          "subject": {
            "description": "What is bookmarked: a normalised https URL, a doi: URI or a sha256: URI.",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "tags": {
            "description": "Lowercase words; letters, digits and hyphens.",
            "items": {
              "maxGraphemes": 32,
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 12,
            "type": "array"
          },
          "title": {
            "maxGraphemes": 300,
            "maxLength": 1000,
            "type": "string"
          }
        },
        "required": [
          "subject",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "monster.attest.bookmark",
  "lexicon": 1
}
```
