Files
2026-06-08 03:33:03 -04:00

46 lines
1.5 KiB
Markdown

# g1wallet — Self-Sovereign Ğ1 Wallet
**Version:** 0.1.0 (skeleton)
**Spec:** `G1WALLET-SPEC.md` in the repo root
---
## What This Is
A self-sovereign Ğ1 wallet embedded in the Civic Infrastructure. Every SASE-verified
participant — including the operator — holds their own Ğ1 identity under their own
credentials, in their own browser, under their own control. The platform never touches
the keys.
## What Is Implemented at This Tag
- Addon registration, routing, access state
- Wallet unlock form (UI only — no crypto yet)
- Unlocked interface placeholder
- Compact sidebar widget (locked/unlocked status)
- CivicNav registry entry
## What Is Not Yet Implemented
- scrypt key derivation (vendor/scrypt-js-3.0.1.min.js is present but not wired)
- Ed25519 signing via WebCrypto
- Wallet session state (JS)
- Pubkey POST to /g1wallet/pubkey
- Balance fetch from orchestrator
- Broadcast relay to Duniter network
## Build Sequence (from G1WALLET-SPEC.md)
1. `view/js/g1wallet.js` — key derivation, signing, session management, event API
2. `vendor/scrypt-js-3.0.1.min.js` — already present, pinned
3. `g1wallet.php` — entry point (done)
4. `g1wallet_renderer.php` — unlock form, unlocked interface (skeleton done)
5. `g1wallet_spool.php` — pubkey store, broadcast relay (stubs done)
6. Orchestrator additions — broadcast and balance endpoints in main.py
7. Widget, PDL, CSS (done)
8. Integration test against Duniter standard key derivation
## Runtime Config
Copy `config.json.template` to `config.json` on the host. Do not commit `config.json`.