diff --git a/NIP.md b/NIP.md index 11937cc..5fd1943 100644 --- a/NIP.md +++ b/NIP.md @@ -1478,6 +1478,53 @@ The value of a badge is proportional to the reputation of the witness: } ``` +## Skater Profile (kind 35000) + +The **Skater Profile** is the app-native identity that makes a Nostr pubkey a +*discoverable SkateSpots skater*. It is an addressable event identified by +`pubkey + kind + d-tag` (the `d` tag is always `skater-profile`, so a user has +exactly one). + +**This is the anti-spam boundary for the `/skaters` directory.** A plain kind-0 +metadata profile is shared by the entire Nostr network (every social client, +every bot) and is therefore never sufficient to appear in the directory. Only +events carrying kind `35000` **and** the `["t", "skateskater"]` marker tag — +published from within the app, and queried exclusively from the SkateSpots +community relay — are listed. This complements relay-level write restrictions: +the relay keeps junk out at the source, the marker defines who is a skater. + +Unlike Lab provider profiles, a Skater Profile advertises no paid service — it +exists purely for community discovery. + +```json +{ + "kind": 35000, + "content": "", + "tags": [ + ["d", "skater-profile"], + ["title", ""], + ["t", "skateskater"], + ["t", "skateboarding"], + ["alt", "SkateSpots skater: "], + ["stance", "regular | goofy | switch | mongo"], + ["level", "grom | intermediate | advanced | ripper"], + ["t", "