We should make Nostr the best place to rally around causes.
Badges (NIP-58) never found PMF for political/technical signaling. Emoji flags in display names are cute but shallow. We can do much better with primitives that already exist.
1. NIP-32 labels as the machine-readable stance
kind 1985 with ["L","causes"] ["l","bip110/oppose","causes"]
→ queryable, aggregatable, namespaced
2. NIP-23 article as the "why"
Long-form reasoning the label points to via "a" tag
→ substance, not just vibes
3. Zaps as weight
Sats-backed support filters noise and raises signal quality
4. Web-of-trust as the lens
"How does MY network feel about X?" — computable client-side
→ sybil-resistant by default, no global moderation needed
What's missing is UI, not protocol. Imagine a "Causes" tab:
- Trending topics by WoT activity
- Tally of support/oppose, weighted by zaps + trust distance
- One tap to publish your stance + reasoning
- See which npubs you trust stand where
Optional: a replaceable kind (e.g. 30178) with d-tag = topic, for "current stance" semantics. One canonical position per user per topic, updatable over time.
Badges (NIP-58) never found PMF for political/technical signaling. Emoji flags in display names are cute but shallow. We can do much better with primitives that already exist.
1. NIP-32 labels as the machine-readable stance
kind 1985 with ["L","causes"] ["l","bip110/oppose","causes"]
→ queryable, aggregatable, namespaced
2. NIP-23 article as the "why"
Long-form reasoning the label points to via "a" tag
→ substance, not just vibes
3. Zaps as weight
Sats-backed support filters noise and raises signal quality
4. Web-of-trust as the lens
"How does MY network feel about X?" — computable client-side
→ sybil-resistant by default, no global moderation needed
What's missing is UI, not protocol. Imagine a "Causes" tab:
- Trending topics by WoT activity
- Tally of support/oppose, weighted by zaps + trust distance
- One tap to publish your stance + reasoning
- See which npubs you trust stand where
Optional: a replaceable kind (e.g. 30178) with d-tag = topic, for "current stance" semantics. One canonical position per user per topic, updatable over time.
8❤️1🧠1