com.germnetwork.declaration

A declaration of a Germ Network account

Details · record, key literal:self
Kindrecord
Record keyliteral:self
Authoritygermnetwork.com
Indexed
cid bafyreickqsspgkujwucg3low5or64ywjryf44eua6xtszd6zsl2yteumoi

Checks

Valid
  • unlimited-bytes defs.main.record.properties.continuityProofs.itemsNo maxLength limits these bytes.
  • unlimited-bytes defs.main.record.properties.currentKeyNo maxLength limits these bytes.
  • unlimited-bytes defs.main.record.properties.keyPackageNo maxLength limits these bytes.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A declaration of a Germ Network account",
      "key": "literal:self",
      "record": {
        "properties": {
          "continuityProofs": {
            "description": "Array of opaque values to allow for key rolling",
            "items": {
              "type": "bytes"
            },
            "maxLength": 1000,
            "type": "array"
          },
          "currentKey": {
            "description": "Opaque value, an ed25519 public key prefixed with a byte enum",
            "type": "bytes"
          },
          "keyPackage": {
            "description": "Opaque value, contains MLS KeyPackage(s), and other signature data, and is signed by the currentKey",
            "type": "bytes"
          },
          "messageMe": {
            "description": "Controls who can message this account",
            "ref": "#messageMe",
            "type": "ref"
          },
          "version": {
            "description": "Semver version number, without pre-release or build information, for the format of opaque content",
            "maxLength": 14,
            "minLength": 5,
            "type": "string"
          }
        },
        "required": [
          "version",
          "currentKey"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "messageMe": {
      "properties": {
        "messageMeUrl": {
          "description": "A URL to present to an account that does not have its own com.germnetwork.declaration record, must have an empty fragment component, where the app should fill in the fragment component with the DIDs of the two accounts who wish to message each other",
          "format": "uri",
          "maxLength": 2047,
          "minLength": 1,
          "type": "string"
        },
        "showButtonTo": {
          "description": "The policy of who can message the account, this value is included in the keyPackage, but is duplicated here to allow applications to decide if they should show a 'Message on Germ' button to the viewer.",
          "knownValues": [
            "none",
            "usersIFollow",
            "everyone"
          ],
          "maxLength": 100,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "showButtonTo",
        "messageMeUrl"
      ],
      "type": "object"
    }
  },
  "id": "com.germnetwork.declaration",
  "lexicon": 1
}