46 lines
1.5 KiB
Markdown
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`.
|