NOSTR MAGAZINE

Nostr's Biggest Client Is Acting Like the Thing Nostr Was Built to Escape

The accusation has been circulating in Oddbean threads and relay operator channels for days, and it’s not subtle: Primal is collecting data in ways that look indistinguishable from the platforms Nostr was supposed to replace. The phrasing in one widely shared thread is blunt. “I just don’t understand this drama about privacy issues Primal is collecting your data. No different from Twitter or Instagram, it’s just that they are advertising it as if they don’t collect any”.

That’s the kind of sentence that should make anyone who has spent years defending Nostr’s sovereignty story pause. Primal is not a fringe client. It’s one of the most visible entry points into the protocol, the app many new users download first. If the front door has a turnstile that counts every visitor, the whole architecture’s promise of “you choose your relays, you control your data” starts to look like a marketing slide.


The Web of Trust Problem Nobody Wants to Name

The Primal fight is colliding with a separate, older controversy that has never really gone away: Web of Trust as a filtering mechanism. WoT is supposed to be Nostr’s native answer to spam and noise. Instead of a central algorithm, you rely on the social graph you already trust. In theory, it’s elegant.

In practice, critics are describing it in language that sounds like a social credit system. A former Nostr user who now runs a self-hosted Pleroma instance warned that WoT was “weaponized” by prominent figures including Vitor Pamplona, and that Nostr already has “a social credit system already in place”. Another note put it more directly: “Many central figures in the Nostr social graph have a political bias that ends up marking dissidents for censorship”.

I think this is the most consequential fight in Nostr right now, more than any NIP merge. A protocol that markets itself on censorship resistance cannot quietly build a moderation layer that downranks the people the popular kids don’t like, and then call it “trust.” If the graph decides who gets seen, the graph is the algorithm. The only difference is that nobody voted for it.

In my experience covering protocol governance, this is the classic decentralization bait-and-switch. The architecture stays open on paper, but the practical experience of using the network gets shaped by a small set of well-connected developers and the social graphs they cultivate. Primal’s data practices and WoT’s filtering behavior are two sides of the same coin: the quiet centralization of the user experience while the protocol’s defenders point at the spec sheet and insist nothing has changed.


Where the Argument Actually Lands

The fair version of the defense is worth stating plainly. WoT is user-configurable, not a protocol mandate, and clients like Amethyst and Coracle give people real control over which trust graphs they follow. Primal has publicly denied tracking before, and its team has argued that its caching model exists to make Nostr usable at scale, which is a legitimate engineering problem on a network where relay latency is brutal for newcomers. A client that doesn’t cache anything is a client that feels broken.

But the defense keeps running into the same wall. The problem is not that caching exists. The problem is that the people using the app can’t see the difference between a cache, a funnel, and a filter, and the clients have done very little to make that distinction legible. When a user cannot tell whether they’re seeing a note because they follow the author or because the client decided the author is trustworthy, the architecture has already failed the sovereignty test regardless of what the spec says.

The scrutiny itself is the useful part. If Primal answers the audit questions in public and ships controls that let users inspect what leaves their device, the controversy becomes a net positive. If the answer is another denial and a roadmap slide, the pattern will repeat with the next client that gets popular enough to matter. In my experience, protocols that survive these fights come out with clearer norms, not weaker ones, but only when the developers treat the criticism as a design input instead of an attack.


Summary

Nostr’s biggest client is being accused of acting like the platforms it was built to replace, and the fight is colliding with a broader argument about whether Web of Trust is a spam solution or a quiet moderation layer with no accountability. Primal has denied tracking in the past, but the current threads are asking harder questions about what “no tracking” actually means when a client controls the discovery layer. The defenders have a real point about usability at scale, and the critics have a real point about transparency. Both can be true, and that’s exactly why the answer cannot be a marketing claim. I think the outcome of this fight will tell us more about Nostr’s future than any NIP merge ever could. A protocol that cannot answer the question “who decides what gets seen?” without pointing at a social graph and shrugging is not a sovereignty project. It’s a popularity contest with better cryptography.

Comments