How polity agreements work for everyday people (plus technical tools)
Most visitors are not software developers, so we start with ideas, not code. This page explains:
If you want a purely non-technical walkthrough first, open Polity: How It Works to see the visual narrative before returning to this page.
Download a protocol template, adapt it for your community, and publish it as machine-readable charter text. The protocol can then be signed and shared across the Fedinet.
{
"polity_id": "polity:river-phyle",
"name": "River Phyle Network",
"description": "Federation of river basin communities, worker coops and municipal partners.",
"version": "1.0.0",
"effective_date": "2026-03-23",
"principles": ["ecological stewardship", "mutual aid", "self-determination", "non-authoritarian federation"],
"member_groups": [
{ "name": "Water Commons", "type": "intentional_community", "slug": "water-commons" },
{ "name": "State Reform Network", "type": "jurisdictional_partner", "slug": "green-state" }
],
"federation_rules": {
"exit_notice_days": 90,
"dispute_path": "restorative-council",
"shared_resources": ["food"],
"cyber_security": "self-sovereign-key-ops"
}
}
Download JSON
Template can be downloaded and adapted as polity-protocol-template.json. Use the button above to switch to a friendly, non-technical text summary.
Generate keys, sign the protocol text, and verify signatures locally in your browser.
No key generated yet.
No signature yet.
No verification run yet.
The code below uses Web Crypto API (available in modern browsers and Neocities if HTTPS). This lets you verify without any backend key storage.
Yes, signature belongs to cryptography. A polity signing model should rely on public key identities and signed charter declarations.
Each group publishes a public key (or DID). To sign:
Verification is simply: hash the text again and verify the signature with signerβs public key. Provide tools transparently so everyone can independently audit.
Tip: In Fedinet, the document and signature are shared over a federated network, much like you follow another Mastodon account. This allows groups to discover and validate each other in a decentralized trust web.
Fedinet is short for "federated internet" and it is the infrastructure that lets independent polity nodes share statements and policy agreements without requiring a single central authority. Each polity publishes its own rules and chooses who to trust, while still being able to check and verify other members.
This works like email: you can send a signed message from your server, and recipients can verify the signature. In this same way, polity groups exchange signed charters and acceptance/withdrawal notices.
/**
* Simplified JavaScript pseudo-code using libsodium or TweetNaCl
*/
const sodium = require('libsodium-wrappers');
(async () => {
await sodium.ready;
const keypair = sodium.crypto_sign_keypair();
const protocol = JSON.stringify({ polity_id:'polity:river-phyle', version:'1.0.0' });
const message = sodium.from_string(protocol);
const signed = sodium.crypto_sign(message, keypair.privateKey);
const signature = signed.slice(0, sodium.crypto_sign_BYTES);
console.log('publicKey', sodium.to_base64(keypair.publicKey));
console.log('signature', sodium.to_base64(signature));
})();
In Fedinet app this becomes a UI step: import key, choose charter, sign, publish to federation endpoint (ActivityPub `Announce` or building a direct peer-to-peer exchange). The data is then distributed so anyone can verify the chain of pacts.