i2p lexicon draft
i2p-lexicon
edited
1{
2 "lexicon": 1,
3 "id": "org.i2p.atproto.endpoint",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "A record mapping an ATProto DID to an I2P destination address for service discovery.",
8 "key": "literal",
9 "record": {
10 "type": "object",
11 "required": ["did", "i2pAddress", "serviceType"],
12 "properties": {
13 "did": {
14 "type": "string",
15 "format": "did",
16 "description": "The ATProto DID (Decentralized Identifier) associated with this endpoint."
17 },
18 "i2pAddress": {
19 "type": "string",
20 "maxLength": 1024,
21 "description": "The I2P destination. Must be a Base64 destination key."
22 },
23 "addressType": {
24 "type": "string",
25 "knownValues": [
26 "i2p_destination_base64"
27 ],
28 "description": "Specifies the format of the i2pAddress to assist client parsing."
29 },
30 "serviceType": {
31 "type": "string",
32 "knownValues": [
33 "pds",
34 "relay",
35 "appview",
36 "plc"
37 ],
38 "description": "The type of ATProto service running at this I2P address."
39 },
40 "publicKey": {
41 "type": "string",
42 "description": "Optional. The I2P ElGamal or EdDSA public key if separate from the destination."
43 },
44 "updatedAt": {
45 "type": "datetime",
46 "description": "Timestamp of the last known verification of this endpoint."
47 }
48 }
49 }
50 }
51 }
52}