dev.cocore.compute.termsAcceptance

cocore.dev

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "tid",
      "record": {
        "properties": {
          "acceptedAt": {
            "format": "datetime",
            "type": "string"
          },
          "exchange": {
            "description": "DID of the exchange whose terms the user is accepting.",
            "format": "did",
            "type": "string"
          },
          "policy": {
            "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.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "termsUri": {
            "description": "URL of the terms-of-service text the user actually saw. Snapshotted from the policy.",
            "format": "uri",
            "type": "string"
          },
          "termsVersion": {
            "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.",
            "maxLength": 32,
            "type": "string"
          },
          "userAgent": {
            "description": "Optional user-agent string from the client at acceptance time. Useful for forensics; not required.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "exchange",
          "policy",
          "termsVersion",
          "termsUri",
          "acceptedAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "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.",
  "id": "dev.cocore.compute.termsAcceptance",
  "lexicon": 1
}

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)

Similar Lexicons

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

  • An exchange's self-published statement of operating posture: software commit, public signing key fingerprint, fee policy in effect, audit posture. The provider/requester analog of `dev.cocore.compute.attestation` for th…

  • A record of the account holder accepting a policy document set presented by their PDS. Written to the account's own repository so the acceptance travels with the identity: it survives a migration to another host, and ca…

Lexicon Garden

@