The Politics of a Protocol

Nostr is a commons. Don't let it become a tragedy.

hodlbod

29. Juni 2026June 29, 2026 · 15 Min. Lesezeit15 min read

31

This week, Alex Gleason announced the release of NostrHub 2.0, a nostr-native place for nostr protocol documents (affectionately referred to as “NIP”s). This is a significant step forward in aligning the process of protocol development with the radically decentralized and relativistic ethos of the nostr development community.

I thought I’d take this opportunity to try to articulate what I have considered the key weakness and dysfunction of nostr for several years now: an unwillingness to be political. This deficiency in the nostr community affects everything: from interoperability and coordination of work, to funding and marketing. But in this post I will be focusing mostly on governance of the protocol itself.

The Necessity of Politics#

I have to begin by defining my use of the term “politics”. This term has a connotation of endless parliamentary debates, arbitrary statute, and the grinding, corrupt, mindless mechanics of the State. But the word itself comes from “polis”, which is Greek for “city”.

This, not the nation-state, is what Aristotle had in mind when he wrote that "the city is best governed which has the greatest opportunity of obtaining happiness" (Politics, VII.13). Aristotle goes on to say that "happiness is the realization and perfect exercise of virtue", and that "virtue and goodness in the state are not a matter of chance but a result of knowledge and purpose."

In other words, people get together for a purpose, and it requires deliberate effort and virtue to accomplish that purpose, whether in the context of a family, neighborhood, community, chat group, social network, activist movement, business, or protocol standardization process.

“Government” does not imply democracy, monarchy, or any other scheme in particular — but it does imply that some scheme for government is in play. Just as there is not such thing as a place without an architecture (even if that architecture is “everyone builds whatever he wants”), there is no such thing as a group of people without governance.

Politics is collective meta-action for the purpose of organizing purposeful collective action. Choosing some particular form of government (or, to connect my metaphors, a social architecture) allows a community to accomplish something its members would not be able to do on their own. This meta-action is performed in any group by definition, even if by accident or default. Politics is inescapable.

For and Against#

Let’s set aside the much more popular authoritarian vs anti-authoritarian debate for now, because it’s not really relevant. The ideal end state for self-governance on nostr is not to have a benevolent dictator, mega-corporation sponsors or working groups dictate what the protocol is or how it should be used, but to allow grassroots participation in the standardization process.

But that doesn’t mean we’re not allowed to build institutions.

There is an attitude prevalent on nostr that any kind of stewardship, funding, rule, content filtering, or social status directly contradicts the plebeian ethos of the community and protocol.

At best, this type of thinking is unable to build anything influential or lasting because it relies entirely on good people contributing to the mission voluntarily in their free time without coordination. Ironically, this is its own kind of elitism, because these people are only able to do so because they have the personal and material means to participate in such idealistic purism.

This mentality has a darker side though. Because it can’t stand any appearance of centralization, authority, or control, it is essentially corrosive to any institution it comes into contact with. It sees any kind of collective action, however aligned or small-scale as a threat. This happens when revolutionaries who are dissatisfied by the status quo don’t have a long-term vision for what they want to build instead — all they can do is identify targets to destroy. Ironically, this results inevitably in nepotism and consolidation of power if the movement succeeds.

This approach to self-government is essentially Marxist (whether the revolutionaries know it or not). It is an application of the Hegelian conception of history to material conditions, and seeks for ideological purity in material terms. But Marxism isn’t limited to establishmentarian solutions like Communism; later Marxist thought makes it clear that the obligation of every human being (a sort of psychological proletariat) is to subvert “the superstructure” in order for “justice” and “authenticity” to emerge.

The problem is, the superstructure (which includes pretty much anything that would be recognizable as an institution) is what keeps the wheels from flying off. An engineer has to practice discipline, learn his art, understand his materials, and plan for success. Success does not happen automatically. In order to accomplish anything worthwhile at all, deliberate, structured work has to be done.

Organization is not authoritarianism.

Cooperative Institutions#

In Elinor Ostrom’s Governing the Commons she describes “common pool resources” and the ways in which they are governed. Without institutions in place to restrain the destructive actions of self-interested individuals, common pool resources suffer a “tragedy of the commons” which ultimately degrades or destroys the shared resource. The classic example is that of shared fishing areas — if over-fished by a single party, the yield ultimately drops for the entire community that depends on the resource.

Ostrom explains the ways in which solutions to common pool resource problems that depend entirely on resource privatization or state intervention fail to address the problem, advocating instead for localized cooperative institutions that are established and maintained by the community itself to safeguard the common pool resource.

Inevitably, these small-scale institutions establish codes of conduct and standards for how to access the common pool resource, or contribute to its governance. This is, in a certain sense, a type of “gatekeeping.” But unlike a form of gatekeeping in which rent-seekers exploit a common pool resource for personal profit, a healthy institution will maximize the benefit for all participants while also protecting the resource itself. In Ostrom’s words:

At the most general level, the problem facing CPR appropriators is one of organizing: how to change the situation from one in which appropriators act independently to one in which they adopt coordinated strategies to obtain higher join benefits or reduce their join harm.

In order to accomplish commons governance, a number of political techniques may be employed: voting, fees, laws, ostracism, shame, testimony, authority, status, and expertise to name a few. Not all of these techniques have to be employed, but some of them must be.

Nostr as a Commons#

Nostr is several different things: it is a community, infrastructure, and a protocol. Each of these things requires its own form of governance. The first two facets are actually pretty easily solved, because nostr is itself a solution to the problem of governing a social network by privatizing the infrastructure to support a multitude of different content moderation policies expressed through relay and client implementations.

Governance of a protocol is more difficult because in order for it to exist, it must be singular. In other words, it requires consistency. In the past I’ve argued that nostr when viewed as a database is AP — it’s available and partition tolerant, but it is not consistent. In political terms, nostr itself cannot facilitate consensus. This is why nostr can’t solve problems like transfer of digital property — you need a blockchain to solve the double-spend problem.

A protocol needs consistency by definition — a protocol is essentially a definition of terms. In order for a language to function, there has to be agreement on what words mean. My client cannot validate events if the author signed them using a ed25519 key instead of a sec256k1 key. Likewise, we have to agree on how encryption works, what schema a kind supports, what the semantics of a given kind are, how to hash events, and what relays to send a particular event to in order for anything to work. Divergence undermines interoperability.

So what would a “tragedy” of this commons look like? Commons are ruined when the incentives of individuals don’t align with the incentives of the community. The value proposition for developers is access to network effect through interoperability, which means the incentive of the community as a whole is to maximize compatibility. The lack of or instability of a canonical specification undermines this value proposition.

Meanwhile, individual developers have two perverse incentives: to support their own feature set without compromise (leading to divergent specs), and to offload the work required to maintain interoperability to other participants in the community.

The goal, therefore, of an institution built to safeguard the protocol for the good of the entire community should do two things:

  1. Facilitate the discovery and repair of interoperability gaps against a canonical specification (nostrability has done some good work here).
  2. Facilitate the maintenance of a canonical spec by lowering the cost to individuals to participate in the process (the NIPs repos maintains a spec, but it’s neither comprehensive nor cheap to contribute to).

Divergence will necessarily exist in a decentralized permissionless network. Non-conforming implementations will compete for network effect, and convergence might not happen for some time. But this isn’t an argument against having a single spec — it’s proof that we need one.

Consensus is a political process. Contention over a single event kind cannot be resolved without a meta layer of communication about the protocol. Solipsistic “specs” published to a project’s repository or as a nostr event are anti-specs. They completely punt on the (very difficult) problem of building consensus, leaving implementation divergence in perpetuity.

What We Have#

This problem has a simple solution: publish a canonical spec. This is the solution we have today. By combining the techniques of expertise (how involved has a person been with nostr and for how long), status (how popular is this person or his implementation), rules (a NIP has to have at least 2 implementations), access controls (only certain people can merge a NIP), protocols (open a PR in order to get a NIP merged), rhetoric and logic (argue ad nauseam with the maintainers), and others, we have been able to compile a 78,636 word canonical specification that implementers can use as a reference for well-established protocol features.

This is a real accomplishment. This is a functioning, local, community-led institution. Although it has taken the “privatization of public property” route that Ostrom rejects, it is far better than nothing. And the charges of nepotism and gatekeeping are overblown — in practice, it’s like any other open source project. Anyone can contribute if they follow the social norms established by the community. It’s not perfect, but it does work.

Maintaining an institution is tedious, thankless work. In exchange for making consensus possible, the maintainers have to read reams of human and AI-generated slop, make difficult judgment calls, and get called names by the people using the protocol they help maintain. I personally got so sick of it that a few months ago I asked to have my merge access removed so I could focus on building my own project. But that just leaves more work for the remaining maintainers to do.

If you’ve ever been irritated at the governance of the NIPs repo, let me just appeal to you to remember Hanlon’s razor. The maintainers of the NIPs repository frequently do a sub-optimal job. But they are not power-tripping as some would suggest; they’re just getting in and out quickly because maintaining the repo is a pain in the ass.

Today, if you want your spec to be adopted by other people (increasing the influence your implementation has on the network), the best place to put it is in the NIPs repository. This is where most people look first, and is what shows up most readily in search engine results. Publishing anywhere else degrades the fidelity of the spec, and sabotages your own effort to publicize your work.

I can identify two reasons why people might choose not to participate in the NIPs process. One is the muddled and dogmatic anti-institutionalism I mentioned above. The other is simply a reasonable aversion to the political process. Depending on who you are, you might be intimidated by process, bored by the endless arguments, or resent maintainers for not merging your spec. In any case, I think this just boils down to laziness. You want your ideas to be acknowledged, but you’re unwilling to do the crappy work of getting other people on board. You don’t want to open a PR because you hate the maintainers, or you’re afraid of it getting rejected, or you don’t want to bother defending your position. If that’s the case, you’re a freeloader, not an anarchist.

The reason the NIPs repository currently has 443 open pull requests is twofold: the maintainers don’t want to waste their time going through old PRs and closing them or nudging people. Some things just aren’t worth fixing. The other is that the authors have abandoned them (or at least don’t advocate for them), or have otherwise failed to get community buy-in. I personally have 20 open PRs. This isn’t because the maintainers are “gatekeeping”, it’s because my implementations are the only ones that exist so far, and I haven’t been able or willing to convince other people to adopt them. It’s my fault. I take responsibility. It doesn’t bother me that no one else cares about my ideas. Maybe they’re not good, or Flotilla isn’t popular enough.

I know you won’t, but take my word for it: the NIPs process is open to anyone. Some NIPs get merged faster than others, and yes, maintainers are sometimes assholes. Resort to back channels. Canvas support for your idea. Open PRs to other people’s projects. Post updates. It’s not that hard, but I don’t see very many people doing the work.

Where We’re Going#

I want to return now to Gleason’s NostrHub project. Zero people, maintainers or otherwise, would claim that the NIPs repo is the ideal way to govern the protocol. But the people who are loudest about it have done nothing to propose something better. Instead, they spend their time on character assassinations and projects no one uses. It reminds me of Dennis: “help, help, I’m being repressed!”

Alex, on the other hand, has stepped up and built something that moves the NIPs off of a Microsoft product and onto nostr itself. Instead of setting himself up in competition with the NIPs repository, he has imported the existing NIPs, and created a default list of nostr “experts” which respects the 3+ years of contributions the NIPs repo maintainers have put in. This is politics at its best. He’s coalition building. He’s virtue signaling equally to all the different stakeholder groups. He’s solving the problem without burning down the institutions.

I have reservations about NostrHub. I think Alex’s vision of NIP forking is still too permissive of spec divergence, social proof features notwithstanding. And a new piece of software does not replace the inherently social process of building consensus. Arguably it makes it more complex, at least until the meta-consensus has materialized around NostrHub. Unless someone (or many someones) put in the work to synchronize not only specification documents but also conversations across the NIPs repo and NostrHub, merge NIP forks into the upstream, and curate “community NIPs”, this will only add more noise and confusion.

For that reason, I think it’s important to expedite this process. Here are some action items that I would like to see from Alex, as well as anyone else who is eager to dispense with the Nostr Priesthood:

Nostr is just as much a social experiment as a technical one. Pulling both levers at once increases the risk of failure in some critical area. Let’s incrementally improve our existing institutions instead of burning them down.

Written by

Comments31

Sebastix

This is a podcast worthy article / topic. Or a topic to be discussed in a livestream call. Thansk for writing his down, its a very important topic to keep in mind while nostr as a protocol is trying to mature (which will take years). Also I hope to see @elsat back, his work you mentioned is key in this context (but there are people with different opinions on this).
Open in a Nostr client

mccrmx

I do not think Nostr is a commons. Relays are run by private individuals and people who interact with them are doing so on the property of the relay owner. It is up to relay owners to protect their property if they feel it is being abused.
Open in a Nostr client

hodlbodAuthor

The protocol is a commons, not necessarily the infrastructure, although some if it could be. OpenSats funded FOSS arguably is.
Open in a Nostr client

mccrmx

The best thing by far about Nostr is that you can just do what you want without asking anybody's permission. "Governance" sounds like the opposite of that. If people just want to coordinate then all good, but if it starts to resemble anything like "compliance" then count me out. I, and many others like me, simply will not comply. We'll continue to use the free and open version of the protocol. The best way to evolve protocols is by building what you need and then documenting the patterns that emerge from wider adoption. If nobody adopts an idea it's probably because it was bad or you didn't market it well enough. "Governance" is simply a mechanism for forcing bad ideas on people. Maybe @fiatjaf was right and the NIPs repo needs to deleted lol.
Open in a Nostr client

hodlbodAuthor

I think you missed my point in my post that coordination _is_ governance. Some form of governance is a logical necessity in any pursuit of action, even if it's anarchic — the point is, a bias toward "no governance" has consequences, just like maximal governance does.
Open in a Nostr client

sister_sam

Coordination is NOT self-legalized initiation of force.
Open in a Nostr client

mccrmx

Governance is one type of coordination. That's semantics though, so let me accept your definition where coordination == governance. In that case, yes I agree coordination is necessary. The best demonstrated form of coordination for a system like Nostr is one where people build the things they think are needed, and others adopt them if they are good and explained clearly. A good use of NIPs is to explain things clearly so people can follow the same pattern that has worked well. This model carries painful tradeoffs for developers as you've experienced, but in the long run I think it's worth it for the properties of the system you end up with.
Open in a Nostr client

AU9913

I will admit the laziness of my own custom nips I've created because they are basically throw away projects I created for something in the moment. But the problem is in the laziness of the so called experts. If you're going to call someone an expert, and they're not going to use the process themselves, wtf is the point of having experts? Additionally the protocols built on top of nostr should have their own implementations of this as well. I think the the main push back on this project is the experts part. Because of the arbitrary "two clients must implement the nip" there are some nips that don't become canon. Maybe it is a disagreement on the word canon, or maybe we need another word, but if one client implements some nip and then it gets usage of a certain amount, why does another client need to implement it for it to be canonized? I think a better way to think about this is for each nip to have semantic versioning and remains at 0.x.x until a second client implements it. 1.0.0 and higher being reserved for those with multiple client implementations. This is such a small tweak with a lot of impact because it provides recognition to a dev that 1) you did the work to implement it 2) the community argued around the spec and decided it was solid 3) it's used. You could even layer on top of that that you stay at 0.0.x until some threshold of usage is reached (20 unique npubs with wot score of x use it and 1000 total events following the spec for example). This would provide moment for first movers who built something that is adopted to gain traction and would spur those coming after them to take a hard look at that spec before forking. For example, the kanbanstr stuff is useful and has been debated highly on the PR, but then Will goes and built his own spec because he hadnt even seen the kanbanstr one. As you said, that forking is wasteful.
Open in a Nostr client

hodlbodAuthor

Experts is probably the wrong word, I don't think any of the maintainers are particularly qualified to consult on protocol development (although they do hold valuable institutional knowledge regarding what design choices work). Stewards is a better word, and I agree, they need to follow the rules too. My point is not that the current system is perfect, but that it's a critical part of maintaining the protocol we should hesitate to demolish without a good substitute. The two clients rule makes sense because the purpose of a protocol is interoperability, and two is the threshold for that to exist. But you have a point, a proprietary NIP used by one popular implementation should get additional visivility so others can build to that standard. A kinds registry which can include drafts would also be something to include in a future meta protocol.
Open in a Nostr client

il_lost_

I think a clear evolution is a general nip-repo/nostrhub agreement and then continuing the spec elsewhere, marmot, gamma spec market, contextvm (there is no reference for this), blossoms, maybe nip-29 should also take this path...
Open in a Nostr client

hodlbodAuthor

Nip 29 should definitely be split out. I even bought a domain but haven't had time to do anything with it
Open in a Nostr client

liminal 🦠

Here's my take that has evolved and helped me make peace on the direction of nostr, funding, governance and community discourse. Nostr, by design is the worst commons. You're thrown into a pool of servers where there's no leader, no hierarchy, and no one can be kicked off. But that's the point. If it can work here, it can work even better with stronger restrictions. Alex's nostrhub is the perfect environment for everyone that cares to participate, and so they will. Anyone else can make make their own version, and that's the beauty of it. Yes, there will be divergence. And yes there will be institutions, because hierarchies will naturally form one way or another. The fundamental point is that there will never, or at least shouldn't be "The Institution" that governs nostr. This doesn't mean no structure, it means anyone can do whatever they want and freely associate on an infinite land where they can claim a small part of. It means that you work with your tribe and your prefered signal to formalize the mechanics you want to share. Whoever doesn't want to use your spec isn't in your tribe for that use case. A pluralist nostr degrades nothing when developers who care to work with each other do and those who don't, don't. You can just stop working with people who degrade your signal. Physical Commons deals with finite and degradable resources. Digital Knowledge Commons has infinite material, but attention and discourse are the finite resources and can be degraded. The Nostr acts as one end of the spectrum of signal control, while single relays stand on the opposite. If you're throwing your stuff into the most adversarial conditions, expect to be met with the most adversarial responses. If that's not what you want, there's no problem in finding a smaller circle of users and developers where you can build and discuss in peace.
Open in a Nostr client

hodlbodAuthor

I just don't think we can afford that flexibility when it comes to defining kinds though. What happens if I publish a nip that says 30023 supports latex? Does it or doesn't it? Unless the social graph partitions exactly along protocol partitions then the ambiguity will affect users.
Open in a Nostr client

liminal 🦠

It comes down to the who you're building for or with. 30023 using markdown is perfectly fine for global nostr, its accumulated mass through staying power. If it must be changed, you need to talk to those designing and using it. If your audience don't listen, something's going to give - you either push forward, adversarially, or you find your own kind for your smaller audience. And it is clearly for a smaller audience, because those already working with it need stronger reasoning for why the nip needs to be amended. Similar processes with kind1 bad actors. Figure out how to guard around it, and things stabilize over time. If it didn't, free relays wouldn't be a place to communicate on.
Open in a Nostr client

hodlbodAuthor

I'm all for adversarial feature development. It just seems a shame to waste all that effort on stuff that's not contentious.
Open in a Nostr client

liminal 🦠replying to hodlbod

It isn't really contentious. Because you can pull in specs from wherever you want, at your own agency. It's about cultivating the signal that is most helpful at all sides.
Open in a Nostr client

hodlbodAuthorreplying to liminal 🦠

Yeah, but how do you know where all the stuff is? Am I supposed to trawl through every repository tagged nostr (and many that aren't) on multiple forges? Is there an index? (oops, that would be centralized) Just because something is available doesn't mean everyone magically knows about it, especially new devs looking for specs to build against.
Open in a Nostr client

徒 𝖘𝖊𝖙𝖙𝖔 セットreplying to hodlbod

It's kinda how it worked in the 90s-early 00s, back when searching the web sucked and you had to talk to someone that new someone to find the stuff you barely knew you were looking for.
Open in a Nostr client

徒 𝖘𝖊𝖙𝖙𝖔 セットreplying to 徒 𝖘𝖊𝖙𝖙𝖔 セット

Of course, i like being served at the whim of an augmented and narrowed aproximation of my vague ideas framed by keywords, just like the next intrinsically lazy person. But i guess what i am expressing is my faith in human intention.
Open in a Nostr client

徒 𝖘𝖊𝖙𝖙𝖔 セットreplying to 徒 𝖘𝖊𝖙𝖙𝖔 セット

Oh and this is the part where i praise both of youz wonderful minds, @liminal 🦠 and @hodlbod ! Thanks for building and reflecting over the consequences. 💛
Open in a Nostr client

liminal 🦠replying to hodlbod

This is one of the reasons why I've been building knowledge bases for nostr. Any client can have a tab for its own navigable knowledge base - collections of events pointing to vocabulary, feature guides and formalized specifications signed and authored by the client and NIP authors.
Open in a Nostr client

liminal 🦠replying to liminal 🦠

But even in the case without it - exploration does a lot, that's the road a lot of us walked through. Devs that don't insulate themselves will be most visible.
Open in a Nostr client

Fanfaresreplying to liminal 🦠

I'm interested in learning more about the knowledge base thing
Open in a Nostr client

liminal 🦠replying to Fanfares

@Silberengel and i have been working on this for a while. Composable and nested lists of events. This is the most recent version where I include `T` tags to represent titles over `d` tags. Quoted article And I'm working on extending the nip19 uri into a nostrdown to navigate across events in a markup agnostic way. https://nostrhub.io/naddr1qvzq…dcam8ayp
Open in a Nostr client

Fanfaresreplying to liminal 🦠

Thanks! We are looking into supporting Alexandria book publication so we've been reading your stuff 🫡
Open in a Nostr client

liminal 🦠replying to Fanfares

This is exciting :wisp_salute:
Open in a Nostr client

Silberengelreplying to Fanfares

Wow, that would be so cool! 🌠 If you are publishing to a special relay or anything, make sure to @ us and give us the wss or http address, so that we can make sure people can find the publications using our search.
Open in a Nostr client

Fanfaresreplying to Silberengel

They will be published to wss://fanfares.nostr1.com but we're still in the early stages of research at the moment 🫡
Open in a Nostr client

liminal 🦠

It's not a stance on what should happen, but what does happen at the level of discourse and specs. Bad actors will flood, and specs will be used in unintended ways. We can and should engage in productive discourse. Llike including calling out and discouraging json in kind 1 content. But these are not things we can guarantee. Understanding the nature of the worst conditions is how we can find coherence under the better ones.
Open in a Nostr client

Geek

Very well written. I have some issues with the experts piece but the site itself is quite useful. Thank you for sharing your thoughts.
Open in a Nostr client

Globe99

Very interesting. On the politics part in particular, I'm reminded of this old bit from Vinay Gupta (3 minute YouTube):
"Politics" is what happens when you have multiple people in a room trying to decide on what to do.
Open in a Nostr client

Contents

6 sections

  1. The Necessity of Politics
  2. For and Against
  3. Cooperative Institutions
  4. Nostr as a Commons
  5. What We Have
  6. Where We’re Going