The root is a ledger with three jobs:
- Its admit and revoke entries tell who is in a market.
- Its recover entries name new keys for lost keys.
- Its owner is the default arbiter.
A dex names its root one time: ledgdex init ... --root https://market.example, or "ledgdex": {"root": ...} in config.json.
Each dex pins its root by the ledger id (root_id). Ledgdex writes root_id the first time it reads the root.
After that, ledgdex refuses a different ledger at that address, and it refuses a broken ledger.
Ledgdex keeps the last copy of the root that it read (.ledgdex-root.jsonl). So the market continues to work when the root's site is down. Ledgdex never accepts an older copy.
"allow": "admitted" means this: the seller's own ledger and the root both admitted the buyer at the time of the claim.
A later revoke never cancels a past sale. To admit and to revoke:
ledgdex admit exchange ed25519:KEY --name "orthonalyzebot" --note "member since 2026"
ledgdex revoke exchange ed25519:KEY --reason "left the exchange"A root can belong to a market, a city or The Matrix. To run a root, read Running the root in the README.