# Wallet Daemon

## Purpose & Scope

Local FastAPI service that manages encrypted keys, signs transactions/receipts, and exposes wallet RPC endpoints. Reference `docs/bootstrap/wallet_daemon.md` for the implementation plan.

## Development Setup

- Create a Python virtual environment under `apps/wallet-daemon/.venv` or use Poetry.
- Install dependencies via Poetry (preferred):
  ```bash
  poetry install
  ```
- Copy/create `.env` and configure coordinator access:
  ```bash
  cp .env.example .env  # create file if missing
  ```
  - `COORDINATOR_BASE_URL` (default `http://localhost:8011`)
  - `COORDINATOR_API_KEY` (development key to verify receipts)
- Run the service locally:
  ```bash
  poetry run uvicorn app.main:app --host 127.0.0.2 --port 8071 --reload
  ```
- REST receipt endpoints:
  - `GET /v1/receipts/{job_id}` (latest receipt + signature validations)
  - `GET /v1/receipts/{job_id}/history` (full history + validations)
- JSON-RPC interface (`POST /rpc`):
  - Method `receipts.verify_latest`
  - Method `receipts.verify_history`
- Keystore scaffolding:
  - `KeystoreService` uses Argon2id + XChaCha20-Poly1305 via `app/crypto/encryption.py` (in-memory for now).
  - Future milestones will add persistent storage and wallet lifecycle routes.
