docs: change the way 30360 events will be handled

This commit is contained in:
Alex Gleason 2024-02-19 16:02:26 -06:00
parent be3f1104db
commit b62d52f156
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
1 changed files with 23 additions and 13 deletions

View File

@ -2,7 +2,29 @@
Instead of using database tables, the Ditto server publishes Nostr events that describe its state. It then reads these events using Nostr filters. Instead of using database tables, the Ditto server publishes Nostr events that describe its state. It then reads these events using Nostr filters.
## User Event (kind 30361) ## Ditto Registration Request (kind 3036)
Clients wishing to join a Ditto server should publish a kind `3036` event to the Ditto relay, mentioning the Ditto admin pubkey.
The event should have the following tags:
- `nip05` - desired NIP-05 username, including the domain (eg `alex@soapbox.pub`).
- `p` - pubkey of the Ditto admin.
Example:
```json
{
"kind": 3036,
"content": "I want to be a part of this community.",
"tags": [
["nip05", "alex@soapbox.pub"],
["p", "4cfc6ceb07bbe2f5e75f746f3e6f0eda53973e0374cd6bdbce7a930e10437e06"]
],
}
```
## Ditto User (kind 30361)
The Ditto server publishes kind `30361` events to represent users. These events are parameterized replaceable events of kind `30361` where the `d` tag is a pubkey. These events are published by Ditto's internal admin keypair. The Ditto server publishes kind `30361` events to represent users. These events are parameterized replaceable events of kind `30361` where the `d` tag is a pubkey. These events are published by Ditto's internal admin keypair.
@ -33,18 +55,6 @@ Example:
} }
``` ```
## Invite Request Event (kind 3036)
Clients wishing to join a Ditto server should publish a kind `3036` event to the Ditto relay, mentioning the admin pubkey.
The event's content is NIP-44 encrypted JSON, containing the following fields:
- `nip05` - desired NIP-05 username, including the domain.
- `email` - email address of the user.
- `reason` - reason for joining the server.
Only `nip05` is always required. Other fields may be required depending on the policy of the server.
## NIP-78 ## NIP-78
[NIP-78](https://github.com/nostr-protocol/nips/blob/master/78.md) 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. [NIP-78](https://github.com/nostr-protocol/nips/blob/master/78.md) 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.