A free peer-to-peer internet owned by its users, not by a company.
Mininet is building a network where people own their identity, data, money, voice, and infrastructure. Money can buy storage, reach, and the funding of work — but never political power. Governance is one verified human, one equal vote. There is no owner, no foundation, no admin key, no forced-update path, no off switch, no law-enforcement backdoor, and no party that can unmask a user.
This GitHub repository is only a temporary public mirror. The long-term code forge is content-addressed, self-governed, reproducibly built, and owned by the network itself — GitHub is where the work is shown while it is built, never where it ultimately lives (see
docs/ADDRESSING.mdandmini-forge).
New here? Read the whitepaper — the single-document explanation of what Mininet is, why it exists, how it works today, and what is still an open question, written for a reader who has never opened this repository (D-0323).
These are not promises of good behavior — they are structural, enforced in
code, and frozen. A full, code-mapped register is in
docs/INVARIANTS.md; the short version:
- Money never buys a vote. No balance maps to governance or validator
weight, in either direction — a wall enforced by the dependency graph
itself, not by policy (
docs/design/bounty-and-review.md). - One verified human, one equal vote. Early arrival, wealth, and hardware
buy nothing extra. (Today the system counts verified identity roots,
not yet verified humans — the honest gap is stated plainly below and at the
top of
docs/INVARIANTS.md.) - No owner, no admin key, no kill switch, no forced update. Nobody can seize the network, freeze it, unmask a user, or push software you didn't choose to run.
- Offline money is a signed promise, never final ownership until canonical
consensus accepts it — so a network partition can never manufacture a
double-spend (
crates/mini-settlement). - Forking is always free; legitimacy is earned by continuity, never owned
by a repository or a trademark (
docs/design/fork-legitimacy.md).
This repository is the self-contained Rust core: ~40 crates, no external dependency on any single company's infrastructure to keep running. Nothing here is ready for real people, real money, or real custody yet — and it says so, everywhere, on purpose.
Working, tested Rust:
did:miniself-sovereign identity + device delegation + lost-device recovery- signed, content-addressed objects; local storage; social feeds; public
walls; an opt-in
ObjectEnvelopev2 private-metadata boundary (D-0304) — type, author, timestamp, sequence, and links all move inside AEAD ciphertext instead of the v1 cleartext schema — plus typed, non-delegable capability grants and scoped pseudonyms (mini-objects) - BFT finality-verification core; governed release/update path (no forced update, no kill switch)
- networked BFT consensus (
mini-consensus, D-0200–D-0206): a real multi-round Tendermint protocol (Buchman/Kwon/Milosevic Algorithm 1) run over a real, non-blocking TCP socket mesh — signed proposals, signed votes (incl.nil), locking, quorum certificate, andmini-executionapplication all crossing a wire. Independent ledgers converge to bit-identical state; a cluster survives a crashed proposer by round-timeout view-change; and messages are re-gossiped, so consensus is live over any connected graph, not just a full mesh (proven by a four-node line topology). Safety is complete, proposals are authenticated (front-running closed), a wedged peer cannot back-pressure honest nodes, and double-signing is detected as verifiable evidence; every link is now confidential and tamper-evident (mini_bearer::Channel, D-0206) — no consensus byte crosses the wire in cleartext; remaining gaps are liveness/DoS and deployment (no state-sync for a node that missed a whole height, no slashing layer yet, peers supplied not discovered,Channel's handshake is anonymous so it proves nothing about which validator is on the other end) - a real TCP transport with a live three-process gossip demo
mini, a real command-line developer tool (mini-cli): three independent identities on a shared store path can propose, review, and governed-merge a commit with no GitHub involved (D-0067)- an isolated Wasmtime sandbox (
mini-build-runner-wasmtime) for untrusted build-pipeline components: deny-by-default filesystem/network, fuel/epoch/memory limits, a 12-point adversarial test suite driving the real compiled binary (D-0069). Only this one crate ever links Wasmtime; raw shell/native-tool build steps stay unsandboxed and are never trusted-provenance-eligible - TUF-adapted release verification (D-0070): rollback protection, a
release transparency log with equivocation detection, a device-local
freshness/staleness bound, and an optional independent
build-provenance quorum layered in front of
mini-forge's existing timelocked release/attestation gate mini-installer(D-0071): real local staging/preflight/owner-approved activation/health-check/rollback over an already-verified release — atomic symlink-based activation, automatic rollback on a failed health check, still no forced update (activation always requires an explicit, typedOwnerApprovalnaming the exact release id)mini-privacy-policy(D-0094): typed cost-doctrine vocabulary (protection properties, mechanisms, the five un-removable residual floors) and a Tier 0-3 privacy request/achieved-result policy object — pure policy data; no relay/mix/erasure mechanism is wired to it yetmini-transport-policy(D-0301): aTransportRequestpolicy router — maps a privacy request to the mechanisms its tier requires, failing closed rather than silently downgrading; routing decisions only, not wired tomini-relayyetmini-resource-pricing(D-0302): aPriceVector/quote engine overmini-privacy-policy's declared tier costs, in the workspace's plain micro-MINI convention — quoting only, no payment execution, no dependency onmini-value/mini-treasury/mini-forge/mini-chainmini-relay(D-0306/D-0307/D-0308): Tier 1 relay + rendezvous protocol — role-separated entry/rendezvous/delivery relaying, rotating mailbox capabilities (MailboxGrant, holder-bound and token-committed likemini-objects' capability grants but a separate typed domain), connection-scoped ephemeral identities never tied to adid:miniroot, role-separation enforcement so no single relay operator holds two roles for one delivery,mini_transport_policy::route()decisions wired to role planning, and an automatedcargo testproving a message crosses two independently-established real TCP+Channelhops byte-for-byte — hop-by-hop store-and-forward, not onion routing (MN-205mix routing is a separate, still-gated tier)mini-bridge(D-0309,MN-207): a pluggable entry-transport interface —TransportId/TransportCapabilitiesnaming nine transport kinds with declared policy facts, a self-signedBridgeDescriptorreachability claim with a mandatory (non-optional) expiry, a synchronousPluggableTransporttrait, and one real implementation (DirectBridgeTransport) dialing a real TCP socket through a genuinemini-bearerchannel handshake — obfs4/WebTunnel/ Snowflake/Tor-PT adapters are named but not implemented, pending audited external implementationsmini-private-index(D-0310,MN-208): the privacy boundary between public DHT routing and private capability resolution — a frozenLookupPrivacyClasstaxonomy, capability-derived rotatingLookupLabels via HKDF-SHA256, a signed fixed-size-classPrivateIndexRecord, and a localLocalIndexenforcing signature/ writer/rollback discipline; doctrine plus one local-only primitive — no network, no PIR, no replicated index service yetmini-web-types(D-0316): the first MiniSearch code slice — pure shared vocabulary for canonical public-web URLs, crawl observations, explicit availability/restriction states, declared ranking profiles, default-no-personalization public search, and result explanations; no crawler, index, ranker, query service, network client, or payment logicmini-crawler(D-0317): deterministic MiniSearch crawler planning and URL admission policy — bounded same-host frontiers, explicit robots exclusions, depth/queue/URL-length limits, and no network client, parser, JavaScript, storage, ranking, or payment logicmini-web-extract(D-0371): sandboxed-in-principle static HTML extraction over already-fetched text — title, headings, visible text, unresolved links, language, metadata, a content digest, and hidden- text/script signals for a later ranker; hand-rolled parser, no JavaScript execution, no third-party HTML parsing dependency, no process isolation yetmini-provider(D-0400) /mini-engagement(D-0402, D-0403): Founder Directive 18's edge/provider layer, Waves 1-2 —ProviderDeclaration(mandatory custody/freeze/death/exit disclosure fields), the device- local-onlyLocalProviderPolicyoff switch, and a generic escrowed- work state machine overmini-settlement; pure vocabulary and state machine, with a read-only bridge (canonical_completion_status) reconciling completion against a realCanonicalLedgerView— no signing, no canonical registry, and no way yet to broadcast a claim toward consensus in the first placemini-attest(D-0404, Tier 0): explicitly linkable engagement-proven reviews — provider-signed, content-addressed completion receipts are rechecked against the original engagement and a realCanonicalLedgerView; the grant's pairwise pseudonym signs the review and a separately presented holder token binds it to the receipt. Public artifacts omit payment amount/address, free-form terms, and human-root DID, but expose linkable receipt/provider/pseudonym metadata by design. No unlinkability, personhood, governance, canonical review registry, or standalone settlement-inclusion proof is claimedmini-pq-anchor(D-0353): PQ anchor pre-provisioning + wallet inventory — generates a dormant ML-DSA-65 keypair and tracks it per identity root; never committed to any KEL, never a claim that an unanchored identity becomes recoverable
Prototype cryptography — real code, founder-reviewed, NOT yet audited:
- stealth addresses, linkable ring signatures, Bulletproofs confidential
amounts (
mini-value) - FROST threshold custody (
mini-treasury) - Merkle/PDP storage proofs (
mini-spacetime); real proof-of-replication, Stacked Depth-Robust Graph sealing (mini-porep); Reed-Solomon erasure coding + self-healing shard repair (mini-erasure); suppression- resistant shard placement/repair/retrieval planning over distinct holders (mini-replication-policy, D-0372) - anonymous developer-bounty claims (
mini-bounty); offline settlement protocol (mini-settlement) - airdrop eligibility snapshot + signed claim-redemption verification
(
mini-airdrop, D-0354/D-0355) — does not solve Sybil resistance, never holds treasury signing authority, and produces only a claim outcome for a separate real settlement-signing flow to act on;mini-airdrop-treasury(D-0356) bridges that outcome to a treasury signer-set approval record using ordinary distinct-identity counting (not the gated FROST module) — still not a signed settlement claim
Not ready yet, and openly tracked:
- a mobile or desktop app anyone can install
- BLE / local-radio transport (needs real phone hardware)
- full networked consensus and a live chain
- external cryptography audit — the single largest gate before any real value
- FROST distributed key generation is implemented and tested (Pedersen DKG
- committee resharing) but not yet externally audited
- a solved, privacy-preserving personhood/liveness proof (open research, not engineering debt)
- adversarial testing at real-world scale
The work that more code cannot finish — external audits, legal review,
real-hardware testing, and open research decisions — is named explicitly, so
a finished-looking GitHub repo is never mistaken for a launch-ready network:
docs/gates/ and tracking issue #99.
Pick the door that fits you:
| You are… | Start with |
|---|---|
| Anyone wanting the single-document explanation | WHITEPAPER.md |
| A curious person — what is this, and why should it exist? | docs/HUMAN_START.md |
| A developer — build it, run the demos, find your way around | docs/DEVELOPER_START.md |
| An auditor or skeptic — where are the invariants, threats, and honest gaps? | docs/AUDITOR_START.md |
| A contributor — how work is reviewed and merged | CONTRIBUTING.md |
Beneath everything else in this repository — read before opening the code —
is docs/FOUNDER_DIRECTIVES.md: the eighteen
principles the whole project is filtered through, written so that a century
from now, someone facing a problem no document anticipated can still reason
the way the founders would have.
Mininet preserves its reasoning as first-class infrastructure, not just its code — because a network meant to outlive its creators has to explain itself to people who will never meet them:
docs/FOUNDER_DIRECTIVES.md— why the project exists and what it values — the one canonical eighteen-directive set (D-0090, extended D-0352); machine-readable asdocs/CONSTITUTION_REGISTRY.json(FD-01–FD-18, generated bytools/constitution_registry.py).docs/INVARIANTS.md— what can never be broken, each row traced Directive → Invariant → Source → enforcing code + test.docs/DECISION_LOG.md— why each choice was made, and when it was superseded (append-only; main sequenceD-0001–D-0094, plus the networking/consensus track's reservedD-0200–D-0206, the privacy/cost-doctrine track'sD-0300–, and the edge/provider-layer track'sD-0400– — see the log's "Decision-number allocation across parallel tracks").docs/FAILURE_BOOK.md— what was tried and rejected, and why — read before re-proposing something.docs/THREAT_MODEL.md— what could kill the project at civilization scale, and which invariant, if any, is the defense.
Living detail: docs/STATUS.md (what's actually built, by
domain), docs/gates/ (external legitimacy gates),
docs/audits/ (review deliverables),
docs/design/ (design notes),
docs/governance/ (the founder-supplied Governance
Pack — normative process/specification material, subordinate to the five
documents above; see
docs/GOVERNANCE_PACK_INTEGRATION.md
for what's activated, staged, or founder-only),
docs/LEGAL_DISCLAIMER.md (the project's
constitutional legal position — voluntary participation, no universal
representative, individual legal responsibility, no protocol ownership).
Find anything offline: python3 tools/mininet_nav.py map (see
docs/NAVIGATION.md).
Public domain (CC0-1.0). Fork it, build on it, run it — own it, together. A population, not an organization.