← All projects

(Case study · 11)

ETHOSDeFi Protocol Frontend on Base

By Md. Habibur Rahman Shohel · 2026

  • React
  • TypeScript
  • Solidity
  • Vite
  • TailwindCSS
  • Ethereum
ETHOS preview

The web app for a DeFi protocol on Base — stake tokens, earn rewards, and swap at a discount through Uniswap V4.

ETHOS is a DeFi protocol on Base Mainnet. People stake WAI tokens to earn veWAI voting power, then either claim part of their ETH reward straight away or swap cbBTC, SHIB or wrsETH for ETH at a discount of up to 20%, priced live from Uniswap V4. Fees are split between one shared pool and dedicated community pools. The app is React and TypeScript with Wagmi and TanStack Query, over Solidity contracts deployed on Base.

Year
2026
Stack
React · TypeScript · Solidity
Private client project

(How it works)

ETHOS · Stake
WalletConnect wallet
Stake250 WAI
Lock7 days
You getveWAI voting power

Staked · part of the ETH reward can be claimed now

Animated illustration of the real flow, with sample data — not a live system.

(What I built)

  • 01Stake WAI to earn veWAI voting power (7-day lock)
  • 02Claim part of the ETH reward straight away
  • 03Swap cbBTC, SHIB or wrsETH for ETH at up to 20% off, priced live from Uniswap V4
  • 04Shared and dedicated reward pools with a 20% / 80% fee split
  • 05Wallet sign-in with eligibility checks and gasless approvals (Permit2)

Process

(Problem → what I did)
  1. 01

    Problem

    Live prices from Uniswap V4 across three token pairs with different fee tiers.

    What I did

    • Built a custom quote hook on the Uniswap V4 Quoter, configured per pool (fee, tick spacing, hooks).
  2. 02

    Problem

    A discount curve that rewards early users without shutting out latecomers.

    What I did

    • Implemented a linear discount formula in the pool contracts, tracked per reward window.
  3. 03

    Problem

    Keeping the app's timers in step with the on-chain reward windows.

    What I did

    • Synced on-chain data — window durations and balances — through TanStack Query and Wagmi.
Show all 5 steps
  1. 04

    Problem

    Wallet checks, pool choice and multi-step transactions in one app.

    What I did

    • Shared pool type and address through one React context used by every page.
  2. 05

    Problem

    Several ve-token types across shared and dedicated pools, with one way to split rewards.

    What I did

    • Designed a registry contract that splits fees 20% / 80% between pool types, deployed on Base Mainnet.

The product

6 screens from the real product. Click any screen to see it full size.

(Shipped)

The contracts are deployed on Base Mainnet, and the app takes a holder from staking to claiming or a discounted swap in one place, with live quotes and wallet checks along the way.

Next project

Hotel D'more

Need something like ETHOS? I build web, mobile and backend — end to end.

Hiring? See my experience →