clone

nostr relays on demand at <name>.bind.ws: claim one with your key, pay in zaps past the free allowance

docs, landing: the relay card

Dami committed 9729b29
commit
9729b29b212565c217da6ea98ee470816a7ae1f4
parent
7ca5a98fbaf92827fd1000638fbb06580a80ed89
author
Dami <dami.etoile@gmail.com>
3 files changed, +7 -0
Mdocs/00-getting-started.md4++++
Mdocs/10-architecture.md2++
Msrc/landing.ts1+
M docs/00-getting-started.md +4 -0
M docs/10-architecture.md +2 -0
@@ -67,6 +67,8 @@ On claim, the object generates a keypair, advertised as `self` in NIP-11. Everyt
6767 6868 NIP-43's own join and leave requests (28934 with a `claim` tag, 28936) are handled next to their NIP-29 counterparts; they are ephemeral, so the answer is the OK message and nothing is stored.6969 70+The card (`card.ts`) is the public face of a name: `/card.json` with name, owner, member count when the directory is public, rules, fuel state and the group naddr, `/card.nostr` as the same facts in a kind 30078 signed by the relay key, `/card.svg` as an open graph sized picture, and `/qr.svg` for the console. The naddr comes from nostr-tools' nip19; the QR encoder is `qr.ts`, byte mode at level M up to version 20, with a test that reads symbols back and checks the Reed-Solomon syndromes.71+7072 ## Groups and roles7173 7274 Every relay is one NIP-29 group (`src/groups.ts`). The group id is the relay's name. An event with an `h` tag for any other id is refused; events without one are ordinary relay events. The group's flags are derived from the rules: `private` is reads set to members, `restricted` and `closed` are writes not open. The identity signs the group's state as addressable events, kind 39000 metadata, 39001 admins, 39002 members (only while the directory is public), 39003 roles, on the same strictly increasing clock as the roster, and republishes them on every membership, role or rule change. Membership changes also produce relay-signed 9000 put-user and 9001 remove-user records next to the NIP-43 deltas. All of these are protected kinds.
M src/landing.ts +1 -0