Production Web3

03 / 12

Everdex

A multichain DEX where I led frontend improvements across swaps, bridge routes, liquidity, pools, and LP rewards.

Role
Frontend Lead
Problem
The quote a user saw and the state available at execution time could diverge.
Strategy
Input changes triggered controlled quote updates, while execution consumed a coherent route context. The frontend rechecked critical conditions and classified rejection, RPC, slippage, and contract failures separately.
Outcome
Expanded the product from swap into liquidity, pool, reward, and route-aware experiences.

01

Problem definition

Why this problem had to be solved

Everdex brings swaps, bridge routes, liquidity, pools, and LP rewards into one multichain DEX.

What users and the system were facing

  • A quote could become stale while a user changed amount, route, network, or token.

  • Approve, swap, and bridge steps carried different failure and completion states.

  • Slippage, price impact, deadlines, and allowance resets had to be understandable before execution.

Frontend ownership

I took frontend leadership after the product’s initial creation and rebuilt or expanded most of its production architecture and core flows.

  • Quote and execution context

  • Swap, bridge routes, pools, liquidity, LP rewards, and history

  • Wallet standards, network switching, and transaction tracking

  • Performance, security, observability, and long-term maintenance

02

Solution strategy

A system strategy carried into production

Input changes triggered controlled quote updates, while execution consumed a coherent route context. The frontend rechecked critical conditions and classified rejection, RPC, slippage, and contract failures separately.

System model

A quote context binds selected chains, tokens, route, output, slippage, and deadline. Execution revalidates that context before optional approval and swap or bridge steps.

Implementation decisions

  • Kept token, chain, route, and quoted output in one execution context.

  • Revalidated allowance, gas, and route conditions before execution.

  • Separated approve from swap or bridge and recorded account-level history.

  • Integrated evolving wallet discovery standards including EIP-6963.

03

Outcome

What changed—and what I learned

  • Expanded the product from swap into liquidity, pool, reward, and route-aware experiences.

  • Maintained compatibility as wallet standards, APIs, frameworks, and networks changed.

  • Reduced avoidable bundle cost by replacing and deferring heavier modules where appropriate.

Learning

A financial quote is a versioned promise. The UI must know when it was produced, what state it describes, and whether it is still safe to execute.

Today

I would separate quote and execution into an explicit state machine, validate freshness immediately before signing, and move recoverable transaction history beyond browser-only storage.

Built with

  • TypeScript
  • React
  • Next.js
  • SWR
  • WalletConnect
  • EIP-6963
  • Sentry

Public links

Work together

Need this level of frontend ownership?

Contact me