Case study · Crypto wallet · 2026

Lush.

Less noise, more signal: a multi-chain crypto wallet stripped to its essentials — every state designed, every transition timed.

Self-initiated concept, built solo with AI in about seven hours.

UI / UX conceptInteractive prototypeMotionDesign system
Swap screen: ETH to USDC with route, slippage and fee
Earn screen with a live yield ticker and staking pools
Portfolio home: total balance $87,432.91, chart and four actions
0.4s
to reada balance while you
wait for an Uber
One acid accent#C6FF00
30screens, every state designed
10screens wired into one prototype
6motion patterns, one rhythm
1acid accent, nothing else
0decoration
~7 hsolo + AI, Claude Code
20-second summaryConcept
What
A multi-chain crypto wallet stripped to its essentials: an iOS concept with a live prototype.
Why
Wallets compete on colour; people need the number: how much do I have, and is it safe?
My role
UI/UX end to end, motion and design system, solo with AI (self-initiated).
Result
30 screens · 10 wired into one prototype · ~7 h solo + AI
Explore the case ↓
Overview

Crypto wallets compete on colour. Lush competes on the number — how much do I have, and is it safe? Black, white, one acid accent, tabular numerals everywhere.

FinTechIndustry2026Year30ScreensiOS conceptPlatform
RoleUI / UX · concept, end to end
Scope30 screens · 10 interactive · 6 motion patterns · design system
StackHTML · CSS · JS — one shipped artifact
TeamBuilt solo with AI · ~7 hours · Claude Code
StatusSelf-initiated Lab project · speculative
At a glance

Thirty screens. One accent. Zero noise.

Portfolio, send, receive, swap, earn, markets, settings — and every seam in between.

30
screensOnboarding · Send · Swap · Earn
Markets · Settings · Edges
Approach

Money is serious. Reduce noise to amplify trust.

Problem

Crypto wallets compete on colour.

Gradients, mascots, badges. Users want two answers: how much, and is it safe.

ThesisThe number is the product.

Strip everything that isn’t the number. Glanceable in 0.4 seconds.

Three rules, no exceptions
  • 01One accent per screen — active or positive or focused, never all three.
  • 02Tabular numerals on every balance — when crypto ticks, layout doesn’t.
  • 03Elevation through opacity, not shadows or borders.

What didn’t make it

Holographic gradients · mascots and 3D coins · achievement badges · multi-colour asset coding · pull-to-refresh theatre.

Read the full story

Problem. Crypto wallets compete on colour. Gradients, mascots, gamified badges. The user doesn’t want spectacle — they want two things: how much do I have, and is it safe.

Thesis. The number is the product. Strip everything that isn’t the number. Black, white, one acid accent. Tabular numerals everywhere so the layout never shifts. Glanceable in 0.4 seconds — the time it takes to check a balance while waiting for an Uber.

Principles. One accent per screen — active or positive or focused, never all three at once. Tabular numerals on every balance — when crypto ticks, layout doesn’t. Elevation through opacity, not shadows or borders — surfaces breathe, not stack.

Rejected. Multi-stop holographic gradients; mascot illustrations and 3D coin renders; gamified achievement badges; multi-colour category coding for assets; pull-to-refresh haptic theatre.

Process

Seven hours. Five phases, in that order.

Research, flows, wireframes, hi-fi, prototype — from public pain to a single shipped HTML artifact.

Hour 0–1Research + brief4 wallets, 90 App Store reviews, Reddit threads.
Hour 1–2UX flows4 journeys, 30 nodes. One arrow = one decision.
Hour 2–3Wireframes30 greyscale frames, 0 colours.
Hour 3–5Hi-fi screens30 screens, 4 states each, one pass.
Hour 5–7Prototype + motion11 wired, 6 motion patterns.
Tap Send›Pick recipient›Enter amount›Review›Success

Send flow · UX map — happy path, 5 nodes, 4 user decisions.

Phase by phase
  • Hour 0–1 · Research + brief. Audit of public pain: App Store reviews of 4 wallets (90 reviews), Reddit threads on getting lost in onboarding. Self-set brief: the simplest path from $0 to the first transaction.
  • Hour 1–2 · UX flows. Four journeys — onboard, send, swap, earn. Every fork branched (success, error, empty, loading). One arrow = one user decision. 4 flows · 30 nodes.
  • Hour 2–3 · Wireframes. Greyscale low-fi: no type, no icons, no real numbers — just hierarchy and information density. If it works in dashed boxes, it works.
  • Hour 3–5 · Hi-fi screens. Tokens applied (1 accent, 2 semantic, 5 neutral), a type system of 3 families, all states in one pass — empty, loading, error, success.
  • Hour 5–7 · Prototype + motion. 11 screens wired click-by-click, 6 motion patterns specified (counter, pulse, skeleton, success, sheet, page), shipped as a single HTML artifact.

Send flow: tap Send on portfolio → pick a recipient (contact / paste / QR) → enter amount (numpad + chips) → review (amount · fee · total) → success (hash · receipt).

Low-fi — the shape firstHi-fi — one accent
Low-fi wireframe of the portfolio: balance, chart, four actions, asset rows
Low-fi wireframe of Send amount: numpad and percentage chips
Hi-fi portfolio
Hi-fi Send amount with numpad

If it works in dashed boxes, it works. 4 frames, pre-colour, pre-type.

Prototype

Click anywhere.

Ten screens, fully wired: tap the balance, swap a token, send to a contact. The same single accent guides every action.

Portfolio
PortfolioBalance is hero; four actions one tap away.
Send: pick a recipient
RecipientPaste, scan QR or pick a contact.
Send: amount
AmountNumpad-first, % chips, fiat flip.
Send: review
ConfirmAmount, fee, total — the truth.
Send: success
SuccessDrawn check, hash, two next steps.
Swap idle

Swap · idleTwo cards, a rotating button; route, slippage and impact above the CTA.

Swap token select sheet

Token selectBottom sheet: search, quick picks, sorted list.

Swap success

Swapped.The same drawn check, the pair as proof.

11
Try itthe wired prototype
opens in a new tab
Every prototype screen
  • Portfolio · home — balance is hero, the chart is glanceable, four primary actions one tap away.
  • Asset · Bitcoin — a focused chart, key stats in two columns, transactions below.
  • Send · recipient — paste, scan QR, or pick a contact; validation happens before you can continue.
  • Send · amount — numpad-first input, quick percentage chips and a fiat preview that flips on tap.
  • Send · confirm — recipient, amount, network fee, total — the truth, in one screen.
  • Send · success — a drawn checkmark, a transaction hash, two next-actions.
  • Receive · QR — network selector at top, address with copy and share below.
  • Swap · idle — two cards stacked, a rotating button between; route, slippage and impact above the CTA.
  • Swap · token select — bottom sheet with search, quick-pick chips and a sorted full list.
  • Swap · success — the same drawn checkmark, this time with the swap pair as proof.
  • Earn · overview — a live ticker turns yield into a heartbeat; featured pools, then your active positions.
All states · onboarding

Every screen, every state.

The seams between flows, not just the headlines — starting with five onboarding screens from welcome to passcode.

01 · Welcome
Welcome: Less noise. More signal.
02 · Create or import
Choose your starting point: create or import
03 · Seed phrase
Secret recovery phrase, 12 words
04 · Verify
Verify the seed: tap the words in order
05 · Passcode
Set a 6-digit passcode
States & edges

Empty, loading, failed, short. Designed, not left.

Empty wallet: fund your wallet
Loading skeleton
Transaction failed: out of gas
Insufficient balance warning on swap
Activity feed with transactions and alerts
06 · Empty wallet07 · Loading09 · Failed transaction10 · Insufficient balance08 · Activity
Swap, earn, markets

The detail behind every headline screen.

Pending transactions, slippage, staking, networks — then markets, token detail, settings and security.

11 · Pending TX
Pending transaction confirming
12 · Slippage
Transaction settings: slippage, deadline, gas
13 · Pool
Pool detail: ETH 2.0 staking, 4.5% APY
14 · Stake
Stake input
15 · Staked
Stake success
16 · Network
Receive: choose network
17 · Markets
Markets list
18 · Token
Token detail with chart
19 · Settings
Settings menu
20 · Security
Security: wallet protected, 3 of 4 measures
Motion

Six patterns, one rhythm.

Every motion has a function: confirm, locate, connect, predict. 200–320 ms on cubic-bezier(0.4, 0, 0.2, 1).

80 ms

Tabular ticker

Numbers shift; the layout doesn’t.

2 s

Live pulse

Two rings mark anything real-time.

1.6 s

Skeleton shimmer

Reserves space while data lands.

700 + 400

Drawn checkmark

Ring, then check. Earned, not given.

320 ms

Bottom sheet

The iOS curve for every modal.

8 px

Fade + slide

Between every flow step.

Motion spec
  • 01 · Counter — tabular ticker. Tabular numerals + 80 ms updates. Numbers shift, the layout doesn’t. Used on every balance and yield surface.
  • 02 · Pulse — live indicator. Two staggered rings, 2 s loop. Marks anything that updates in real time — balance, yield, gas.
  • 03 · Skeleton — loading shimmer. 1.6 s gradient sweep over surface-1. Reserves space, keeps the layout calm while data lands.
  • 04 · Success — drawn checkmark. Ring draws first (700 ms), check follows (400 ms, 0.6 s delay). Earned, not given.
  • 05 · Bottom sheet — modal slide-up. 320 ms cubic-bezier(0.4, 0, 0.2, 1) — the iOS curve. Token select, network pick, settings — all use this.
  • 06 · Page transition — fade + slide. Outgoing screen translates 8 px left at 0% opacity, incoming reverses. 320 ms. Used between every flow step.
Design system

The system, made strict.

One accent, two functional colours, neutrals, three families. Build one screen — get a hundred consistent.

Colour tokens · 1 + 2 + 5
BG#0A0A0B
Surface 14% white
Surface 27% white
Border16% white
Text#FFFFFF
Accent#C6FF00
Success#5BD68A
Danger#F2566B
Type · 3 families
$87k
.91

Space Grotesk for display and headings, Inter 14/22 for body, JetBrains Mono for the live ticker.

Buttons · 4 variants
Confirm SwapConnect WalletView HistoryAdd Network

Primary · accent, secondary · surface, outline · mono, ghost · dashed.

Surfaces · 3 elevations
  1. 1Base cardbg · neutral
  2. 2Glass cardblur(20) · 7% white
  3. 3Accent panelfeatured · attention
Type specimen
  • Display · Space Grotesk 500 · −0.03em — “$87,432.91”.
  • Heading · Space Grotesk 600 — “Less noise. More signal.”
  • Body · Inter 400 · 14/22 — glanceable, always tabular, never decorative — designed to be read in 0.4 seconds while waiting for an Uber.
  • Mono · JetBrains Mono · ticker — “+$0.0084 / sec · LIVE”.

30 screens · 1 accent · 0 decoration.

Receive with QR and address
Bitcoin asset detail

More signal.

Need a similar build for your team? Lush took about seven hours, solo + AI — from research to a shipped prototype.

Questions

Do you design crypto wallet interfaces?

Yes. Lush is a multi-chain wallet concept: 30 screens, an interactive prototype and a full design system, made in about 7 hours with AI.

Can you work on an existing fintech product?

Yes: audits, redesigns of key flows and design systems, with the UI shipped to code if needed.

Building a wallet
or fintech app?

I design crypto and fintech interfaces that make balances, fees and risky actions clear before the user signs.

See all casesBook a free call