← Back

New Market Trading Co.

2024 — 2025

UX Case Study · DeFi · 2024–2025

Designing a multi-chain DeFi portfolio platform from scratch — across six visual themes, four core flows, and months of weekly iteration with the product lead.

Role: Product Designer · Platform: Web App · Process: Weekly iteration · Scope: End-to-end

01 — Project Overview

One platform for everything a DeFi user actually needs.

NMT (New Market Trading Co.) is a DeFi portfolio management platform built on Safe (formerly Gnosis Safe) infrastructure. Users connect their Safe wallet, see their full portfolio picture, explore liquidity pools and yield protocols, configure positions, and track performance — all without leaving the app.

The product serves two user types: owners (individuals managing their own Safe) and associates (advisors managing positions across multiple client Safes simultaneously). Each user type has a different homepage, different permissions, and a different version of the explore-to-execute flow.

The core flows

Connect wallet → Overview → Explore DeFi → Select a pool → Configure position (Swap, LP, or Zap) → Choose safes → Summary → Execute. Every page in the product sits inside one of these flows.

The Zap model

Instead of requiring users to hold both tokens in a pair, NMT's Zap lets them enter a liquidity position using any single asset they already hold. The platform handles the swap and ratio automatically. This was the hardest flow to design.

The associate model

Associates are advisors who manage DeFi positions across multiple client Safes. They configure one position, then apply it to many Safes at once — each with a different dollar amount and asset. The summary and execute flow had to accommodate this entirely.

My scope

I designed the full product end-to-end across six visual themes: every screen state, every flow, every empty state, every modal. Design was done iteratively — weekly sessions with the product lead (CT), presenting multiple options and refining based on direct feedback.

6Visual themes · 5Core user flows · 26+Screen states · 730+ Wallet providers

02 — Exploration & Discovery

Understanding who uses this and what they're scared of.

The design process started with understanding two users: Jonathan, the Safe owner managing his own portfolio; and the associate — an advisor running positions for multiple clients at once. Both operate in DeFi, which means both carry real financial exposure every time they interact with an interface.

“The clients are 50+ year olds. They might not notice something if it's too subtle. They know how to use a dropdown — they've been using computers. But they'll panic if a transaction goes silent.”
— CT (Product Lead), design session

What the research told us

The key tension wasn't missing features — it was information overload. Early versions of the overview table tried to show everything at once: value, APR, P&L, projected earnings, actual earnings, range status, protocol, chain. It was too much. Users couldn't scan it.

The same problem existed in the other direction: the production version of open positions was hiding critical data behind tooltips and collapsed rows. APR required a hover. Range status wasn't visible at all. Users had no idea how a position was performing without clicking through.

The design challenge was finding the middle — show enough to be useful at a glance, hide enough to stay clean, and make the detail one intentional click away.

Connect Wallet — MetaMask, Phantom, Ledger, 730+ providers, or sign in with email, Google, or phone

Connect Wallet — MetaMask, Phantom, Ledger, 730+ providers, or sign in with email, Google, or phone.

The two users this product serves

Jonathan — the Safe Owner

Manages his own Safe with real assets across Base, Ethereum, and Arbitrum. Actively provides liquidity on Uniswap V3 and deposits into Aave and Morpho. Currently uses 4–6 separate tools to do what NMT should do in one.

Biggest frustration: can't see his full picture in one place. Net worth is always an estimate. Doesn't trust UIs that only show USD — wants to see token amounts too, because that's what he'd verify against his wallet directly.

The Associate — the Advisor

Manages DeFi positions on behalf of multiple clients. When they find a good pool, they want to apply the same position to 10+ Safes at once — but each client gets a different dollar amount based on their portfolio size.

Biggest frustration: no platform was built for this use case at all. They were doing everything manually. NMT's associate flow — configure once, apply to many — was designed entirely from scratch for them.

03 — UX Design Process

The decisions that shaped the product.

Design happened in weekly sessions with the product lead. I'd present 3–5 options for each problem, we'd discuss the tradeoffs, and narrow down. Below are the real decisions — explained with the reasoning behind them, not just what we chose.

01 — The assets table: dropdown expansion over showing everything

Early versions of the assets/positions table tried to display every data point inline — value, APR, P&L, range, earnings. It was too much. CT flagged it: “It kind of loses its structure. There are just too many options displayed.”

The decision: show a summary row (asset name, value, P&L, trend sparkline) and expand to show full details when clicked. The row expands in place — earnings breakdown, price range, min/max, current price, projected vs actual earnings, and action buttons (Add Liquidity, Withdraw, Close Position) — all without navigating away.

Why we kept the View button too

The expandable row and the View button do different things. Clicking the row expands the detail inline. View navigates to the pool's full detail page (with the APY chart, holdings, associated DeFi positions). We kept both because users coming from their open positions want to manage; users coming from Explore want to learn. The interaction model had to support both intents.

02 — The Explore page: grid cards + categories row + live result count

The Explore page had multiple problems at once: a left-hand sidebar filter that wasted space, no visible category chips (Meme Coins, Blue Chip Pools, Stable Coins, LST, Associate's Pick), and no feedback on how many results the active filters returned.

The solution pulled all of this into a stacked header structure: a scrolling stats strip (24H Volume, Total NMT TVL, Uniswap v3/v4 TVL, Aerodrome TVL), then a filters row (Chains, Wallets, Protocols, TVL range, APY range), then a categories row as horizontal chips. Below that: the grid with a live count — “Showing: 326 Results” — that updates as filters are applied.

Associate's Pick is just another category

CT made this call during review: Associate's Pick isn't a special toggle off to the side — it's a basket, the same as Meme Coins or Stable Coins. Treating it differently would confuse the mental model. It went into the categories row with a toggle switch, same as everything else.

03 — The navigation: dropdown over persistent sidebar

The original design had a left-hand sidebar with Overview, Activity, Consult, Calendar, Reports, Settings, Integrations, Bug Report. It worked on the Overview page but became a problem on the configure flow pages — the sidebar took up space, broke the page hierarchy, and felt wrong sitting next to a focused transaction screen.

We removed the sidebar and replaced it with a dropdown anchored to the top navigation. When you click the Overview button in the top bar, a dropdown opens showing all navigation options. It persists across all pages — but stays collapsed so it doesn't compete with the page content. The favorite option (my pick, CT agreed) looked like a natural part of the nav bar rather than a separate UI element.

Why not a hover interaction

I explored a hover-reveal version — mouse over an arrow and the nav slides out. CT shut it down cleanly: “Our clients are 50+. They know how to use a dropdown instinctively. A hover nav? They'll miss the arrow, and if they find it, they won't know how to make it come back.” Predictability beat cleverness.

04 — The configure position flow: Explore → Configure → Choose Safes → Summary → Execute

The hardest flow to sequence was the associate's transaction. Initially the “choose which Safes to apply this to” step was at the beginning of the flow. CT corrected this: “Move it closer to checkout. They should finish setting up the position first — ranges, ratios, everything — and only at that point are they thinking about who this is for.”

The final sequence: find the pool (Explore) → configure the position (set price range, deposit tokens) → choose which Safes and how much for each (Choose Safes) → review everything (Summary) → execute. The Summary page shows one position applied to multiple Safes, with a token and dollar amount input per Safe — because the same position might be $10,000 for one client and $500 for another.

After execution: redirect to Explore, not Overview

Where do you land after a successful transaction? My instinct was Explore — the transaction is done, they might want to find another opportunity. CT agreed: “The transaction is already done. Reset to Explore, it makes sense.” Overview would feel like a dead end after a focused transaction flow.

05 — The Zap page: single token entry, chart as the primary element

A Zap is different from a regular LP: instead of providing both tokens in a pair, the user picks any single asset they hold and the platform converts it into the correct ratio automatically. This meant the configure page couldn't just reuse the swap card layout — there was no “You Pay / You Receive” exchange. There was just: pick one asset from your Safe.

The challenge was what the page actually needed: a token selector (small — just pick one), a price range chart (large — this is the primary decision), min/max price inputs, percentage/price toggle, a narrow/wide/full range preset, and a token-price switcher so users could define the range in terms of either token. After many iterations, the solution was to make the token selector a compact component on the left and let the price range chart dominate the right — the opposite proportion from what we started with.

Why the chart had to be big

CT: “The chart is way down here. We want to be able to see the chart, we want to be able to adjust the range, and we don't need a swap card — we're only picking one asset.” In the current production version, the chart was buried. On the redesigned page, it's the thing you look at first.

06 — Transaction states: three named steps, not a spinner

The most anxious moment in DeFi is between clicking confirm and seeing a result. The original design had one modal with a generic loading state. We designed three distinct states: Submitting Transaction (sending to the network), Waiting for Confirmation (submitted, waiting for the user to confirm in MetaMask — the pop-up appears top-right), and Position Created Successfully (done, with options to Explore or Manage Position).

Why named states prevent real mistakes

When a financial transaction goes silent, users assume it failed. They click again. Named states tell them exactly what the blockchain is doing and what they need to do next (confirm in MetaMask). The “Waiting for Confirmation” state is specifically for the moment the user needs to act — it had to be clearly distinct from “Submitting.”

07 — The swap card: the “big stupid” option won

I explored many swap card layouts — the standard small box, two cards side by side, charts integrated into the card, micro-interactions on the swap arrow. CT kept coming back to one option: the large side-by-side layout with a chart integrated below each token. His words: “It's big and it's stupid. In the best way — it's really obvious what's going on.”

The big card won because it matched the boldness of the overview page (which also went big — full-width chart, large KPI numbers). The whole platform had to feel consistent in its visual confidence. Ryan (the third stakeholder) agreed too — two out of three meant it became the direction.

Buttons matter more than people think

CT flagged button design repeatedly: “The current buttons are too flat. I want them to come alive.” We iterated on the Deposit, Withdraw, and Trade buttons specifically — landed on outlined style for Deposit/Withdraw, white with a drop shadow for Trade. The swap card's execute button got its own treatment: it had to feel clickable, not passive. Color, weight, and shadow all signal “this is the action.”

08 — Open positions: all the data, none of the chaos

The current production open positions view was CT's biggest complaint: “We've crammed so much information into this one little box. APR is behind a tooltip. The range isn't visible until you hover. And then the actions — close position, withdraw fees, add liquidity — are all buried.”

The redesigned position row shows at a glance: protocol + chain + asset pair, position value + P&L, APR, and an “In Range / Out of Range” status badge. Clicking the row expands to show: price range visualiser (min / current / max), earnings breakdown (24H actual, 30D actual, 365D actual, 24H projected, 30D projected, 365D projected, fees), and three action buttons. Everything is visible without a single tooltip.

04 — Final Design

The product, screen by screen.

Every screen shown here is in its real flow context — not isolated components. The full product covers five flows: onboarding, portfolio overview, DeFi exploration, position configuration (LP, Swap, and Zap), and settings/permissions.

Six themes, one system.

Designing across six visual aesthetics wasn't stylistic indulgence — it was structural QA. Every time a layout broke in a different theme, it exposed a hierarchy problem that needed fixing, not a theme problem. The Light and Dark modes are the primary deliverables. The others proved the underlying architecture was sound.

Light Mode — Primary
Dark Mode — Primary
Old Computer / Terminal
Editorial / Bold

Every path, mapped.

The full flow covers five journeys: onboarding via wallet or email, portfolio overview, DeFi exploration, position configuration (three sub-flows for LP, Swap, and Zap), and settings management including on-chain Safe module permissions and owner/associate roles.

NMT Full User Flow Diagram

Full user flow — five journeys mapped end-to-end: onboarding, overview, explore, configure, and settings.

05 — Learnings

What this project taught me.

Working on NMT over months of weekly iteration changed how I think about design reviews. The most useful sessions weren't the ones where CT said “yes” — they were the ones where he said “I keep coming back to this one weird option and I don't know if I like it because it's weird or because it's actually good.” That kind of uncertainty is productive. It means we're in territory worth exploring.

The Zap page was the hardest problem I worked on. It looked simple — just pick a token and set a range. But the real question was: what's the primary element on this page? We went through probably fifteen iterations before landing on the answer: the chart is the primary element, the token selector is secondary, and they can't live at the same visual weight. Once that hierarchy was clear, the layout fell into place.

Designing six themes taught me to separate what a UI must communicate from how it looks while doing it. The terminal theme — monospace, dashed borders, no color — stripped away every visual shortcut and forced me to prove the information hierarchy worked on structure alone. The screens that survived that test unchanged were the ones that were actually right.

The associate flow taught me that designing for a power user's workflow is a completely different problem from designing for a single user's interface. Associates are managing positions for 10–30 clients at once. Every extra click costs them real time across every Safe they manage. That changes what “clean” means entirely.

What worked

What I'd revisit

Tools & context