Hello @xingtianchunyan @zz_tovarishch @Hanssen .
Dular completion report
- 30 users onboarded (live registry), 23 feedback responses.
- Live app: https://dular.vercel.app/
- Repo: GitHub - duongja/Dular · GitHub (main is up to date)
- Demo video: https://drive.google.com/file/d/1hXxypmNm4XjIZ_kuNxm2WrnZ7srVx0PZ/view?usp=sharing
What was delivered
Milestone 1: Phone identity + M-Pesa deposit ramp: OTP verification via Africa’s Talking, database-backed phone → Fiber pubkey registry with public lookup, production Daraja STK Push deposits settling through Fiber, RUSD credited after settlement.
Milestone 2: USSD interface (simulator-tested): full menu (balance, send, receive, deposit, PIN), 20 Africa’s Talking simulator sessions committed under verification/milestone-2/. No production dial code, a dedicated code was required for crypto services and is out of budget, so this stays simulator-only.
Milestone 3 + approved pivot: self-custody web wallet: per committee feedback the app moved from operator-ledger to Fiber-native. Browser runs the Fiber wallet (keys generated and PIN-encrypted on-device), phone numbers map to user-owned Fiber identities, phone-number sends and standard Fiber invoice send/receive (including external Fiber wallets) settle over Fiber, not an internal ledger. 53 automated tests pass, lint and build clean.
How to verify
curl https://dular.vercel.app/api/health
curl https://dular.vercel.app/api/verification/pilot | python3 -m json.tool
curl https://dular.vercel.app/api/registry/lookup?phone=%2B254718948041
Live counts at reporting time: 30 users, 31 channels, 57 successful Fiber payments, 32 completed ramp orders. Each channel entry carries its funding tx hash + explorer URL; each ramp order links its redacted verification record.
Reminder: Fiber payment hashes are off-chain identifiers, verify via Fiber RPC get_payment/list_payments. CKB Explorer verifies the channel funding cells (FundingLock 0x6c67887fe201ee0c7853f1682c0b77c0e6214044c156c7558269390a8afa6d7c, RUSD 0x1142755a044bf2ee358cba9f2da187ce928c91cd4dc8692ded0337efa677d21a). Reference multi-hop proof: Fiber 0x20fd6c4a9d9e207420b4f55b4ae095eee9840fca1678afc89f9065298fe4a9e2, funding 0xefdb791ac44ba1af435ae2b22f5572862519865990185d3c0d0cd5bd068e9e39 and 0x6156f3a8f46063d529f74df2a40407fc79ac70322615d2e862875eedf2b6a79c.
Pilot results (n=23)
- Avg ratings (/5): onboarding 3.96, deposit 3.70, send 3.96, reliability 3.39
- Would use again: 19/23.
- 7 reported no issues. Remaining feedback clusters: STK/liquidity messaging, invoice expiry and QR edge cases, Swahili coverage, recovery-phrase backup, PIN naming. Full responses: verification/milestone-3/pilot_feedback.csv
Stated limits
- Feedback coverage 23/30 (onboarding hit 30).
- RUSD is a capped testnet pilot asset, not production money.
- USSD is simulator-only.
Requesting committee review and close-out on the above evidence. Thank you for the support and the architecture guidance that made the Fiber-native pivot happen.