Work · IT Solutions
WalletPro
LiveA multi-chain wallet with native mobile clients and a Rust API — keys and signing stay on the device.
- Role
- Development
- Period
- 2025–2026
- Outcome
- Client-side signing, multi-chain
05 · WalletPro
Keys on device. Clarity in the stack.
A multi-chain wallet with native mobile clients and a Rust API — keys and signing stay on the device.
Challenge
The problem.
Wallet users need an unambiguous trust boundary: what never leaves the device, and what the network is allowed to see.
The product had to support multiple chains without blurring that boundary — and without turning the backend into a custodian.
Approach
How we approached it.
01
Keys on device
Private keys and signing stay on the client. The API serves data and broadcasts signed transactions.
02
Multi-chain clarity
Chain differences are modelled explicitly so the UI stays honest about capabilities and risks.
03
Native mobile experience
Android and iOS clients carry the primary wallet workflows.
04
Rust backend API
A focused API layer for data, broadcast and operational concerns — not key custody.
05
Tested delivery
End-to-end and load paths exercise the critical flows before they meet users.
What we built
What we delivered.
Rust API
Backend services for chain data, broadcast and wallet-adjacent operations — without holding user keys.
Android client
Native Kotlin wallet with on-device signing.
iOS client
Native Swift wallet aligned with the same trust model.
Shared mobile layer
Common mobile conventions so both platforms stay consistent as chains are added.
Security reviews
Audit-oriented documentation of the trust boundary and critical paths.
Infrastructure
Containerised deployment with monitoring for the API surface.
Architecture
System at a glance.
Native clients hold the keys and perform signing. A Rust API provides chain data and forwards already-signed transactions — keeping custody off the server.
Shared mobile conventions and automated checks protect the trust boundary as multi-chain support expands.
Numbers & facts
At a glance.
On device only
Signing
Android · iOS
Clients
Rust API
Backend
Multi-chain
Scope
What we learned
What we take forward.
- 01
The trust boundary has to be visible in the product, not only in the architecture diagram.
- 02
Multi-chain support fails quietly when chain quirks leak into shared UI assumptions — model differences explicitly.
- 03
A non-custodial backend is simpler to reason about — and easier to explain to users and auditors.
Next steps
What’s next.
- Broader chain coverage with the same on-device signing model.
- Clearer in-app education around permissions and transaction previews.
- Continued hardening of broadcast and monitoring paths.
Continue the conversation
