ditto/docs/events.md

1.9 KiB

Ditto custom events

Users

Ditto user events describe a pubkey's relationship with the Ditto server. They are parameterized replaceable events of kind 30361 where the d tag is a pubkey. These events are published by Ditto's internal admin keypair.

User events have the following tags:

  • d - pubkey of the user.
  • name - NIP-05 username granted to the user, without the domain.
  • role - one of admin or user.
  • origin - the origin of the user's NIP-05, at the time the event was published.

Example:

{
  "id": "d6ae2f320ae163612bf28080e7c6e55b228ee39bfa04ad50baab2e51022d4d59",
  "kind": 30361,
  "pubkey": "4cfc6ceb07bbe2f5e75f746f3e6f0eda53973e0374cd6bdbce7a930e10437e06",
  "content": "",
  "created_at": 1691568245,
  "tags": [
    ["d", "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6"],
    ["name", "alex"],
    ["role", "user"],
    ["origin", "https://ditto.ngrok.app"],
    ["alt", "@alex@ditto.ngrok.app's account was updated by the admins of ditto.ngrok.app"]
  ],
  "sig": "fc12db77b1c8f8aa86c73b617f0cd4af1e6ba244239eaf3164a292de6d39363f32d6b817ffff796ace7a103d75e1d8e6a0fb7f618819b32d81a953b4a75d7507"
}

NIP-78

NIP-78 defines events of kind 30078 with a globally unique d tag. These events are queried by the d tag, which allows Ditto to store custom data on relays. Ditto uses reverse DNS names like pub.ditto.<thing> for d tags.

The sections below describe the content field. Some are encrypted and some are not, depending on whether the data should be public. Also, some events are user events, and some are admin events.

pub.ditto.blocks

An encrypted array of blocked pubkeys, JSON stringified in content and encrypted with nip04.encrypt.

pub.ditto.frontendConfig

JSON data for Pleroma frontends served on /api/pleroma/frontend_configurations. Each key contains arbitrary data used by a different frontend.