dev.cocore.compute.termsAcceptance

cocore.dev

{
  "id": "dev.cocore.compute.termsAcceptance",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "exchange",
          "policy",
          "termsVersion",
          "termsUri",
          "acceptedAt"
        ],
        "properties": {
          "policy": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong-ref to the dev.cocore.compute.exchangePolicy that was active at acceptance time. The policy itself carries fee schedule + self-loop rules; the acceptance pins the human-readable terms via the policy's termsUri + termsVersion."
          },
          "exchange": {
            "type": "string",
            "format": "did",
            "description": "DID of the exchange whose terms the user is accepting."
          },
          "termsUri": {
            "type": "string",
            "format": "uri",
            "description": "URL of the terms-of-service text the user actually saw. Snapshotted from the policy."
          },
          "userAgent": {
            "type": "string",
            "maxLength": 512,
            "description": "Optional user-agent string from the client at acceptance time. Useful for forensics; not required."
          },
          "acceptedAt": {
            "type": "string",
            "format": "datetime"
          },
          "termsVersion": {
            "type": "string",
            "maxLength": 32,
            "description": "Version string of the human-readable terms accepted. Copied from the policy at acceptance time so the acceptance is self-contained even if the policy is later updated."
          }
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A user's affirmative acceptance of an exchange's terms of service / privacy policy. Published on the user's PDS so the record is portable + auditable + survives the user disconnecting from any one exchange. Clients prompt for re-acceptance whenever the active exchange policy's `termsVersion` doesn't match the version on the user's most recent acceptance for that exchange."
}

Validate Record

Validate a record against dev.cocore.compute.termsAcceptance

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:5quuhkmwe2q4k3azfsgg7kdz
CID
bafyreibqlxlmvoe4yeegtp7xouio3ha3dy747nxqvkhfvgqwt7b5jt7fo4
Indexed At
2026-06-17 21:16 UTC
AT-URI
at://did:plc:5quuhkmwe2q4k3azfsgg7kdz/com.atproto.lexicon.schema/dev.cocore.compute.termsAcceptance

Version History (2 versions)

Lexicon Garden

@