The old flow required 7−9 fragmented steps and relied heavily on manual actions.
The new flow was rebuilt around a single, predictable entry point — Transfer — and a clear linear sequence:
FROM → TO → Asset → Amount → Confirmation
This structure removed unnecessary decisions, reduced the chance of network-selection errors, and made the scenario easy to understand from the first screen.
I adapted the flow for two environments — the mobile app and Telegram Mini App.
Despite UI differences, the logic, navigation, and step order remained identical. This ensured
a stable, predictable experience across both platforms.
Multi-platform: Mobile + TMA
During internal testing, it became clear that the new step structure helped users progress through the flow with fewer mistakes and less confusion.
QA also reported significantly fewer dead-end scenarios and fewer cases where users could get stuck without a clear next action.
Simplify and speed up "self-transfer" between user wallets, remove manual steps, and introduce early validation for networks, balances, and restrictions.
The new flow needed to reduce the number of actions and make the scenario safe — especially for newcomers who don’t fully understand networks.
As a Product Designer, I worked with the CPO, product design lead, art director, product managers, developers, and QA.
Every decision went through product calls, design critiques, and design reviews. Alongside feature delivery, I helped maintain design-system consistency together with the rest of the design team.
We delivered a structured, safe, and predictable transfer flow that reduced steps, removed manual operations, and made wallet-to-wallet transfers understandable from the first screen. Early validation reduced the number of mistakes, and skeleton screens improved perceived speed and interface clarity.
In testing, early validation significantly reduced network-selection mistakes and removed most dead-end scenarios. Based on support patterns and QA feedback, the new flow was expected to decrease repeated attempts and clarifying questions after release.
The UX documentation included:
— a constraints summary describing supported networks and tokens,
— a transition map for 20+ screens,
— an error-handling specification,
— an interactive prototype.
The flow passed internal checks by development and QA and was ready for release.
To improve perceived speed and ensure visual stability, I designed 50+ skeleton screens. Skeletons replaced blur-based empty states and helped unify interaction across platforms.
All visual logic was synchronized with the design system through regular reviews with designers and the art director.
I started with a revision of the existing flow and support tickets — users often confused networks and attempted transfers across incompatible blockchains. A common case was mixing up identically named tokens like USDT (ERC20) and USDT (BEP20), overlooking the network difference.
To identify reliable UX patterns, I ran a competitor analysis of 20+ products (Binance, Crypto.com, MEXC, Bybit, Trust Wallet). This helped define early-validation rules, filtering logic, and a predictable step structure.
Alongside qualitative research, I evaluated core UX signals during design and testing — error-prone steps, repeated attempts, and major support themes. These insights shaped the structure of the new flow and informed the early-validation logic.
The flow had to reflect real technical constraints:
— incompatible networks (e.g., ERC20 → BSC),
— unavailable tokens,
— insufficient balance to cover gas fees,
— KYC requirements.
The logic also had to remain identical across Mobile and TMA so users wouldn’t face different rules on different platforms.
End-to-end design of a transfer flow for a 6M+ user crypto wallet, turning a fragmented manual journey into a single predictable scenario. The flow was built on support data, error audits, and a full set of UX documentation.
Product Designer, Design Team
Crypto Wallet, Mobile App
A crypto wallet where users manage both CeFi and DeFi balances.
The original transfer flow was stitched together from separate fragments: users had to copy the wallet address manually, return to the main screen, navigate to the Send section, paste the address, pick the network, verify network compatibility, check the balance for gas fees — only then could they send the transaction.