Granny Bot

A global experiment in self-governance, on Nostr

A constitution instead of an owner.

Nostr gave everyone a voice that no platform can take away. Granny Bot is research into the other half: trust and governance, built from the same signed events. Communities write their own law, members judge their own disputes, and an agent carries out only what they decide.

It is designed as an open experiment that any community, anywhere, could join. If it works, communities everywhere have a reason to come to Nostr.

The research corpus is password-protected while it is under review.

  • Signed NIP-01 events
  • Sits above NIP-29 groups
  • Kinds 9900–9910, 39100–39101
  • Every release timestamped on Bitcoin

01 · The problem

Nostr took the owner out of the network. Groups still have one.

Under NIP-29, groups are run by admins whose roles carry special powers, and the relay decides which roles may do what. In a dispute, a member can accept the key-holder's decision or leave.

That is the platform problem again, on a smaller scale: an authority just as unaccountable and more fragile. When the person holding the keys loses interest, the community often goes with them.

One light holds every thread.

02 · The idea

Law without a sovereign.

World society has no address, no legislator and no demos to appeal to. Yet rules are made, followed and enforced across the planet every day. Legal theory has been explaining how for a century.

The textbook answer is the state. The 1933 Montevideo Convention asks for four things, and Max Weber added a fifth: the monopoly of legitimate force within a territory. Set a Nostr community against the list.

A permanent population
Members, each with a key
A defined territory
None, ever
A government
One it writes for itself
Relations with others
Forks, and recognition between communities
A monopoly of force
None, by design

If law needed a state, such a community could have owners but never law.

Medieval merchants trading at the great fairs settled their disputes in courts held at the fair itself, by merchants' own customs, quickly enough for traders who would soon move on. At the Champagne fairs, Milgrom, North and Weingast (1990) argue, judges who kept a record of who had cheated let strangers trade on trust, with exclusion as the sanction and no state behind it.

Gunther Teubner calls the modern lex mercatoria "the most successful example of global law without a state". Its working court is arbitration: panels chosen partly by the parties, whose awards courts in 172 states enforce under the 1958 New York Convention. A Granny Bot panel has the same shape. Part of it is chosen by the accused, and part is drawn.

Historians dispute how uniform the medieval law merchant ever was (Kadens, 2012). The mechanism is the part that matters here: a public record of conduct, kept by people the parties trust. Nostr makes that record a stream of signed events that anyone can check.

In 1913 Eugen Ehrlich, teaching in Czernowitz at the edge of the Austrian empire, saw that the people of Bukovina lived by the rules of their own families, trades and villages more than by the official code. He called it living law, and his book on it is often read as the founding text of the sociology of law.

Teubner's "Global Bukowina" (1997) carried the idea to world society: a new living law, growing out of networks that no state organises. International custom works the same way, binding states as "a general practice accepted as law", with no legislature at all.

An online community is a Bukovina without the empire. Its living law already exists, in norms nobody wrote down. Granny Bot asks the community to write it down, sign it and run it.

H. L. A. Hart's The Concept of Law (1961) asks what turns a set of rules into a legal system. His answer is three secondary rules: one that says which rules count, one for changing them, and one for deciding when they have been broken. On Nostr, each one is an event kind.

Recognition
39100 The constitution, its version chain and its lineage. A new version counts only if an amendment trail stands behind it.
Change
9907 Amendment proposals, carried by ballots at thresholds the constitution sets for itself.
Adjudication
9900–9904 Filing, panel draw, deliberation, ballots and a verdict anyone can recompute.

Elinor Ostrom found that commons which endure, some of them for centuries, share a handful of design principles. Several are written directly into the Village, the project's pilot constitution.

Collective choice
Members amend their own constitution.
Monitoring
Every step of a case is a public, signed event.
Graduated sanctions
Six steps, from a private notice to removal.
Cheap conflict resolution
Panels of seven, and a summary track for admitted matters.
Recognition by others
The open question, and the third phase of the plan.

None of these orders rests on a sovereign. They hold because the parties accept the procedure, others can check the record, and other legal orders recognise the outcome. Nostr can supply the first two directly. Whether a community without territory can earn the third is the question at the heart of this experiment.

Nostr made speech a protocol instead of a platform. Granny Bot asks whether law can be one too.

03 · The constitution · kind 39100

Two layers. Members read one, the agent runs the other.

Every clause carries the prose members ratify and, if it can be enforced, the rule the agent executes. A clause with no rule cannot be enforced at all, so the limit of the agent's power is written inside the document members vote on.

The Village · d: the-village

No sanction without a verdict

No member's voting rights may be suspended, and no member's content may be permanently removed, except by a verdict following a complete case. Every other sanction also requires such a verdict, except a c9 emergency concealment of a specific item pending review. This clause binds Granny Bot as it binds any member.

{
  "trigger": { "event": "sanction_enactment_requested" },
  "guard": {
    "require": "matching_valid_verdict_event_or_active_c9_hide"
  },
  "on_guard_fail": { "action": "reject_enactment" }
}

No silent exile

No member shall be barred from speaking in this community's public spaces except as a sanction enacted following a verdict, or during a c9 emergency concealment of a specific item pending review. Exclusion by informal means is not a sanction this constitution recognises.

{
  "trigger": { "event": "speech_restriction_requested" },
  "guard": {
    "require": "matching_valid_verdict_or_active_c9_hide"
  },
  "on_guard_fail": { "action": "reject_restriction" }
}

Emergency hide

Content may be concealed without waiting for a panel only where it is unlawful to host, constitutes active doxxing, or coordinates an ongoing raid, and only once three members in good standing have flagged it. Granny Bot opens a review case the moment she conceals the item, and the item is restored automatically unless a panel upholds the concealment within seventy-two hours.

{
  "trigger": {
    "event": "emergency_flag",
    "flag_count_min": 3,
    "flagger_role": "member_in_good_standing"
  },
  "action": "hide_content",
  "review": {
    "opened_by": "agent_at_concealment",
    "within_hours": 72,
    "if_not_upheld": "restore"
  }
}

Hiding deletes nothing. A hidden item goes on a public concealment list (kind 39101) that clients honour, and restoring it means taking it off the list. A tool checks that the two layers agree, because a rule that changes while its prose stays the same is the most dangerous edit the system allows.

“The member most likely to require this constitution's protection is the one raising an objection the community would rather not hear.” The Village, preamble

04 · Run a case

Nobody is sanctioned unless their own side agrees.

A routine panel has seven seats. The accused names three and four are drawn at random. A violation needs a majority of the seven and the assent of at least two of the three the accused named. Those three do not need to be impartial. They need to tell a made-up complaint from a real one.

Accuse

Or click a light in the field: orange for a dissenter, blue for a member of the majority.

Panel

Named by the accusedDrawn at random× convict · ○ acquit

No case yet. Choose who stands accused.

Event logsimulated · unsigned · shapes from spec §5
  1. Events appear here as the case runs. Open any row to read the event.

The draw is seeded so that anyone can re-run it and check the panel. The plan is to seed it from a Bitcoin block hash fixed before the case is filed, so that nobody, the filer included, can steer who sits. Votes here come from the project's simulation model, not from people.

All twelve event kinds
KindEventSigned by
39100ConstitutionGranny Bot, after a passing amendment vote
39101Concealment listGranny Bot, from an enactment or a lapsed review
9900Case filingAny member
9901Panel drawGranny Bot, deterministically and reproducibly
9902Deliberation statementA panellist
9903BallotA panellist
9904VerdictGranny Bot, as a mechanical tally of the ballots
9905AppealThe sanctioned member
9906Sanction enactmentGranny Bot, carrying out a verdict
9907Amendment proposalAny member with standing
9908Fork declarationThe forking group
9909Vouch recordThe vouching member

Highlighted rows are the only events the agent signs. Every judgement is signed by a person. The range sits clear of NIP-29's reserved blocks.

05 · What the simulations found

Majority rule convicts the dissenter.

Picture 105 people: 95 broadly agree and 10 do not. One of the ten is accused of something they did not do, on a charge written along the community's dividing line. A jury drawn at random and deciding by majority convicts, through a fair process and a sincere vote. The nomination rule changes that.

Innocent dissenter convicted Real violation missed
Seven at random, majority decides 997 0
Accused names three, two must agree 4 8
Names three, but knows nobody 969 3
Per 1,000 cases, as the project's committed code prints them (panel_selection.py, experiments 1 and 2).
§

Simulated, not measured. These figures come from a model, at one setting of it, and your browser recomputes them from the same model. They rest on assumptions nobody has yet tested with people, above all that an ally can tell a made-up complaint from a real one. Where the accused knows nobody to name, the protection is gone. That is the design's most serious known weakness, and it is shown here on purpose. Testing the assumption with people is part of the plan below.

06 · Founders

Founders' power runs out, on a clock in the founding text.

The Village has five founders and a hundred members. In amendment votes a founder's ballot starts at four times the weight of anyone else's and falls to parity after a year. Panel ballots always count once.

Founder vote weight4×amendment votes only
Founders' share16.7%of an amendment vote if every member votes

The clock runs in time, not in members admitted, so a founder cannot outlast it by vouching for accounts they control. It is keyed to the lineage, so forking does not reset it. Turnout matters more than the multiplier: at five per cent turnout, founders at four times weight would hold 81% of an amendment vote (research paper 07), which is why the Village also requires at least 35 ballots, capping that share at 40%.

07 · Exit · kind 9908

Any group can fork, and take its law with it.

A faction that disagrees can leave with the constitution, the case record and the precedents. Its new constitution points back to the old one, and a fork declaration lists every clause that changed and in which layer. A tool checks the declaration against both documents and reports which precedents still apply.

08 · The neighbourhood

It fits the Nostr being built around it.

Granny Bot adds law, not another app. Projects from the And Other Stuff collective already cover much of what a self-governing community needs. This is where each would sit in the system.

  • DittoCommunity servers with their own relay. A natural place for a community's agent to run.
  • ArmadaDiscord-style communities over NIP-29 groups and Concord: the groups a constitution is written for.
  • +chorusGroups with a built-in ecash wallet, made for organisers. A community like this is what Granny Bot would govern.
  • White NoisePrivate, encrypted group chat. Panels need a place to deliberate out of public view.
  • CashuEcash. A filing bond or an appeal deposit could be held and returned by verdict.
  • AgoraFunding for movements under pressure, whose members most need protection for dissent.
  • DivineA creator platform with house rules, the kind a constitution makes the members' own.
  • ShakespeareBuilds Nostr apps from a description: ballots, case views and constitution editors among them.

Named to show where Granny Bot would fit. No partnership or endorsement is claimed, and each logo belongs to its project.

09 · Progress

What exists today.

  • 112,000words of research

    A white paper, a thesis, a protocol specification, two adversarial reviews and two pilot constitutions.

  • 37releases, each timestamped on Bitcoin

    Every version's manifest carries an OpenTimestamps proof, so a later rewrite of the record would show.

  • 224tests for the verdict engine

    The specification's tally as a pure function: ballots in, verdict out.

  • 106tests for the genealogy tool

    It audits a constitution, compares forks and reports which precedents survive.

  • 1published NIP

    Constitutional lineage for NIP-29 groups, on NostrHub.

  • 1working Nostr client

    Bubble Hub, served from Nostr itself as an nsite.

Not built yet: the agent itself. No community runs on Granny Bot today.

10 · Roadmap

From one community to law between communities.

Each phase starts only if the one before passes its gate. The long aim is communities that recognise each other's verdicts, as states recognise arbitral awards: a working order of law between communities, with Nostr as the common ground.

  1. Phase 1 · month 2

    Foundations

    • Panel draws from a Bitcoin block hash
    • Constitutions and their forks live on relays
    • A working paper on law without a sovereign
    • Safety design for communities under pressure
  2. Gate 1

    The code runs on live relays, and the legal analysis finds no blocking conflict.

  3. Phase 2 · months 3 to 6

    A first community

    • Outside review
    • A community that did not write the design adopts a constitution
    • An experiment tests whether allies judge on evidence
    • A first agent on a NIP-29 relay
  4. Gate 2

    That community governs itself with it, and the experiment does not reject the nomination rule.

  5. Phase 3 · month 7 onward

    Law between communities

    • Communities recognise each other's verdicts
    • Shared rules for members of several communities
    • Each piece proposed as an open Nostr standard

11 · Who we are

Solidarity Works! International

Granny Bot is a project of Solidarity Works! International in Berlin, which works on global solidarity, human rights and the rule of law.

Lead

Nabil Izagaren

Governance design, simulations, the protocol specification and its tools.

Law

Dr Reik Kirchhof

Lawyer and sociology of law scholar. His Grundlegung einer Soziologie der Scharia (Springer VS, 2019) develops a theory of normative order and law beyond the state and its territory.

12 · Get involved

The experiment needs people.

  • A community willing to be first Ready to measure its participation before adopting anything, and to decline if the numbers do not support it.
  • Nostr developers To take the specification from proposal to running code on relays.
  • Researchers For the experiment on whether allies can tell a made-up complaint from a real one.
  • Lawyers For the conflict with the EU right to erasure, and for liability across jurisdictions.
Nostrnpub180psnwj48pe7wv4275t5c87m9uehxzkdvu0v7uazecsp0lhw7jysz0xufc