# at.atjam.signup

> Published by [atjam.at](https://lexicon.garden/identity/did:plc:b5bxdq5jyv3tvkyscu42xr7u)

✓ This is the authoritative definition for this NSID.

## Description

A declaration of intent to participate in a specific round. The participant's DID is implicit (the record creator). When the round's joinMode is 'hosted' or 'network', a signup is only valid for readers when it strong-refs an at.atjam.invitation written by a valid inviter. Writers SHOULD key a signup by a hash of the round's at-uri (the first 32 hex chars of its SHA-256) and write it with putRecord, so a person has at most one signup per round; readers MUST still tolerate several signups from one DID (older TID-keyed records exist). Deleting a signup means the person has left the round.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:b5bxdq5jyv3tvkyscu42xr7u/at.atjam.signup)
- [Documentation](https://lexicon.garden/lexicon/did:plc:b5bxdq5jyv3tvkyscu42xr7u/at.atjam.signup/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:b5bxdq5jyv3tvkyscu42xr7u/at.atjam.signup/examples)

## Definitions

### `at.atjam.signup`

**Type**: `record`

Declares the record creator's intent to participate in the referenced round.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `invitation` | `ref` → `com.atproto.repo.strongRef` | No | Strong-ref to an at.atjam.invitation that authorizes this signup. Required by readers when round.joinMode is 'hosted' or 'network'; ignored when 'open'. The invitation's invitee DID MUST match this signup's creator DID — consumers validate this relationship. |
| `note` | `string` | No | Optional note from the participant (e.g. what they plan to do). |
| `round` | `ref` → `com.atproto.repo.strongRef` | Yes | Strong-ref to the at.atjam.round record. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Declares the record creator's intent to participate in the referenced round.",
      "key": "any",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "invitation": {
            "description": "Strong-ref to an at.atjam.invitation that authorizes this signup. Required by readers when round.joinMode is 'hosted' or 'network'; ignored when 'open'. The invitation's invitee DID MUST match this signup's creator DID — consumers validate this relationship.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "note": {
            "description": "Optional note from the participant (e.g. what they plan to do).",
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "round": {
            "description": "Strong-ref to the at.atjam.round record.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          }
        },
        "required": [
          "round",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A declaration of intent to participate in a specific round. The participant's DID is implicit (the record creator). When the round's joinMode is 'hosted' or 'network', a signup is only valid for readers when it strong-refs an at.atjam.invitation written by a valid inviter. Writers SHOULD key a signup by a hash of the round's at-uri (the first 32 hex chars of its SHA-256) and write it with putRecord, so a person has at most one signup per round; readers MUST still tolerate several signups from one DID (older TID-keyed records exist). Deleting a signup means the person has left the round.",
  "id": "at.atjam.signup",
  "lexicon": 1
}
```
