Ready: Making crypto feel clearer, safer, and easier to use

Senior Designer

Sep 2025 -

Ready is a crypto finance company building products that help people access, use, and grow their digital assets. Formerly Argent, Ready is known for its self-custody wallet experience, strong security, and products that make crypto more useful in everyday financial contexts.

Ready X is Ready’s crypto-native wallet and trading product. It helps users swap tokens, stake assets, invest in DeFi protocols, earn rewards, and trade digital assets. I worked on the Ready X product experience, focusing on how to make complex crypto actions feel clearer, more trustworthy, and easier to navigate.

Responsibilty

- Senior Product Designer
- Micro-interactions
- Motion/Animation

- Colour theory
- System consistency
- Marketing
- Pitch decks
- Website

Ready is a crypto finance company building products that help people access, use, and grow their digital assets. Formerly Argent, Ready is known for its self-custody wallet experience, strong security, and products that make crypto more useful in everyday financial contexts.

Ready X is Ready’s crypto-native wallet and trading product. It helps users swap tokens, stake assets, invest in DeFi protocols, earn rewards, and trade digital assets. I worked on the Ready X product experience, focusing on how to make complex crypto actions feel clearer, more trustworthy, and easier to navigate.

Responsibilty

- Senior Product Designer
- Micro-interactions
- Motion/Animation

- Colour theory
- System consistency
- Marketing
- Pitch decks
- Website

9:41

Vibe coded a new onboarding flow using Claude.

Contribution

Crypto products carry a high burden of clarity. Users are often making fast, high-stakes decisions involving money, assets, networks, fees, and risk. The challenge was to make Ready X feel powerful enough for crypto-native users while still clear, trustworthy, and easy to navigate.

  • Help users understand what they own and what they can do next.

  • Make trading, staking, and wallet actions feel more controlled.

  • Create consistent patterns across complex crypto flows.

Tools

- Figma
- Rive

- Lottie
- Claude

- Adobe
- After Effects
- Webflow

9:41
🐟
Fab FishMainnet
Activity
In progress
2
Deposit
Vesu
+1 vETH-1 ETH
Swap
Jediswap
+1 DAI-0.05 ETH
Today
Send
To Account 1
-0.0002 ETH$34.82
Receive
From 0x1234...abcd
+50 DAI$50.16
Add liquidity
Jediswap
+0.0015 JEDI-P-2 assets
Withdraw
Vesu
+1 ETH-1 vETH
Send
To 0xd92e...44fa
-100 USDC-$100.00
Assets
Invest
Activity
Browser
9:41
Ethereum
ETH
$1814.09
-0.32%
 
1D
1W
1M
1Y
All
Buy
Swap
Stake
Send
Overview
Activity
Your balance
$2,034.78
Popularity
#2
FDV
$239.4B-0.32%
24hr volume
$18.8B
9:41
🐟
Fab FishMainnet
SpotPerps
$8,128.47
0x9f3ca...7e21b
Swap
Fund
Send
Portfolio
Trade Perps
Start trading Perpetual Futures with up to 40x leverage
CoinsNFTsDeFi
Ethereum
1.0213 ETH
$2,034.78+3.98%
Starknet
108 STRK
$108.06-3.98%
USD Coin
450 USDC
$451.33+0.01%
B
Wrapped Bitcoin
0.0380 WBTC
$2,011.10-1.24%
Lido wstETH
0.8105 WSTETH
$2,034.78+3.98%
Assets
Invest
Activity
Browser
9:41
🐟
Fab FishMainnet
Invest
Bitcoin Staking
15.4% APY

Stake your Bitcoin, earn rewards, and secure Starknet.

Stake now
Stake STRK (Native)
🛡️ Ready Wallet
+15%$5M TVL
Stake STRK (Liquid)
Endur
+15%$5M TVL
Stake ETH (Liquid)
🔵 Lido
+11.25%250k TVL
Assets
Invest
Activity
Browser

Float like a butterfly, sting like a bee.

This is how I like to work: fast, adaptive, and close to the product. I enjoy learning new domains quickly, understanding technical constraints, and finding design improvements that help teams move without creating unnecessary drag.

At Ready X, that meant working with the app the team already had. Rather than proposing a heavy redesign, I looked for practical ways to raise the quality of the experience through small, reusable improvements that developers could implement quickly. Vibe coding became the easiest way to go fast!

That mindset shaped one of my first pieces of work: a lightweight micro-interaction system for the app’s core components.

This is how I like to work: fast, adaptive, and close to the product. I enjoy learning new domains quickly, understanding technical constraints, and finding design improvements that help teams move without creating unnecessary drag.

At Ready X, that meant working with the app the team already had. Rather than proposing a heavy redesign, I looked for practical ways to raise the quality of the experience through small, reusable improvements that developers could implement quickly. Vibe coding became the easiest way to go fast!

That mindset shaped one of my first pieces of work: a lightweight micro-interaction system for the app’s core components.

+50%

In development speed (est)

+20%

Growth in efficency (est)

+50%

In development speed (est)

+20%

Growth in efficency (est)

Projects

Given the environment of a fast-paced startup, my time at Ready involved a variety of large-scale projects spanning smartphone applications, desktop, plugins and social media.

Clickable prototype of major screens

9:41
🐟
Fab FishMainnet
Spot
Perps
$8,128.47
0x9f3ca...7e21b
Swap
Fund
Send
Portfolio
Trade Perps
Start trading Perpetual Futures with up to 40x leverage
CoinsNFTsDeFi
Ethereum
1.0213 ETH
$2,034.78+3.98%
Starknet
108 STRK
$108.06-3.98%
USD Coin
450 USDC
$451.33+0.01%
B
Wrapped Bitcoin
0.0380 WBTC
$2,011.10-1.24%
Lido wstETH
0.8105 WSTETH
$2,034.78+3.98%

Micro-interactions

Raising the product feel, quickly.

Ready X was built in React, which meant the app did not have the native micro-interaction patterns users often expect from Swift-based iOS experiences. As a result, parts of the product felt flat and less responsive.

I created a lightweight micro-interaction system for core app components, giving the team simple, reusable patterns for transitions, component states, and feedback moments. The system was designed to be easy for developers to implement while improving the overall product feel.

Ready X was built in React, which meant the app did not have the native micro-interaction patterns users often expect from Swift-based iOS experiences. As a result, parts of the product felt flat and less responsive.

I created a lightweight micro-interaction system for core app components, giving the team simple, reusable patterns for transitions, component states, and feedback moments. The system was designed to be easy for developers to implement while improving the overall product feel.

Motion System

Motion Patterns

Interactive reference for every motion pattern. All values are live — press, tap, and trigger to preview the exact tokens used across the app.

motion.Timing token
ease.Easing token
spring.Spring token
haptic.Haptic token

How the handoff worked

① Designer names the intent
Durationmotion.base
Easingease.out.snappy
Haptichaptic.success
resolves to
② Token resolves to a value
Duration250ms
Easingcubic-bezier(0.16, 1, 0.3, 1)
Haptic.success
dev writes
③ Dev writes one line
let anim = UIViewPropertyAnimator
duration: Tokens.motion.base
curve: Tokens.ease.outSnappy

Self-documenting. No magic numbers. No guesswork.

Design → Dev

Motion and haptics added to an existing app — no rebuild, no disruption.

Rather than redlining every interaction individually, I defined the system as tokens. Developers received one reference doc — token name, resolved value, and usage rule. No ambiguity, no back-and-forth, no follow-up calls.

9
Motion patterns
fully specced
4
Token types
timing · easing · spring · haptic
1
Handoff doc
single source of truth
Zero
Follow-up questions
from engineering

Token Reference

⏱ Timing tokens
motion.fast150msTap feedback, small targets
motion.base250msToast enter, bottom sheet enter
motion.slow300msLarge surfaces, section expand
motion.springLong700msPress down spring
〜 Easing tokens
ease.out.standard
cubic-bezier(0.2, 0.8, 0.2, 1)
Expand, slide in, general entry
ease.out.snappy
cubic-bezier(0.16, 1, 0.3, 1)
Success toast, system level win
ease.in.standard
cubic-bezier(0.4, 0, 1, 1)
Dismiss, fade out
spring.press
stiffness 776.9, damping 17.14
Press down, button feedback

Pattern 1

Press Feedback

Live demo

Buy Bitcoin
Swap
Buy
Swap
Stake
Send
Sent Bitcoin
Today · 9:41 AM
−$1,151.43
0.01 BTC
Received ETH
Yesterday · 4:12 PM
+$892.00
0.312 ETH
Swapped BTC→ETH
Mon · 2:30 PM
$3,200.00
0.028 BTC

Press and hold any element — spring.press releases on finger up

What dev received

FieldSpec
When to use
Buttons, list rows, cards, pills, poll options
Trigger
While pressing
Transform
Scale 1.000 → 0.985, anchor center
Duration token
motion.springLong
Easing token
spring.press
Opacity
No change
Release
Spring back to 1.000 on finger up
Haptic default
haptic.light
Haptic confident
haptic.medium
Build notes
Animate transform only. No layout shift. No shadow change.

Pattern 2

Surface Entry

Live demo

Send 0.01 BTC
Bitcoin sent
0.01 BTC · $1,151.43
View

Slides in from Y+24 · holds 1500ms · exits with ease.in.standard

What dev received

FieldSpec
When to use
Success feedback, toast, banners, confirmation sheets
Trigger
After success event
Enter position
Translate Y 24px → 0px
Enter opacity
0 → 1
Enter duration
motion.base
Enter easing
ease.out.snappy
Hold time
1500ms (toast)
Exit duration
motion.base
Exit easing
ease.in.standard
Haptic token
haptic.success
Build notes
Toast stays interactive. Promo banners do not auto-dismiss.

Pattern 3

Expand / Collapse

Live demo

💼
Wallets3
Opulent Octopus · $12,340.00
Savings Vault · $8,900.00
DeFi Wallet · $3,210.00
🌀
DeFi Positions2
Uniswap LP BTC/ETH · $4,500.00
Aave Supply · $2,200.00
🖼
Collectibles4
Bored Ape #7823
CryptoPunk #4501
Azuki #2211
Doodle #8823

Only two states: collapsed or fully expanded — no mid states

What dev received

FieldSpec
When to use
Disclosure rows, account module, accordion lists
Trigger
On tap release
Transform
Inner content scale 1.000 → 0.985 on tap
Expand duration
motion.slow
Expand easing
ease.out.standard
Expand haptic
haptic.light
Collapse behavior
Reverse of expand
Collapse duration
motion.base
Collapse easing
ease.in.standard
Collapse haptic
haptic.none
Build notes
Child rows fade in. Only two legal states.

Pattern 4

Chart Data Reveal

Live demo

$115,143.47
+3.98% today

Switch periods to re-trigger the draw animation

What dev received

FieldSpec
When to use
Token detail screen, portfolio chart, price history
Trigger
On screen mount or period change
Animation
Bezier path draw left → right
Duration
1100ms
Easing
Cubic ease-out (t³)
Area fill
Gradient, opacity 20% → 0%
End indicator
Dot with pulse halo
Period switch
Re-triggers full draw animation
Build notes
Canvas API. No SVG. quadraticCurveTo for smooth curves.

Pattern 5

Skeleton Loading

Live demo

Replay skeleton →

What dev received

FieldSpec
When to use
Any async data — balances, transactions, token prices
Trigger
Immediately on screen mount, before data resolves
Shimmer
Linear gradient sweep, 1.4s infinite
Duration token
motion.slow
Entry easing
ease.out.snappy
Stagger
60ms per row on data arrival
Haptic token
haptic.none
Build notes
Skeleton must match real layout exactly. Never flash empty state.

Pattern 6

Balance Count-up

Live demo

Portfolio value
$0
Bitcoin held
0 BTC
Staking APY
0%
24hr P&L
+0(0%)
Replay count-up →

What dev received

FieldSpec
When to use
Balance reveal on home screen, portfolio total, P&L
Trigger
On screen mount or data load complete
Duration
1200–1600ms (varies by value size)
Easing
Cubic ease-out (t³)
Start value
0
Stagger
120ms between multiple counters
Haptic token
haptic.none
Build notes
Use tabular-nums. Never animate negative values.

Pattern 7

Haptic Visualiser

Live demo

haptic.lightLight · Normal tap, row press
haptic.mediumMedium · Copy, confirm action
haptic.successSuccess · Transaction complete

Tap each to see the intensity difference — rings = haptic weight

What dev received

FieldSpec
When to use
Design review, documentation, handoff
haptic.light
1 ring — row press, button tap, accordion
haptic.medium
2 rings — copy address, poll confirm
haptic.success
3 rings — transaction complete, account funded
haptic.none
No rings — passive content, auto-dismiss
Build notes
Ring count maps to haptic intensity. Use to verify correct token selection during review.

Pattern 8

Success Particle Burst

Live demo

Send 0.5 BTC 🚀
0.5 BTC sent!
$57,571.73 · Confirmed
View

Press fires particles + haptic.success, then toast enters

What dev received

FieldSpec
When to use
High-value success moments — large sends, first purchase
Trigger
On confirmed success event
Particles
48 canvas dots, mixed green + purple + white
Gravity
0.18–0.28px/frame downward pull
Duration
~1400ms fade to transparent
Sequence
Burst fires 180ms before toast enters
Haptic token
haptic.success
Build notes
Canvas overlay, pointer-events none. Only for money moments — never for passive events.

Pattern 9

Screen Navigation

Live demo

9:41
Total balance
$12,340.04
↑ +$487.21 today
B
Bitcoin
BTC
$115,143
+3.98%
E
Ethereum
ETH
$3,812
+1.24%
S
Solana
SOL
$186.40
−0.87%
Tap Bitcoin to navigate →
9:41
Back
Bitcoin
BTC
$115,143.47
↑ +3.98%
Buy
Swap
Send
Popularity#1
Market cap$2.3T
24hr vol$18.8B
entry: ease.out.snappy
·
exit: ease.in.standard

Tap Bitcoin row to navigate · Back to return

What dev received

FieldSpec
When to use
All push navigation between screens
Trigger
On list row tap (asset → token detail)
Entry transform
Translate X 100% → 0
Entry easing
ease.out.snappy
Exit transform
Translate X 0 → −100%
Exit easing
ease.in.standard
Duration token
motion.slow
Back gesture
Reverse — entry easing on return
Build notes
Never scale during nav. Translate only. Both screens animate simultaneously.

This helped make the Ready X experience feel more polished, tactile, and trustworthy, especially important in a crypto product where users need confidence in every interaction.

This helped make the Ready X experience feel more polished, tactile, and trustworthy, especially important in a crypto product where users need confidence in every interaction.

1 day

For developers to implement

3000

Comments on 1st day Twitter

Some small animations

Built in Rive to add some whimsy and fun to the interface.

Clickable icons

Differentiating Ready X without slowing delivery

Visual differentiation through colour

Ready X needed to feel distinct from the main Ready app while still using the same underlying component system.

The challenge was to create a different product feel without slowing development or requiring the team to rebuild components from scratch.

Ready X needed to feel distinct from the main Ready app while still using the same underlying component system.

The challenge was to create a different product feel without slowing development or requiring the team to rebuild components from scratch.

What I did

I created a new colour system that could shift the personality of Ready X quickly across both design and development. Rather than redesigning the interface from the ground up, I used colour strategically to create separation, hierarchy, and a more crypto-native feel while keeping the existing component structure intact.

Because colour theory is one of my strengths, I focused on building a system that was not just visually different, but functional. The palette needed to support contrast, accessibility, interaction states, data-heavy screens, and high-trust financial actions.

Why it mattered

This work allowed Ready X to establish its own identity without creating unnecessary design or engineering overhead. The product needed to feel distinct from the main Ready app, but the team did not have the time or need to rebuild the interface from scratch. By using colour as the primary system-level change, we could shift the product’s personality quickly while continuing to reuse the existing component library.

Colour became a high-leverage design tool. It helped Ready X feel more focused, more crypto-native, and more suited to the behaviours users expected from a wallet and trading experience. It also helped create clearer hierarchy across complex screens, making it easier for users to scan information, understand states, and identify important actions.

Check out this presentation to see the new colour system in action!

Private send

Designing trust into private sends & shielding

Private Send was a high-trust BTC transaction system that supported two related actions: sending private funds to someone else, and shielding a user’s own funds into a private balance.

The challenge was not explaining crypto. It was making the privacy model legible, preserving speed for crypto-native users, and creating the right checkpoints before irreversible actions.

Private Send was a high-trust BTC transaction system that supported two related actions: sending private funds to someone else, and shielding a user’s own funds into a private balance.

The challenge was not explaining crypto. It was making the privacy model legible, preserving speed for crypto-native users, and creating the right checkpoints before irreversible actions.

01

Establish the privacy model

Before users took action, the flow needed to establish what changed when a transaction became private.

The experience clarified what was protected, what remained visible, and what tradeoffs users needed to understand before committing funds.

Asset context

Anchors the action in the correct asset, balance, and wallet state before introducing private transaction options.

Private Send intro

Frames privacy as a distinct transaction mode, setting expectations before setup begins.

Privacy model

Clarifies what metadata is protected, what remains visible, and what tradeoffs the user should understand before committing funds.

02

Support multiple transaction paths

Private Send was not one linear flow. The system needed to support sending to different destination types, shielding funds into a private balance, and unshielding funds back out.

Rather than treating each path as a separate product, I structured the experience around shared patterns: amount entry, fees, review states, confirmation, and transaction details.

Path decision

Routes users based on intent and balance state, avoiding dead ends when private funds are not yet available.

Recipient selection

Keeps outbound recipient choice explicit, reducing address ambiguity in the highest-risk input step.

Shield funds

Supports the self-shielding path, where funds move into the user’s private balance without an external recipient.

Amount entry

Surfaces balance, amount, fee, and total in one decision surface before the user reaches review.

03

Create confidence at commit

The final stages focused on control and verification. Review states gave users a clear checkpoint before action. Confirmation added deliberate friction. Success and transaction details gave users confidence after the transaction was complete.

Review send

Creates a pre-commit checkpoint for recipient, amount, fee, and Private Send status.

Review shield

Confirms source, destination, amount, and fee before funds move into a private balance.

Confirm

Adds deliberate friction at the final moment to prevent accidental sends or shielding actions.

Transaction details

Surfaces balance, amount, fee, and total in one decision surface before the user reaches review.

Explore the full flow

The full Figma board includes the wider transaction system, edge cases, shielding and unshielding paths, recipient setup, review states, and first-time user education.

Micro-interactions

Designing for a multi-account wallet

Account settings in Ready X were not just preferences. They were a control system for identity, access, visibility, and risk across different account types.

The product needed to support standard accounts, smart accounts, multisig accounts, view-only accounts, imported addresses, private balance settings, connected dapps, and sensitive actions like private key export or account removal.

I structured the experience around three questions: what kind of account is this, how do I add or import it safely, and what can I control once it exists?

Account settings in Ready X were not just preferences. They were a control system for identity, access, visibility, and risk across different account types.

The product needed to support standard accounts, smart accounts, multisig accounts, view-only accounts, imported addresses, private balance settings, connected dapps, and sensitive actions like private key export or account removal.

I structured the experience around three questions: what kind of account is this, how do I add or import it safely, and what can I control once it exists?

Check out the full flow here

System complexity

System

complexity

The system needed to support standard, smart, multisig, and view-only accounts, plus visibility controls, private balance settings, connected dapps, account hiding, private key export, and account removal.

The system needed to support standard, smart, multisig, and view-only accounts, plus visibility controls, private balance settings, connected dapps, account hiding, private key export, and account removal.

The system needed to support standard, smart, multisig, and view-only accounts, plus visibility controls, private balance settings, connected dapps, account hiding, private key export, and account removal.

01

Account model

What kind of account is this?

The account model needed to make different account types understandable without exposing unnecessary complexity. Users needed to recognise what kind of account they were using, what access they had, and what actions were available.

Account list

See all accounts, balances, and types in one place. Gradient appears to allow the user to easily see which account is currently current.

Account type selection

Choose the right account type before setup begins.

Account state & capability

Clear visibility into account capabilities and settings at a glance.

Import method

Support for address entry and QR import.

Validation states

Catch errors early and explain what went wrong.

Setup feedback

Clear feedback and progress throughout the setup.

02

Setup and import

How do I add or import it safely?

Adding an account is a high-trust setup flow. Users need to understand what they are importing, what access it gives them, and whether the account can perform actions or only be monitored.

01

Account model

What kind of account is this?

The account model needed to make different account types understandable without exposing unnecessary complexity. Users needed to recognise what kind of account they were using, what access they had, and what actions were available.

02

Setup and import

How do I add or import it safely?

Adding an account is a high-trust setup flow. Users need to understand what they are importing, what access it gives them, and whether the account can perform actions or only be monitored.

03

Settings and risk controls

What can I change, hide, connect, or remove?

Account settings needed to work as a control surface, not a dumping ground. I grouped actions by intent and risk, from identity customisation and visibility settings to connected dapps, private key export, and account removal.

03

Settings and risk controls

What can I change, hide, connect, or remove?

Account settings needed to work as a control surface, not a dumping ground. I grouped actions by intent and risk, from identity customisation and visibility settings to connected dapps, private key export, and account removal.

Settings overview

Grouped by intent and risk for better clarity.

Visibility and control

Control how and where your account appears.

Sensitive actions

High-risk actions are separated and clearly communicated.

Account list

See all accounts, balances, and types in one place. Gradient appears to allow the user to easily see which account is currently current.

Account type selection

Choose the right account type before setup begins.

Account state & capability

Clear visibility into account capabilities and settings at a glance.

Import method

Support for address entry and QR import.

Validation states

Catch errors early and explain what went wrong.

Setup feedback

Clear feedback and progress throughout the setup.

Settings overview

Grouped by intent and risk for better clarity.

Visibility & control

Control how and where your account appears.

Sensitive actions

High-risk actions are separated and clearly communicated.

Related projects

Taken from the archieves so screenshots and animation completed on similar based projects.

Ready: Making crypto feel clearer, safer, and easier to use