space.highport.manage.reserveDomain

lexicons.highport.space

Schema Diff

+1 -1

From

CID
bafyreiad6x4iikw...
Indexed At
2026-09-17 00:03 UTC
View this version

To

CID
bafyreibzjqnehgx...
Indexed At
2026-09-17 13:00 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Reserve a name directly under a delegation-enabled base for another identity. The name answers /.well-known/atproto-did with the subject before the subject has published anything, and the subject may then publish a site there. The caller must be the base's registered identity. An unproven claim on the name, held by any identity, is replaced. Reserving a name again for the subject that already holds it is answered with the reservation as it stands, writes nothing, and does not count against maxNames, so a retry is safe. A reservation has no expiry: it is held for as long as the base is.",
6 6
      "errors": [
7 7
        {
8 8
          "description": "Not a syntactically valid, non-reserved domain.",
9 9
          "name": "InvalidDomain"
10 10
        },
11 11
        {
12 12
          "description": "The hostname or the subject is on the operator denylist.",
13 13
          "name": "DomainDenied"
14 14
        },
15 15
        {
16 16
          "description": "The name is not under a delegation-enabled base whose verified or active registration belongs to the caller.",
17 17
          "name": "NotBaseOwner"
18 18
        },
19 19
        {
20 -
          "description": "A proven registration of this name exists, including one the base owner made the ordinary way, a live reservation for a different subject, or a suspended one; release it first.",
20 +
          "description": "The name is held and cannot be reserved: a proven registration of it exists, including one the base owner made the ordinary way, a live reservation for a different subject, or a suspended one; an unproven claim on it is itself a base carrying a delegation or a certificate grant; or it is released but still carries a delegation or a grant, such as one whose wildcard is still being retired. Release it, or wait for the retirement, first.",
21 21
          "name": "DomainTaken"
22 22
        },
23 23
        {
24 24
          "description": "The base's wildcard has not been shown to route to this service: its delegation probe has not passed yet, or the base's routing has lapsed. The message names the probe hostname and the *.<base> record to publish or restore. The name being reserved is never resolved.",
25 25
          "name": "DelegationNotVerified"
26 26
        },
27 27
        {
28 28
          "description": "The subject is not a well-formed did:plc or did:web, or is a did:web rooted at the hostname being reserved, or a genesisOp was given that does not prove the subject. The message says which rule failed.",
29 29
          "name": "InvalidSubject"
30 30
        },
31 31
        {
32 32
          "description": "The name is more than one label under the base. A wildcard covers exactly one label, so a deeper name could never complete a handshake.",
33 33
          "name": "DelegatedNameTooDeep"
34 34
        },
35 35
        {
36 36
          "description": "The base already holds its maxNames reservations. Never returned for a name the subject already holds.",
37 37
          "name": "DelegationQuotaExceeded"
38 38
        }
39 39
      ],
40 40
      "input": {
41 41
        "encoding": "application/json",
42 42
        "schema": {
43 43
          "properties": {
44 44
            "genesisOp": {
45 45
              "description": "Optional proof for a did:plc subject: its signed genesis operation, as submitted to a PLC directory. Verified offline, without resolving anything. The call is refused with InvalidSubject unless the operation is a genesis operation (prev is null) that hashes to the subject, is signed by one of its own rotation keys, and lists at://<hostname> in alsoKnownAs. A subject that is not a did:plc cannot carry one.",
46 46
              "type": "unknown"
47 47
            },
48 48
            "hostname": {
49 49
              "description": "A name exactly one label under a delegation-enabled base the caller owns.",
50 50
              "maxLength": 253,
51 51
              "type": "string"
52 52
            },
53 53
            "subject": {
54 54
              "description": "The identity the name is reserved for. Without genesisOp it is checked for syntax only: it need not resolve, and its DID document need not name the hostname yet.",
55 55
              "format": "did",
56 56
              "type": "string"
57 57
            }
58 58
          },
59 59
          "required": [
60 60
            "hostname",
61 61
            "subject"
62 62
          ],
63 63
          "type": "object"
64 64
        }
65 65
      },
66 66
      "output": {
67 67
        "encoding": "application/json",
68 68
        "schema": {
69 69
          "properties": {
70 70
            "hostname": {
71 71
              "type": "string"
72 72
            },
73 73
            "status": {
74 74
              "ref": "space.highport.defs#domainStatus",
75 75
              "type": "ref"
76 76
            },
77 77
            "subject": {
78 78
              "format": "did",
79 79
              "type": "string"
80 80
            }
81 81
          },
82 82
          "required": [
83 83
            "hostname",
84 84
            "status",
85 85
            "subject"
86 86
          ],
87 87
          "type": "object"
88 88
        }
89 89
      },
90 90
      "type": "procedure"
91 91
    }
92 92
  },
93 93
  "id": "space.highport.manage.reserveDomain",
94 94
  "lexicon": 1
95 95
}

Compare Other Versions

Lexicon Garden

@