Phase 1 — Implementation Plan¶
Goal: Garuda Chain usable, observable, and stable.
Rule: Do not start Phase 2 production work until all Phase 1 completion criteria pass.
Commit Order¶
| # | Commit scope | Files | Criterion |
|---|---|---|---|
| 1 | Explorer chain helpers | apps/explorer/src/lib/chain.ts |
Shared data layer |
| 2 | Transaction explorer page | apps/explorer/src/app/transactions/[hash]/page.tsx |
Tx explorer |
| 3 | Address explorer page | apps/explorer/src/app/accounts/[address]/page.tsx |
Address explorer |
| 4 | Blocks list page | apps/explorer/src/app/blocks/page.tsx |
Block list |
| 5 | Live updates | apps/explorer/src/components/LiveChainFeed.tsx, page.tsx |
Real-time polling |
| 6 | Explorer nav fix | apps/explorer/src/components/Header.tsx |
Remove broken /tokens |
| 7 | Wallet scaffold | apps/wallet/** |
Wallet app exists |
| 8 | Root scripts | package.json |
dev:wallet |
| 9 | Docs portal (next) | apps/docs/ or MkDocs |
TBD — after explorer + wallet verified |
| 10 | Monitoring panels (next) | deploy/monitoring/ |
TBD — after Phase 1 core apps |
1. Blockchain Explorer — Tasks¶
Done¶
- [x]
GET-style helpers:getTransaction,getAccount,getBlocksPage,getAccountTransactions - [x]
/transactions/[hash]— tx + receipt detail - [x]
/accounts/[address]— balance, nonce, recent txs - [x]
/blocks— paginated block list - [x] Home page live polling (15s) for block height + latest blocks
- [x] Smoke test:
npm run explorer:smoke
Remaining¶
- [ ] Wire explorer to production API as fallback when RPC slow
- [ ] WebSocket block subscription (optional upgrade from polling)
2. Wallet — Tasks¶
Done¶
- [x]
apps/wallet— Vite + React + TypeScript - [x] Create / import / backup / send / receive / history
- [x] Build script →
deploy/wallet/dist - [x] Caddy route
wallet.garudachain.id
Remaining¶
- [ ] External security audit of key storage
- [ ] GAT ERC-20 balance when contract deployed
3. Monitoring — Tasks¶
Done¶
- [x] TPS metric (
garuda_tps) in metrics-exporter - [x] Grafana panels: CPU, RAM, disk, TPS
- [x] Loki + Promtail in
docker-compose.monitoring.yml - [x] Alias
infrastructure/monitoring/README.md
Remaining¶
- [ ] Production deploy with monitoring overlay verified on VPS
4. Documentation Portal — Tasks¶
Done¶
- [x] MkDocs Material site (
mkdocs.yml) - [x] All roadmap sections: intro, RPC, chain ID, wallet, SDK, contracts, API, roadmap, governance, security, legal
- [x] Build script →
deploy/docs/dist - [x] Caddy serves
/srv/docs - [x] Landing footer links updated with trailing slashes
Remaining¶
- [ ] Deploy rebuilt docs to production VPS / upload dist
Verification Checklist¶
Run before marking Phase 1 complete:
npm run dev:stack # or public:stack
npm run dev:explorer # :3000
npm run dev:wallet # :3001
| Test | Expected |
|---|---|
| Search block number | Opens /blocks/N |
| Search tx hash | Opens /transactions/0x... |
| Search address | Opens /accounts/0x... |
/blocks |
Paginated list |
| Home page | Block height updates every 15s |
| Wallet create | Mnemonic shown, confirm, password set |
| Wallet send | Tx succeeds on devnet |
| Wallet receive | Address copyable |
| Grafana | RPC + block height visible |
Phase Gate¶
Do NOT proceed to Phase 2 production until:
- All four Phase 1 deliverables pass verification checklist
security/production-checklist.jsonPhase 1 items documented- Mainnet launch decision documented separately (not required for Phase 1 dev completion)