Self.ID · Schema

AlsoKnownAs

Self.ID alsoKnownAs record schema — links a DID to external Web2 accounts (Twitter, GitHub, Discord, etc.) with cryptographic proofs, following the DIF AlsoKnownAs specification.

Decentralized IdentityDIDCeramicSelf-Sovereign IdentityWeb3Verifiable CredentialsBlockchain

Properties

Name Type Description
accounts array List of linked external accounts with verification proofs
View JSON Schema on GitHub

JSON Schema

also-known-as.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/ceramicstudio/self.id/main/packages/core/src/schemas/alsoKnownAs.json",
  "title": "AlsoKnownAs",
  "description": "Self.ID alsoKnownAs record schema — links a DID to external Web2 accounts (Twitter, GitHub, Discord, etc.) with cryptographic proofs, following the DIF AlsoKnownAs specification.",
  "type": "object",
  "properties": {
    "accounts": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Account"
      },
      "maxItems": 200,
      "description": "List of linked external accounts with verification proofs"
    }
  },
  "required": ["accounts"],
  "$defs": {
    "Account": {
      "type": "object",
      "title": "Account",
      "description": "A single linked external account",
      "properties": {
        "protocol": {
          "type": "string",
          "maxLength": 100,
          "description": "Protocol or platform identifier (e.g. 'https', 'twitter', 'github')",
          "examples": ["https", "twitter", "github", "discord"]
        },
        "host": {
          "type": "string",
          "maxLength": 150,
          "description": "Hostname for the service (e.g. 'twitter.com')",
          "examples": ["twitter.com", "github.com"]
        },
        "id": {
          "type": "string",
          "maxLength": 300,
          "description": "Account identifier (username, user ID, or profile URL path)",
          "examples": ["@alice", "alice", "123456789"]
        },
        "claim": {
          "type": "string",
          "format": "uri",
          "maxLength": 300,
          "description": "Optional URL pointing to the public attestation or verification claim"
        },
        "attestations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Attestation"
          },
          "maxItems": 50,
          "description": "Cryptographic attestations proving account ownership"
        }
      },
      "required": ["protocol", "id"],
      "additionalProperties": false
    },
    "Attestation": {
      "type": "object",
      "title": "Attestation",
      "description": "A cryptographic proof of account ownership, typically a signed JSON-LD credential",
      "properties": {
        "did-jwt-vc": {
          "type": "string",
          "description": "A DID JWT verifiable credential attesting account ownership"
        }
      },
      "additionalProperties": {
        "type": "string"
      },
      "minProperties": 1
    }
  }
}