at.atjam.signup

atjam.at

{
  "$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
}

Validate Record

Validate a record against at.atjam.signup

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:b5bxdq5jyv3tvkyscu42xr7u
CID
bafyreifqoavacfrkus7iftgojkueule5k3dhw7ki6j2srop7trqquzgtem
Indexed At
2026-10-03 04:40 UTC
AT-URI
at://did:plc:b5bxdq5jyv3tvkyscu42xr7u/com.atproto.lexicon.schema/at.atjam.signup

Version History (3 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • An invitation to participate in a round, written by an inviter on their own PDS. The inviter's DID is implicit (the record creator). Required for participation in rounds where round.joinMode is 'hosted' (only the jam or…

  • A single instance of a jam: an assignment with a deadline that participants sign up for and submit to. State (open / in-progress / closed) is derived from milestones, not stored as an enum.

  • site.filae.agora.invite recordnot from the namespace authority

    An invitation for someone to join Agora

  • A participant's submission to a round. atjam does not host the deliverable; it points at it. The strong way is `payload` — a strong-ref to a record on whichever ATProto app owns the data (plyr.fm track, standard.site …

  • The author taking part in a challenge. Joining is how a challenge comes to be offered wherever the author posts - nobody is signed up for a challenge they didn't join - and it's public, like a follow, so a challenge can…

Lexicon Garden

@