Keeper
Keeper wallet app icon

Waves Exchange / Keeper Wallet

Clear crypto transfers before confirmation

Role
Lead Product Designer
Result
Decreased drop-off70% → 30%
Keeper Send screen on mobile: choose asset, recipient, and network

On the Send screen, 70% of people dropped off: transfers were hard to read and easy to get wrong. I rebuilt Send as a clear, network-aware flow that people could understand before committing funds, and drop-off fell from 70% to 30%. As Lead Product Designer I owned the direction and drove it end to end, with engineers and PMs.

Context

In a self-custody wallet you hold your own money. Transfers cannot be undone, a wrong send is gone for good, and one Send screen has to handle several networks, on-chain sends and a cross-chain bridge, both tokens and NFTs, and different ways to address a payment.

In practice that meant three networks: Waves, an Ethereum-style Waves network, and Ethereum reached over a cross-chain bridge from another Waves startup. So a send was not always on-chain within one network. Some transfers crossed chains and carried their own risks and states. On top of that you could send tokens or NFTs to a plain address, a .waves name, or a saved contact that held two or three addresses, and pay the Waves fee in a partner token of your choice.

Problem

People started a transfer, but 70% dropped off on the Send screen. The mobile Send flow existed, but it was a quick port of the old browser-extension form: outdated, never rethought for the app, and full of real problems.

  • The transaction was hard to read, with no guidance to the next step
  • The copy made people expect an instant send, with no confirmation
  • The core issues were in the addresses and network validation

This came straight from Amplitude and community feedback, where the confusion showed up in people's own words.

Unexpected action Old Send WAVES screen where the hierarchy of amount, recipient, and attachment is unclear Old Keeper transaction screen with an unclear amount and Reject and Approve buttons Unclear hierarchy

Solution

A Send flow that adapts to the network. The form branches by destination: a same-family send stays on-chain, while a cross-chain send to Ethereum goes over the bridge and shows the extra steps that involves. I built it mobile first, then brought it to web.

Three decisions carried it:

  • Every transaction reads in plain terms, with the amount, network, and recipient laid out to scan before you commit.
  • A confirmation step turns a blind tap into a decision, and the address and network are validated before anything leaves.
  • The form reshapes per network, so a cross-chain send never hides a step a simpler one would.

The send screens:

Send start: choose an asset, recipient, and network
Send an NFT by name
Send: review the transfer with amount, network, and fee

And the transaction states:

Send succeeded: the result screen with share and explorer actions
Waiting for Send: an NFT transfer pending
Send on web The same flow on desktop, with an inline guide to sending.
Keeper web Send screen with asset, recipient, amount, network, and a how-to-send guide

Flows & edge cases

I mapped the whole flow end to end. One Send screen carried three networks, on-chain and cross-chain, tokens and NFTs, so every branch, state, and transaction type had a defined design before build.

Mobile flow

Entries, the Waves and Ethereum network branches, NFTs, states, and edge cases.

The full mobile Send flow: entries, network branches, NFTs, states, and edge cases

Web flow

The same model on web, from assets and NFTs through results and sending errors.

The web Send flow, with assets, NFTs, results, and errors

Full transaction coverage

Every Waves transaction type, in its confirmation and its history view, from Issue and Transfer to Lease and Invoke, plus edge states like a wrong asset or an unknown sender.

Every Waves transaction type in confirmation and history views, plus edge states
StateDesign response
Wrong recipientImmediate check, supported format, input kept
Network mismatchShow expected vs detected network, and block the send when they differ
FeeA Waves fee you can pay in a partner token of your choice
After sendingClear states, so you know the transfer went through

Impact

Drop-off on the Send screen
70%30%

Drop-off here is the share of people who opened the mobile Send screen and left without completing a transfer. Cutting it from 70% to 30% meant more than twice as many sends went through. Most of what still failed was the blockchain itself, but now each transaction reads clearly and you can reach support right away, and community feedback turned positive.


Insights

Less friction is not always the goal. When money moves, keep people in control and make what is happening clear, so they stay calm.

Interpretation beats raw data. Clear labels and copy did more than restructuring the form.

A confirmation is reassurance, not friction. Guiding the next step is what people were missing.

Account setup and import in Keeper: add account, secret phrase, Ledger over Bluetooth or USB, backup check, and protection with PIN or biometrics

More from Keeper

Send is one part of Keeper. The full project is a self-custody ecosystem: wallet, portfolio manager, swap widget, on-chain names, and the design system behind them.