What are your thoughts on defining NIP-36 categories and being able to tag your profile and messages as sensitive? Perhaps with an indexed tag we can query by? I'd love to make a niche NSFW only client but NIP-36 doesn't get us very far https://github.com/nostr-protocol/nips/issues/315
Discussion
A NIP about nips
#[0]
Wouldn't it make more sense to do this at the relay level? So for example when you install a Nostr client it doesn't have nsfw relays by default, so no one sees it unexpectedly and it doesn't violate App Store and Play Store policies, but add them manually and you can access nsfw content, mark a post nsfw and it's only sent to the nsfw relays.
This could be done with a new event type relays would ignore by default but admins can enable in the config.
A limitation today is clients not being easily able to tag a new event with a content-warning. Could be due to App Store approval concerns. I’d start understanding that first.
Personally I think in depth pre-defined tags are the wrong approach. Net nanny and FWs use them, and it’s often inaccurate (e.g. lots of false gambling flags) - it encourages opinionated blacklists. My only exception is what would normally be under NSFL - almost always watching death occur.
I see normal hashtags as being flexible enough if you want some descriptors for searching or knowing what to expect before you un-blur media content. Explicit websites seem to just list tags. And Nostr events can be tagged without hashtags in content.
We are missing an explicit key in the kind0/profile metadata today. A profile image or banned could be explicit - not just their events. I think that’s easy to add - just add content-warning to the kind0 json. An edge case is showing an event before a profile event first loaded - you could see an explicit profile icon, if the event is not tagged (if it is tagged, and profile isn’t known, it could just blur by default).
An obvious issue is also different language. Which to use in events, how to handle typos, and so on.
And as always, it’s best effort as we have no guarantee the publisher will tag or use some pre-defined list. Reporting can be abused for censorship. For open networks I advocate better client filtering tools - rather than protocol level rules.
If you want some explicit content network on Nostr - just submit a NIP with a new kind. And you can spec it however you want. It can be perfected for indexing porn content or whatever you like.
I think anything else pushed into kind 1 is overkill. Kind 1 is for short messages, not a media gallery.
** and to clarify.. “you” wasn’t used to refer to anyone specific.
Agree with this. Is a shame that NIP-69 is taken 😹
Last point as posted to GitHub too with a few extra points.
If you want explicit content - start an explicit only relay. The far majority of relays will be 99% general consumption.
However client apps lack private relay connection lists today. As apps to support them - and start a relay.
Thanks for bringing attention to the issue I started on GitHub. Given that some time has passed, what I posted there is more of a discussion starter than something I'm tied to. But something has to be done.
A few general observations…
1) Whatever is done needs to be culturally neutral. Just because you can see lingerie ads in Western cities, doesn't mean it's not an issue elsewhere in the world.
2) To date machine learning has done crap job with this issue. Given the advances in AI, that may change soon, but MANY of us in the porn & LGBT communities have had our accounts suspended (or worse) because some machine somewhere got it wrong.
3) #[2] is making me click to see your note (apparently you were able to tag it as sensitive). IMHO, that's exactly the wrong implementation. It marginalizes certain communities. Which is why I started with the idea that everyone say what they're OK with and go from there. (App stores may have a certain baseline for their apps - that's OK).
And just tagging #[3] since I believe he's interested in this topic.
Yes yes very importante. I dont want other platform kick me out.
one of the beautiful things about nostr is that nobody can kick you out 🔗💥
Yes on the protocol noster not but on the client iris or damus they could block me right?
A client could ban a pubkey from using their client but then you could just use a different client or copy your account to a new pubkey. Clients can’t change or remove your data, it’s all backed up across multiple relays which are owned by different people. So all relays would have to collude to remove you (has never happened and probably never will), even then you could just run your own relay.
So you are telling me I can go crazy here on iris? Jajajaja
It’d be nice if you could flag your posts for the public. So you could flag your art as NSFW/adult vs. Other thoughts you have on policies and censorship.
On the flip-side others can mute some of your content based on their own preferences. And toggle if they wish to see all the content.
That’s what I love about Nostr. So many possibilities for each individual’s freedom.
Not fully sure what exists across supported NIPs and client functionality, so excuse my ignorance.
Mute option - opposed to just Block from the client side
Perhaps toggles from clients to activate/deactivate blocks/mutes based on relay order or individual selection.
Local accept/deny lists for mutes & blocks in addition to relay rules?
Probably major issues with that approach, but it reminded me of how firewall rules are processed in order. Maybe too complex from a UX standpoint as well.
