com.emdashcms.experimental.publisher.verification

emdashcms.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A signed claim that the issuing repo's DID vouches for `subject` as a trusted publisher of EmDash plugins. The official EmDash identity publishes these as the trust root; trusted issuers may delegate by issuing further verification claims of their own. Clients consume the resulting graph via the standard atproto-accept-labelers mechanism. The record key is a TID. Verification is bound to the subject's handle and displayName at the moment of issuance: a change to either invalidates the verification until the issuer re-attests. This matches Bluesky's app.bsky.graph.verification semantics and defends against handle reuse and identity drift.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "When the verification was issued.",
            "format": "datetime",
            "type": "string"
          },
          "displayName": {
            "description": "Subject's `displayName` from their `com.emdashcms.experimental.publisher.profile` record (rkey `self`) at the moment of issuance. The verification is only valid if the subject's current publisher profile displayName matches this value byte-for-byte. A subject without a publisher profile cannot be verified: the issuer MUST require the subject to publish a publisher.profile before issuing the claim, and clients MUST reject verifications whose subject has no publisher profile resolvable at issuance check time.",
            "maxGraphemes": 100,
            "maxLength": 1024,
            "type": "string"
          },
          "expiresAt": {
            "description": "Optional expiration timestamp. If absent, the verification has no automatic expiry. Clients SHOULD treat the verification as not in force after this time, regardless of whether the issuer has revoked it.",
            "format": "datetime",
            "type": "string"
          },
          "handle": {
            "description": "Handle of the subject at the moment of issuance. The verification is only valid if the subject's current handle (resolved from their DID document) matches this value byte-for-byte. Any handle change invalidates the verification until the issuer re-attests.",
            "format": "handle",
            "type": "string"
          },
          "subject": {
            "description": "DID of the subject the verification applies to.",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "subject",
          "handle",
          "displayName",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "Verification claim by one DID about another's status as a trusted EmDash plugin publisher. Modeled on Bluesky's app.bsky.graph.verification shape but in EmDash's own namespace so the semantics are scoped to plugin publishing. EXPERIMENTAL: shape may change before stabilisation.",
  "id": "com.emdashcms.experimental.publisher.verification",
  "lexicon": 1
}

Validate Record

Validate a record against com.emdashcms.experimental.publisher.verification

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:ilznslhspsvk6naatedr66pi
CID
bafyreih5nuxueqwotnf4dgopokl7s3pymig4l62vo4olcrotna3lgujicu
Indexed At
2026-10-08 09:24 UTC
AT-URI
at://did:plc:ilznslhspsvk6naatedr66pi/com.atproto.lexicon.schema/com.emdashcms.experimental.publisher.verification

Similar Lexicons

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

  • town.delve.graph.verification recordnot from the namespace authority

    Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted.

  • Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted.

  • A verified creator attestation issued by Babesky. Records are written by Babesky's service DID (did:plc:qtapiembzpxlzsiagnc7eyy3) into its own repository, pointing at the subject's DID. Validity is dynamic: the handle a…

  • com.emdashcms.experimental.publisher.profile recordnot from the namespace authority

    Identity-level metadata for a plugin publisher. One record per publisher DID, located at rkey `self`. Optional: a DID may publish packages without ever publishing a publisher.profile, in which case clients fall back to …

  • A Cartridge-specific verification record for studios, developers, publishers, and games. Written by the Cartridge verifier account.

Lexicon Garden

@