Skip to content
Andrew Concepcion
DELIVERY DOSSIER portfolio 5 min read 6 sections

Bitcoin.com Wallet: Shipping Multichain Android Systems

A public-safe account of my Android work across multichain rewards, transaction replacement, wallet migration, swaps, shared Rust, startup performance, and release reliability.

RSS Return to portfolio
Bitcoin.com Wallet Android multichain portfolio screen
Official Bitcoin.com Wallet Android app screen from Google Play
Authored by Andrew Concepcion DELIVERY DOSSIER
#bitcoin.com_wallet#android#fintech#multichain#rust#work
[delivery dossier] 6 sections

The delivery boundary was bigger than one screen

At Bitcoin.com, I work on the Android wallet while following features through shared code, service contracts, local state, observability, and release behavior. The product is a self-custody wallet, so a polished interface is only the visible end of a chain of decisions about assets, networks, signing, precision, migration, and failure recovery.

My work has included the first end-to-end Android implementation of a multichain rewards platform, reward-backed crypto market predictions, Bitcoin replace-by-fee, an in-app move from single-chain to multichain wallets, staking and liquidity-reward pool modernization, provider-aware swaps, recurring-buy reminders, shared Rust services through UniFFI, startup profiling, and Android release hardening.

Rewards had to preserve wallet context

I led the Android delivery of a server-driven rewards experience that crossed quests, wallet linking, multiple networks, asset balances, and claim results. The hard part was not drawing a list of activities. It was preserving enough wallet and network context for each step to remain correct when a user changed accounts, returned from another flow, or received a delayed result.

I kept server-owned campaign content separate from wallet-owned state and made result handling explicit rather than optimistic. That same discipline carried into crypto market predictions, where reward eligibility and price inputs had to remain precise and explainable across the user journey.

Transaction tools needed narrow guardrails

I co-built Bitcoin replace-by-fee on Android. A replacement transaction is useful when an earlier Bitcoin transaction is taking too long, but it cannot be treated like an ordinary resend. The app has to identify an eligible transaction, preserve the correct spend context, communicate the fee change, and surface the resulting transaction without implying a guarantee about network confirmation.

I also led the Android path that moved eligible users from single-chain wallets into a multichain model. Migration work is product work and data work at the same time: existing users need continuity, new identifiers need to map to the right assets and networks, and interruption must not leave the interface claiming more progress than the underlying state can support.

Shared code still required platform judgment

I moved selected services into a shared Rust core exposed to mobile through UniFFI. The goal was to share behavior that genuinely belonged in one core while keeping lifecycle, presentation, and platform integration native. I worked across that boundary rather than assuming a shared implementation automatically removed Android-specific risk.

The same principle guided provider-aware swaps, staking and liquidity-reward pool reads, buy and sell paths, and recurring-buy reminders: represent the domain once where that was safe, then keep user-facing state and recovery explicit on Android.

Verification extended to startup and release behavior

I profiled startup, traced regressions across module and dependency boundaries, and worked on release hardening when a change was correct in source but fragile in the assembled app. For transaction and balance-facing work, I separated compilation, automated checks, runtime behavior, service responses, and release evidence instead of treating one green signal as proof of all five.

The outcome is not one isolated feature. It is a body of Android work that connects self-custody product decisions to multichain data, shared systems, and the release path users actually receive.

Public evidence and confidentiality boundary

The public Google Play listing identifies the production Bitcoin.com Wallet and lists more than ten million downloads. This case study describes my responsibilities and shipped product areas at a public-safe level. It intentionally omits private repository references, internal service names and addresses, account data, ticket identifiers, and unverified impact metrics.