rip.pds.account.putServices

pds.rip

{
  "id": "rip.pds.account.putServices",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "required": [
            "did"
          ],
          "properties": {
            "did": {
              "type": "string",
              "format": "did"
            },
            "labelKey": {
              "type": "string",
              "description": "Public multikey published as #atproto_label, which a labeler signs its labels with. Required when a labeler entry is present. The private half is never sent here."
            },
            "services": {
              "type": "array",
              "items": {
                "ref": "#serviceEntry",
                "type": "ref"
              },
              "maxLength": 10,
              "description": "The complete set of service entries, in DID document shape. Omit or pass an empty array to reset to the minimal document."
            }
          }
        },
        "encoding": "application/json"
      },
      "errors": [
        {
          "name": "AccountNotFound",
          "description": "No live account with that DID was minted by the caller."
        },
        {
          "name": "NotAWebIdentity",
          "description": "The account is a did:plc, whose document this server cannot edit."
        },
        {
          "name": "InvalidRequest",
          "description": "A fragment, endpoint or label key was not acceptable."
        }
      ],
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "did",
            "document",
            "services"
          ],
          "properties": {
            "did": {
              "type": "string",
              "format": "did"
            },
            "document": {
              "type": "unknown",
              "description": "The DID document as it will now be served."
            },
            "labelKey": {
              "type": "string"
            },
            "services": {
              "type": "array",
              "items": {
                "ref": "#serviceEntry",
                "type": "ref"
              }
            },
            "warnings": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Advisory notes. A known fragment carrying an unexpected type publishes fine but is ignored by consumers that check the type."
            },
            "updatedAt": {
              "type": "string",
              "format": "datetime"
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Replace the service entries on a did:web account's DID document. The whole set is supplied each time, so an empty list resets the document to its minimal form. Any fragment and type are allowed except the ones this server manages. Only for did:web accounts the caller minted."
    },
    "serviceEntry": {
      "type": "object",
      "required": [
        "id",
        "type",
        "serviceEndpoint"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The fragment, written as '#my_service' or in full as 'did:web:host#my_service'. Fragments this server manages, '#atproto' and '#atproto_pds', cannot be set."
        },
        "type": {
          "type": "string",
          "description": "The service type, for example 'BskyFeedGenerator'. Supplied rather than derived, so unrecognised types can be published."
        },
        "serviceEndpoint": {
          "type": "string",
          "format": "uri",
          "description": "An https URL. Private and local addresses are refused, because the document is read by other people's infrastructure."
        }
      },
      "description": "A DID document service entry. Extra properties are permitted, as atproto tolerates them."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against rip.pds.account.putServices

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:w24v65i3bcsxk6mbbgfdukve
CID
bafyreicuaoyf2gsq7flxo52jzsaunjkj3yw5vjged7pnpseou3puiev3gy
Indexed At
2026-09-20 07:50 UTC
AT-URI
at://did:plc:w24v65i3bcsxk6mbbgfdukve/com.atproto.lexicon.schema/rip.pds.account.putServices

Version History (2 versions)

Lexicon Garden

@