tawasuyu

tawasuyu/agora

> Public square. Federated identity and a trust graph that no one runs.

Rust 76Markdown 49TOML 211529 Sutichaykuna

README.md

agora

Public square. Federated identity and a trust graph that no one runs.

agora-app: seven tiles over the same TrustGraph — identities with real Ed25519 keys, signed and verified attestations, a 2-of-2 multisig and wawa's control-plane envelopes

Each identity — person, community, alliance, institution — is an Ed25519 public key. Each assertion about it is a Claim; each endorsement is an Attestation: a claim signed by an attester. The truth of the agora is not dictated by a server — it emerges from who attests to what, weighted by a TrustPolicy that every reader negotiates for themselves. No central registry, no moderation algorithm, no feed.

Run

cargo run --release -p agora-app       # Llimphi UI: identities, attestations, composer, policy
cargo run --release -p agora-cli -- --help

Crates

CrateRole
agora-coreIdentities, claims, Ed25519-signed attestations, multisig, lifecycle.
agora-graphTrustGraph: verified attestations + corroboration + negotiated policy.
agora-storeAtomic JSON persistence with re-verification on load.
agora-keystoreEncrypted private-seed storage (Argon2 + ChaCha20-Poly1305).
agora-gossipTransport-agnostic anti-entropy protocol over signed attestations.
agora-net-brahmanlibp2p bridge: /agora/gossip/1.0.0 over BrahmanNet (shared with minga).
agora-channelSigned roots/releases, channel-history verification, capability grants by bytecode hash.
agora-cliShell CLI: identities (rotate/revoke), attestations, export/import, channels.
agora-appLlimphi UI with tiles (identities, attestations, composer, policy, capability, release).
agora-dispositivodevice→person binding by signed attestation: one person, one identity, many machines.
agora-petnamesMemorable local names plus signed introductions — petnames instead of a global namespace.
agora-confianzaReconciles agora's two planes of trust into a single per-reader opinion.
agora-aylluThe community as author: the unit is the ayllu, and it gets a signing identity.

How dependencies work

This is a clean front-door repo: it holds only agora's own crates. Everything else is a git dependency on the tawasuyu monorepo (the suite's source of truth), pinned to a tag — including the Llimphi UI framework. No vendoring, no duplication; the first build clones that repo and caches it.

The directory layout mirrors the monorepo (03_ukupacha/agora/…) on purpose: the repo is regenerated from it with scripts/actualizar-standalone.py, so paths stay comparable between the two.

Considerations

License

MIT — see LICENSE.