Steem Keychain Mobile: Building It Right, Phase by Phase

in Steem Dev23 hours ago

E4A93660-85A4-4F0F-8203-0E1E85D761BA_1_201_a.jpeg

Hello everyone,

If you have been following my recent posts, you know I have been working on Steem Keychain Mobile — a modern mobile wallet for the Steem blockchain built from the ground up with React Native and Expo.

In my first post, I announced the project and shared the early prototype with the visual identity. In my second post, I demonstrated the Deep Linking integration working with external browsers.

Today, I want to share something important: the development roadmap and the strategy I am using to deliver this app to the community.


Where the App Stands Today

After weeks of focused development, the app currently has many features implemented, but I want to be transparent: not everything is built yet, and what is built has not been fully tested.

Here is what has been implemented so far:

  • Secure account management with AES-256 encryption
  • Biometric authentication (Face ID / Fingerprint)
  • Wallet with balance display and price tracking
  • Transfer, receive, power up, power down, delegation
  • Savings operations, witness voting, proxy management, proposal voting
  • Account history with filters
  • In-app dApp browser with tabs, favorites, and history
  • Keychain bridge with request operation handlers
  • Deep linking for external app integration

There are still many features that need to be built, and the existing ones need thorough testing across every scenario and edge case.

I am not going to rush this.


Why a Step-by-Step Approach

This app is large, and it keeps getting bigger. Every day I work on it, new features are added, new edge cases appear, and the codebase grows. It handles sensitive blockchain operations involving real funds on two platforms — Android and iOS. As a solo developer, I realized early on that if I do not structure this carefully, the growing complexity will become unmanageable.

That is why I decided to implement a phased release strategy. My goal is to focus on every scenario and edge case to ensure nothing is missed or broken. The approach is simple:

  1. I divide all features into 10 phases, each containing a small group of releases
  2. Each release unlocks a focused set of features
  3. I test each phase thoroughly — functionality, security, and UI/UX
  4. The community tests it and shares feedback
  5. I fix, enhance, and improve based on that feedback
  6. Only when the current phase is solid, I move to the next one

This step-by-step method allows me to build, test, and refine the app feature by feature. It keeps development organized, prevents things from falling through the cracks, and gives the community a clear picture of progress at every stage.

This is not just about whether buttons work. At every phase, I am evaluating: Does the flow feel right? Is the layout clear? Are the interactions intuitive? Is the design consistent? UI/UX is a first-class priority, not an afterthought.


Current Status: Phase 1 Available for Testing

I have built and packaged Phase 1 (Core Foundation) and I am currently testing it on my physical devices. The first APK is now available for the community to test as well.

I am working through Phase 1 thoroughly before moving to Phase 2. If you find issues, have suggestions, or want to share feedback about anything — functionality, design, flow — please do. Every piece of feedback shapes what comes next.


The Full Roadmap

Below is the complete roadmap. This plan may evolve — features might shift between phases, new ones may be added, or priorities may change based on testing and community feedback.

Phase 1 — Core Foundation (Releases 1–6)

Status: APK available for testing.

The bedrock of the app. Security, authentication, and basic account management.

ReleaseFeatures
R1Base UI component library
R2Master password creation with AES-256 encryption
R3Password unlock with attempt limiting and lockout
R4Biometric unlock (Face ID / Fingerprint), auto-lock timer, lock button
R5Account import via private key and master password
R6QR code import, wallet balances, account drawer, price display, account management, basic settings

Phase 2 — Basic Transactions (Releases 7–9)

Status: Moving into testing now.

The essential wallet operations every user needs.

ReleaseFeatures
R7Send STEEM and SBD (recipient validation, memo support)
R8Receive screen with QR code generation and copy/share
R9Power Up — convert STEEM to Steem Power

Phase 3 — History & Advanced Power (Releases 10–13)

Understanding your account activity and managing your stake.

ReleaseFeatures
R10Account history — view all transactions
R11History filters by operation type
R12Delegation — create, remove, and view incoming/outgoing
R13Power Down — start, modify, and cancel the 13-week schedule

Phase 4 — Savings & Governance (Releases 14–19)

Protecting your funds and participating in Steem governance.

ReleaseFeatures
R14Savings deposit (STEEM and SBD)
R15Savings withdrawal with 3-day wait and cancel support
R16Witness voting — search, filter, vote/unvote (max 30)
R17Proxy — set or clear your witness voting proxy
R18Proposals — view SPS/SDF proposals with funding status
R19Proposal voting — vote and unvote on proposals

Phase 5 — In-App Browser (Releases 20–23)

A full browser inside the app for interacting with Steem dApps.

ReleaseFeatures
R20–R21WebView browser with full navigation controls
R22Tab management — open, switch, and close multiple tabs
R23Browser home page with favorites and browsing history

Phase 6 — Keychain Bridge (Releases 24–27)

The core of Keychain: letting dApps request transactions securely.

ReleaseFeatures
R24Keychain API injection into the browser (window.steem_keychain)
R25Request modal UI — approve, reject, and review dApp requests
R26Handle transfer requests from dApps
R27Handle vote and post requests from dApps

Phase 7 — Request Operations (Releases 28–32)

Expanding the bridge to support the full range of Steem operations.

ReleaseFeatures
R28Custom JSON requests (communities, follows, reblogs)
R29Delegation and power operation requests
R30Witness vote and proxy requests
R31Sign buffer, sign transaction, and broadcast requests
R32Encode and decode memo requests

Phase 8 — Advanced Requests (Releases 33–36)

Specialized operations for power users and developers.

ReleaseFeatures
R33Steem Engine token transfer requests
R34Authority management (add/remove account and key authority)
R35Account creation and addAccount requests
R36Recurrent transfers and convert requests

Phase 9 — Trust & Notifications (Releases 37–40)

Making the app smarter and keeping users informed.

ReleaseFeatures
R37Trusted operations — "Don't ask again" per domain and operation
R38Activity notifications — votes, replies, mentions, follows
R39Transaction history in notifications
R40Push notifications with background delivery

Phase 10 — Advanced Settings & Polish (Releases 41–44)

Fine-tuning the experience and preparing for public release.

ReleaseFeatures
R41RPC node configuration — custom nodes with latency testing
R42Notification preferences and settings
R43–R44Clear all data, version info, about screen, privacy and terms

What I Need From the Community

I genuinely want to build something that the Steem community trusts and uses daily. My goal is to create an app worthy of being the official Steem Keychain mobile experience.

To get there, I need your help:

  • Test the Phase 1 APK — Try creating a password, importing an account, checking your balances
  • Report any bugs — No matter how small, every report helps
  • Share your thoughts on the UI/UX — Does it feel smooth? Is anything confusing? What would you change?
  • Suggest improvements — Your feedback directly shapes what I enhance in the next phase

Download the APK

Phase 1 (Release 6) — Core Foundation:

DOWNLOAD APK

Note: Since this is a beta APK, your phone may show a security warning about installing from unknown sources. This is normal for apps distributed outside the Play Store. You will need to allow installation from your browser or file manager in your phone settings.


Technical Details

For those interested in the technical foundation:

DetailValue
FrameworkReact Native 0.81 + Expo SDK 54
LanguageTypeScript (strict mode)
EncryptionAES-256-CBC with PBKDF2-SHA256 key derivation
BiometricsiOS Keychain / Android KeyStore with biometric protection
State ManagementRedux with encrypted persistence
PlatformsAndroid and iOS
Testing DevicesiPhone 14 Pro Max, Samsung Galaxy A30

About Me

Hi! I'm kafio, I build tools for Steem. My projects:

PixelCraft — pixel art game on blockchain
https://pixelcraft-beta.steemhub.tech

SteemHub — A platform that showcases my Steem-based projects, helping users discover and engage with the ecosystem.

Other tools:

Contributing to the Steem ecosystem. Support my work by voting for my witness: @kafio.wit

Vote: https://steemitwallet.com/~witnesses

Thank you!

image.png

cc: @steemcurator01 & @steemcurator02

Sort:  

Hi, @kafio.wit,

Thank you for your contribution. Your post has been manually curated.


- Delegate to @ecosynthesizer and vote @symbionts as a witness to support us.
- Explore Steem using our Steem Blockchain Explorer
- Easily create accounts on Steem using JoinSteem

 22 hours ago 

I'd help to test on IOS