Veil was the primary trading interface for the Penumbra DEX.
One of its core features was liquidity provision: users could deposit assets into the exchange and earn trading fees by supplying liquidity.
In practice however, retail participation in liquidity provision was low. Most liquidity was coming from users interacting directly with CLI tools instead of the UI.
The problem wasn’t the protocol.
The problem was the interface.
My job was to redesign the liquidity provisioning experience so normal users could confidently provide liquidity without understanding the mechanics of automated market makers.
The Problem
The original UI exposed far too much of the underlying mechanism.
To open a liquidity position, a user had to configure multiple parameters:
liquidity target
upper price bound
lower price bound
fee tier
number of positions
Each of these fields interacted with the others in non-obvious ways.
For example:
the system internally opened multiple positions to implement a strategy
positions were directional depending on the market price
users had to understand how base and quote assets would be split across price ranges
Even experienced crypto users found this intimidating.
One comment from a community member captured the issue well:
"I don’t use the LP UI because it’s confusing. I’m worried that if I do it wrong I’ll lose money."
The interface was technically accurate, but cognitively overwhelming.
My Role
I collaborated with the CTO, designer and engineering team to drive the redesign of the refreshed liquidity provisioning experience.
This involved:
analyzing usage patterns and community feedback
identifying the main sources of user confusion
researching liquidity UX patterns across other DEXs and wallets
working closely with design to simplify the interaction model
coordinating implementation with the frontend engineering team
The guiding principle for the redesign was simple:
Hide the complexity, not the capability.
The Redesign
The redesign focused on drastically reducing the number of decisions a user needed to make.
Instead of asking users to configure a strategy directly, the UI asked for just three inputs:
1. Amount
Users enter a single asset amount. The second asset auto-calculates based on the selected price range.
2. Liquidity Shape
Two simple strategy options:
Concentrated liquidity
Volatile liquidity
These correspond to common liquidity provision patterns but without forcing users to understand the mechanics.
3. Price Range
A simple slider centered around the current market price.
The system handled the rest automatically:
splitting liquidity across multiple positions
determining directional asset allocation
calculating reserve weighting
selecting the most common fee tier
managing the number of underlying positions
Instead of configuring the machine, users simply described their intent.
What Changed
The redesign moved several complex decisions from the user to the system.
Before
Users configured:
price bounds
number of positions
fee tiers
liquidity targets
This created high cognitive load and fear of misconfiguration.
After
Users configured only:
amount
liquidity strategy shape
price range
Everything else became automatic.
Results
The impact was immediate. LP positions opened and DEX liquidity increased and ust as importantly, the tone of community feedback shifted.
Users who previously avoided liquidity provision began experimenting with it.
The redesign turned liquidity provision from a specialist activity into something normal traders felt comfortable trying.
Lessons
This project reinforced a core product lesson:
Users don’t want to configure systems.
They want to express intent.
The original interface faithfully represented the mechanics of the protocol, but that fidelity came at the expense of usability.
By shifting complexity from the user to the system, we preserved the power of the protocol while making the feature approachable.
Sometimes the biggest product improvement isn’t adding capability.
It’s removing decisions.


