Federated Ledger

> Static-site federated ledger as “append-only log”

Each community (or even each person) hosts a static website (or IPFS bucket) that contains: * `/tx/` directory of transaction JSON files (immutable once published) * `/batches/` directory of batch manifests * `/heads.json` current pointers (“latest batch”, “latest tx index”) * `/keys/` optional published DID docs / key rotations

Transactions are content-addressed: * filename = hash of canonical JSON (or `{timestamp}_{hash}.json`) * this makes tampering obvious because hashes won’t match.

A **transaction** is a signed object, e.g.: * from DID, to DID * amount (Voz) * memo / contract ref * previous hash pointer (per-signer chain) to make replay and ordering attacks harder * signature(s)

You can run this fully in browser JS: sign with WebCrypto (Ed25519 via libs) or passkeys, publish by pushing files to a repo, S3, IPFS, or a tiny upload endpoint.