Skip to content

Be your own bank.

A federated mutual-credit ledger. Mint personal currencies, trade them with people you trust, and settle cryptographically — no central authority, no middleman.

How it works in one paragraph

Every user and every bank is an ed25519 keypair. Voucher, Account, Signature, Subscription, and Order docs are canonicalized via RFC 8785 JSON, SHA-256-hashed, and content-addressed. Ledger records are bank-minted with ULIDs. In a cross-bank trade the coordinator creates the record pairs (create_records), holders submit signed Orders (submit_docs), and the coordinator clears each Order at each bank with a signed Mandate (submit_mandate). From there the banks self-advance: per-record approvals, holds, then settlement. Banks discover each other via the bank fields in Orders and call each other directly through the Address registry; subscriptions are optional. No bank ever sees the full transaction. The math binds everyone together.

Read the full docs →

See it work

Open the live demo banks — no install needed: barter-game-banks.ai-1st.deno.net/alice/ui. Register with a handle and password; the key is generated and encrypted in your browser.

Or run a bank locally:

git clone https://github.com/ai-1st/barter.game.git
cd barter.game
deno run apps/bank/genkey.ts   # prints BANK_ALICE_PRIV_KEY=<base58>
BANK_ALICE_PRIV_KEY=<base58> deno run --allow-net --allow-env --allow-read --allow-write --unstable-kv apps/bank/main.ts

Then open http://localhost:8000/alice/ui, register two users, issue personal currencies, and place matching orders. The banks settle on their own. Sum per Voucher = 0. The cryptographic version of “we’re even.”