[DIS] Mobile-Ready CKB Light Client (Pocket Node) for Android

Hi @Jnr6, the 7-day discussion period has ended, and your proposal has reached more than 30 likes, meeting the requirement to proceed to the voting stage. When you’re ready, please go ahead and create the voting thread and share the voting link per the DAO process.

Metaforo currently has wallet unbinding disabled, and voting plus vote verification can be handled under the transitional rules, so it is safe to start the vote now.

7天的讨论期已结束,您的提案已获得超过30个赞,符合进入投票阶段的要求。现在您可以按照DAO流程创建投票帖并提交投票链接。

Metaforo目前已禁用钱包解绑功能,投票和投票验证均可按照过渡规则进行,因此现在可以安全地开始投票。

5 Likes

Hi everyone
Voting is now live on Metaforo

https://dao.ckb.community/thread/vot-mobile-ready-ckb-light-client-pocket-node-for-android-67494

2 Likes

@zz_tovarishch Voting is live

https://dao.ckb.community/thread/vot-mobile-ready-ckb-light-client-pocket-node-for-android-67494

3 Likes

Pocket Node 提案投票现已结束

初步结果:通过(赞成率:98.85%,总投票权重:87,273,842 CKB)

接下来,作为过渡期协调员,我将使用 CKB DAO Watchdog 进行投票后验证,将 Metaforo 记录的投票权重与链上 Nervos DAO 的存款权重进行交叉核对,并进行人工核查。我将把验证日志提交给委员会,以便最终确认结果是否符合流程要求。

Pocket Node Proposal Voting has now closed

Preliminary outcome: PASSED (Approval: 98.85%, Total voting weight: 87,273,842 CKB).

Next, as the transitional period coordinator, I will run a post-close verification using CKB DAO Watchdog to cross-check Metaforo-recorded voting weights against on-chain Nervos DAO deposit weights, along with a manual check. I will share the verification logs with the committee for final confirmation of whether the result is valid per the process.

2 Likes

Pocket Node Voting Verification Announcement

Based on the Metaforo tally at close, the outcome is PASSED. Approval is 98.85% with total voting weight 87,273,842 CKB (Yes 86,273,842, No 1,000,000).

Post-close verification has been completed using CKB DAO Watchdog, together with a manual sanity check. The verification cross-checks Metaforo-recorded voting weights against on-chain Nervos DAO deposit weights. In this run, all entries match and there is no indication of weight inflation or double-counting.

Committee confirmation: the proposal is confirmed as PASSED based on the Metaforo tally at close.

Verification logs: ckb-dao-watchdog/Verification Logs - Pocket Node at main · kydchen/ckb-dao-watchdog · GitHub

Tool repo: GitHub - CKBFansDAO/ckb-dao-watchdog: Community-driven tools for auditing and verifying CKB DAO governance voting results.

Pocket Node 投票核验公告

根据 Metaforo 在投票截止时的统计结果,本次投票结果为通过。赞成率 98.85%,总投票权重 87,273,842 CKB(Yes 86,273,842,No 1,000,000)。

投票结束后,我们使用 CKB DAO Watchdog 完成了核验,并配合进行了人工交叉核验。核验内容为对照 Metaforo 记录的投票权重 与 链上 Nervos DAO 存款对应的权重。本次核验中,记录均一致,未发现权重膨胀或重复计权的迹象。

委员会确认:本次最终结果以投票截止时 Metaforo 记录的权重为准。 提案确认通过

核验日志:ckb-dao-watchdog/Verification Logs - Pocket Node at main · kydchen/ckb-dao-watchdog · GitHub

工具仓库:GitHub - CKBFansDAO/ckb-dao-watchdog: Community-driven tools for auditing and verifying CKB DAO governance voting results.

3 Likes

The initial 10% down payment (payable in CKB)
首付10%(以CKB支付)

15,000 USD * 10% = 1500 USD, @CKB price 0.001647
1500/0.001647 = 910,747 CKB

https://explorer.nervos.org/transaction/0x41a182b678b6312ac85807834a915bc9529f1c898b3ee4f27f2c3392b181fcbd

4 Likes
3 Likes

Google Play Rejected App

The app got rejected from Google playstore because I was trying to deploy it on my personal developer account and google has a policy against that because it’s a cryptocurrency related app.

Setting up a business account takes time, so i will defer that task to the future

What Next

I have the version 1.1.0 and version 1.2.0 on github release already, so the community can try it out and provide early feedback.

I planned on put it on F-Droid also, and work hve already began on that, please try it out and open any issue if you find any.

also verison 1.2.1 will also be released soon

official website: https://pocket-node.vercel.app/

Thank you

11 Likes

Congrats for the good work..:clap: Can you merge with obscell wallet?

2 Likes

Thank you @d3fus7.bit; but i’d have to look into obscell wallet before i can give a response

2 Likes

Milestone 1 Completion Report

Project: Pocket Node: Mobile CKB Light Client Wallet for Android
Repository: github.com/RaheemJnr/pocket-node
Milestone: M1 — Mainnet Ready & Hardware-Backed Security
Releases: v1.1.0, v1.2.0, v1.2.1, v1.2.2


Deliverables Summary

All six accepted deliverables for M1 have been completed:

# Deliverable Status
1 Production mainnet configuration with cell dependencies and bootnode settings Done
2 BIP39 mnemonic generation with TEE/StrongBox encryption Done
3 Biometric authentication (fingerprint/face) with PIN fallback Done
4 Comprehensive mainnet testing with real transactions Done
5 Open-source repository on GitHub Done
6 Releases: v1.1.0 (Week 2), v1.2.0 (Week 4) Done

Feature 1: BIP39 Mnemonic with TEE/StrongBox Encryption

Pocket Node now generates wallets using BIP39 12-word mnemonic seed phrases with CKB’s standard derivation path (m/44'/309'/0'/0/0). The mnemonic and derived private key are encrypted using Android’s Trusted Execution Environment (TEE) or StrongBox hardware security module where available.

What was built:

  • MnemonicManager — BIP39 mnemonic generation, validation, and BIP32/BIP44 key derivation using the kotlin-bip39 library
  • MnemonicBackupScreen — 3-step backup flow: display 12 words in a numbered grid (with FLAG_SECURE to prevent screenshots), verify 3 randomly selected words, and success confirmation
  • MnemonicImportScreen — Recovery flow with word autocomplete from the BIP39 word list and real-time validation
  • KeyManager upgraded — Mnemonic-aware wallet creation, TEE/StrongBox-backed MasterKey encryption, and support for both mnemonic and raw key wallet types

PRs: #11, #12, #13


Feature 2: Biometric Authentication with PIN Fallback

The app now requires authentication before showing wallet contents. Users authenticate via fingerprint, face recognition, or a 6-digit PIN on devices without biometric hardware.

What was built:

  • AuthManager — Detects biometric hardware availability and enrollment status using BiometricManager
  • PinManager — PIN hashing with Blake2b + per-device salt, 5-attempt lockout with 30-second cooldown
  • AuthScreen — Automatically triggers BiometricPrompt on launch with manual retry and PIN fallback
  • PinEntryScreen — 6-digit PIN pad with dot indicators, shake animation on wrong entry, lockout timer display
  • SecuritySettingsScreen — Toggle biometric auth, set/change PIN, view security status
  • PIN re-verification required before changing security settings

PRs: #15, #16, #21


Feature 3: Mainnet Production Hardening

The wallet has been hardened for real CKB mainnet transactions with proper validation, error handling, and release configuration.

What was built:

  • NetworkValidator — Validates address-network consistency (rejects ckt testnet addresses on mainnet and vice versa)
  • Testnet support with network switching — users can toggle between mainnet and testnet, each with isolated data directories and configurations
  • Release signing and R8 minification configured
  • ProGuard rules for CKB SDK, BouncyCastle, secp256k1, and Room entities
  • Debug logging gated behind BuildConfig.DEBUG
  • AndroidManifest hardened: backup disabled, native library extraction enabled
  • 15 globally distributed bootnodes configured for both mainnet and testnet

PRs: #19, #22


Feature 4: Open Source & CI/CD

The repository is public on GitHub with automated CI/CD and community contribution infrastructure.

What was built:

  • GitHub Actions CI workflow — builds JNI library + Android app, runs unit tests on every PR
  • Release workflow — automated APK builds on version tags
  • CONTRIBUTING.md, SECURITY.md, issue templates, PR template
  • Google Play Store listing content prepared
  • UI/UX redesign to Material 3 standards with the Nervos team’s feedback incorporated

PRs: #20, #25, #42, #43, #44


Additional Work (Beyond Spec)

Several improvements were shipped beyond the original M1 scope:

  • Room database caching (Phase 1 & 2) : Transaction history and balance caching with transactions, balance_cache, header_cache, and dao_cells tables for offline-first performance (#49, #50)
  • CKB/USD price feed : Live CKB price from CoinGecko displayed on the home screen
  • Test coverage expansion : 232 unit tests covering JNI models, Extensions utilities, TransactionBuilder, TransactionRecord, DAO models, and more (#47, #52)
  • Sync mode selector after import : Users choose their sync depth (Recent, Full History, Custom) when importing a wallet (#41)
  • Website : Landing page for the project at the repo’s GitHub Pages

Releases

Version Highlights
v1.1.0 BIP39 mnemonic, biometric/PIN auth, mainnet hardening, testnet support, CI/CD
v1.2.0 Room database cache, DAO sync pipeline, UI/UX redesign
v1.2.1 Test coverage (67 new tests), website fixes
v1.2.2 Copy private key in backup, balance visibility toggle

All releases include signed APKs attached as assets.


What’s Next: M2 — Nervos DAO Protocol Integration

Work on Milestone 2 is already underway on the feature/m2-nervos-dao branch. M2 will add full Nervos DAO support including:

  • DAO deposit and withdrawal transactions
  • Compensation tracking and cycle visualization
  • DAO direction detection in transaction history
  • In-app update notifications from GitHub releases

Latest Release: Release v1.2.2 · RaheemJnr/pocket-node · GitHub

3 Likes

M1 Payout

https://explorer.nervos.org/transaction/0xc0d6256f62667a86f655add3d2a0dd22cf76e3afac82d6fd2690026289af72f2

2,286,586 CKB (equivalent to $3,375 at 0.001476 CKB/USD, representing the 22.5% of full grants)

3 Likes