Challenge
Managing money gets far more complex when fiat and crypto live in the same product — different balances, currencies, methods, networks, fees, processing times, and transaction states.
Making fiat and crypto easier to manage in one place.
An end-to-end mobile financial experience that enables users to manage balances, deposit, withdraw, and convert across fiat and cryptocurrencies through one clear and consistent experience.
Managing money gets far more complex when fiat and crypto live in the same product — different balances, currencies, methods, networks, fees, processing times, and transaction states.
A unified mobile experience built around four core actions — manage, deposit, withdraw, convert — where the interaction model stays familiar and asset-specific detail appears only when it matters.
Complex financial actions came together in one consistent framework, making it easier to move between fiat and crypto without learning a new pattern for every transaction type.
Managing money becomes significantly more complex when fiat and cryptocurrencies exist within the same product. Users need to understand different balances, currencies, transaction methods, networks, fees, processing times, and transaction states — while still performing everyday financial actions confidently.
The product was designed as a unified mobile experience where users could manage both fiat and crypto assets, deposit and withdraw funds, convert currencies, and track transactions without navigating separate financial experiences. My role was to shape the end-to-end product experience and establish interaction patterns that could work consistently across currencies and transaction types.
Rather than designing each transaction type in isolation, I built the experience around four core actions — manage, deposit, withdraw, and convert — sharing a single interaction model: choose an action and currency, provide details, review, confirm, and track.
The interface stays consistent where possible and different only where necessary, surfacing asset-specific requirements like networks, wallet addresses, and bank details when relevant, and always making amounts, rates, and fees clear before anything is confirmed.
The result brought complex financial actions into one consistent framework, making it easier to move between fiat and crypto without learning a different pattern for every transaction — and established reusable components that can support more currencies and capabilities as the product evolves.
A unified mobile financial app where users manage both fiat and crypto assets — deposit, withdraw, convert, and track transactions — without switching between separate financial experiences.
Getting the shared model right meant users could move between fiat and crypto confidently, and the product could grow to support new currencies and capabilities without redesigning every flow.
People who hold both fiat and cryptocurrencies and want to handle everyday financial actions in one place, without relearning the product each time they switch between currencies.
Most products treated fiat and crypto separately — crypto-first tools felt technical, while fiat finance apps offered little crypto support. Few brought both into one coherent set of everyday financial actions.
How might we make managing fiat and crypto feel like one coherent financial experience without hiding the important differences between them?
Discovery focused on how people actually manage money across fiat and crypto — how they read balances, what they need before depositing or withdrawing, where the two mental models diverge, and how they interpret rates, fees, and transaction states. I paired stakeholder alignment with user conversations, a scan of comparable financial apps, and a review of the existing experience, then distilled everything into a few decisions that shaped the product.
Conversations across product, compliance, and support centered on one question: how to bring fiat and crypto into a single app without making either feel foreign.
Users shouldn't need to learn a different app just because they're moving crypto instead of dollars.
The moment people can't tell what a transaction is doing, they contact us.
Sessions with people who hold both fiat and crypto showed they think in actions — deposit, withdraw, convert, track — not in financial infrastructure.
I just want to see everything I have in one place, then move it.
Before I confirm, I want to know exactly what I'm sending and what I'll get.
Users lead with deposit, withdraw, convert, and track — not the underlying rails
Consistent patterns reduced what users had to relearn between currencies
Networks, addresses, and bank details still mattered when relevant
I looked at how comparable financial and crypto apps handle multi-currency balances, transfers, and conversion.
Few products treated fiat and crypto as one coherent set of everyday financial actions.
Reviewing the existing experience highlighted where multi-currency complexity created hesitation.
Mapping the deposit, withdraw, and convert journeys showed where confidence dipped across currencies.
The strategy was to build a consistent product framework around four core actions — manage, deposit, withdraw, and convert. The underlying requirements change depending on the asset, but the overall interaction model stays familiar: consistent where possible, different where necessary, and always clear before commitment.
Keep navigation, hierarchy, confirmation patterns, and transaction states familiar across currencies
Surface asset-specific requirements — networks, wallet addresses, bank details, processing information — only when relevant
Before any action is confirmed, communicate amounts, destinations, rates, fees, and expected outcomes
Work was sequenced around the shared transaction framework — establishing the common pattern first, then layering the asset-specific requirements onto it.
Instead of designing fiat deposit, crypto deposit, fiat withdrawal, crypto withdrawal, and conversion as separate features, I looked for the shared structure between them. The common pattern — choose action, choose currency, provide transaction details, review, confirm, track status — became the backbone, with asset-specific information introduced only where required.
Studied how people manage fiat and crypto today and where the two mental models diverge.
Reframed the brief from 'add more financial features' to 'make fiat and crypto feel like one coherent experience.'
Looked for one reusable transaction pattern that could serve every action.
Built the flows at rising fidelity so the shared framework could be felt across currencies.
Pressure-tested the framework where fiat and crypto requirements differ most.
Refined the moments of doubt and hardened the shared patterns for scale.
The product centers on four journeys from a single home — deposit, withdraw, convert, and activity. Each follows the same backbone: choose an action and currency, provide details, review, confirm, and track. The flow branches only where fiat and crypto genuinely differ, then rejoins the shared path.
Users start from a single view of fiat and crypto balances and enter deposit, withdraw, or convert from the same place.
The flow branches only where assets genuinely differ — bank details for fiat, network and wallet address for crypto — then rejoins the shared path.
Every journey converges on a review step that confirms amounts, rates, and fees before the action is confirmed and tracked in activity.
The shipped app brings fiat and crypto into one consistent framework. Five moments show how the shared model holds across managing balances, depositing, withdrawing, converting, and understanding what happened afterward.
Give users a single starting point for understanding and managing their funds — total balance, individual currencies, fiat and crypto assets, the primary financial actions, and recent activity.
Fiat and crypto balances sit in one view with All / Crypto / Fiat toggles, each currency shows its amount alongside an approximate value, and the primary actions stay reachable from a persistent bottom navigation.
Users get one clear place to read what they hold across currencies before choosing to deposit, withdraw, or convert.
Keep the overall deposit journey familiar while the interface adapts to each asset — bank or payment method, account details and payment instructions for fiat; asset, network, wallet address, QR code and network warnings for crypto.
One deposit flow underpins every asset. For crypto it surfaces the asset and network, the wallet address, a QR code, and a network warning; consistency does not mean making fiat and crypto identical — the framework stays familiar while asset-specific information appears when required.
Users deposit with confidence across fiat and crypto because the right details show up in context without changing how the flow feels.
Help users understand exactly where their funds are going and what will happen before they confirm — currency, destination, amount, available balance, fees, and the expected amount received.
The review step leads with what's being sent and received, shows the network fee and the final recipient amount before confirmation rather than after, and keeps asset-specific detail — network and destination — visible so there are no surprises.
The review step gives users an opportunity to verify important transaction information before any funds are moved to a bank account or crypto wallet.
Make the relationship between what users give and what they receive immediately understandable — the From currency and amount, and the To currency with its expected amount.
Conversion leads with the From and To currencies and amounts, then a review surfaces the amount being converted, the amount received, and the estimated exchange rate before the action is confirmed.
The hierarchy lets users quickly answer what they are converting, what they will receive, and at what rate — before they commit to the conversion.
Keep financial actions understandable after users tap Confirm, through an Activity view and transaction details that show what happened to their money after a deposit, withdrawal, or conversion.
Activity groups transactions by date with Status, Type, Currency and Date filters, and each entry carries a state such as processing, completed, failed, or pending; opening a transaction reveals its details — type, currency, amount, status, date and time, fees, destination, and transaction or reference ID.
Clear states and accessible detail give users visibility into every transaction across both fiat and crypto once it is underway or complete.
A reusable component system helped maintain familiar interaction patterns across balances, deposits, withdrawals, conversions, and transaction states while allowing the interface to adapt to the requirements of different fiat and crypto assets.
Rather than lean on invented metrics, the clearest outcome was structural: previously complex financial actions now share one consistent mobile framework, making it easier to move between fiat and crypto without relearning the product for every transaction type.
The hardest part wasn't designing individual financial features — it was deciding where fiat and crypto should behave the same and where their differences needed to stay visible.
Fiat and crypto genuinely behave differently. The work was deciding where a shared pattern helped and where forcing sameness would hide something users needed — networks, addresses, bank details, fees, and processing times.
Abstracting technical detail risked obscuring things that affect real decisions. The trade-off was to keep asset-specific information available and surface it exactly when it mattered.