pds-starter-pack/docs/custom-did-plc.md
2025-07-04 20:44:34 +09:00

3 KiB

Setting up a custom did:plc

This guide will help you modify your did:plc so you can point it to a different PDS yourself without losing your identity!

Obtain secret keys

  1. Generate secret keys using boat

    📸 Example image

    Image of using boat.kelinci.net to generate secret keys

  2. Store these keys in a safe location, for example - in your password manager. (and don't share your private keys with anyone!)

Add the new keys to your did:plc

  1. Open the PLC applicator in boat

  2. Enter your handle and password

    📸 Image

    Image of logging into boat.kelinci.net's PLC applicator

  3. Select "Append an operation"

    📸 Image

    Image of selecting "Append an operation" into boat.kelinci.net's PLC applicator

  4. Add your new generated public key (did:key) to the top of the rotationKeys array (with a following comma). It is important to add it at the top, since PLC keys aren't all equal, their position in the array defines their priority. If you add it at the bottom, it will not be able to override operations submitted by the old key (which is controlled by your PDS).

    See example payload
    {
      "alsoKnownAs": [
        "at://placeholder.pds.witchcraft.systems"
      ],
      "rotationKeys": [
        "did:key:zQ3shcmcnHahf41czhQHUb4zCLDEaLyHznd1ENHmatUtw6vPn", // add your new public key (did:key) here
        "did:key:zQ3shuT9p9qxyXwJaUPsegQ5GCp7fxyLsjDKS5nybPXSohght" // your old did:key
      ],
      "services": {
        "atproto_pds": {
          "type": "AtprotoPersonalDataServer",
          "endpoint": "https://pds.witchcraft.systems"
        }
      },
      "verificationMethods": {
        "atproto": "did:key:zQ3shrEaHqBf3PtN8r3PksRCRNpiB92czfEZWZUt8DcjExLam"
      }
    }
    
    📸 Image

    Image of payload data in boat.kelinci.net's PLC applicator

  5. Request a verification code and enter it below, then press next.

    📸 Image

    Image of entering a verification code in boat.kelinci.net's PLC applicator

    Not receiving the email?
    • Check your junk mail
    • Outlook emails don't seem to work, you can try Proton
  6. Your did:plc should be updated, which means you can point your did:plc to a different PDS by yourself while keeping your identity!

See also