EnSolv

An ENS-powered dashboard showing real-time, cross-chain DeFi portfolios and one-click swaps

EnSolv

Created At

ETHGlobal New Delhi

Project Description

EnSolv is an ENS-powered, cross-chain DeFi command-center that turns any human-readable name (e.g. “vitalik.eth”) into a live, interactive dashboard of that wallet’s entire on-chain footprint and lets the owner rebalance it with one-click swaps.

What problems does it solve? Fragmented portfolios – holdings spread across multiple chains, LPs and tokens are hard to track in one place.

Confusing UX – copying hex addresses and juggling different explorers deters mainstream users.

Slow manual rebalancing – moving value between chains still requires several dApps and bridges.

How EnSolv fixes this ENS identity layer – type an ENS name or connect a wallet; we resolve to the address instantly with ethers.js (ENS registry) and Viem fallback.

Multi-chain aggregation – a Node/Express backend queries The Graph subgraphs on Polygon & Rootstock (extensible to 10+ EVM chains) plus direct RPCs, normalises balances and positions, and enriches them with real-time USD prices from Pyth Network.

Real-time analytics – the React/TypeScript frontend (Vite + Tailwind + Framer Motion) renders:

    Total net worth, per-chain breakdown, token table

    Recharts pie & bar charts for visual allocation

    Live price ticks and 5 min auto-refresh

Cross-chain swaps – the Swap modal uses Katana Network SDK to fetch quotes and execute Polygon↔️Rootstock trades in one transaction, signed with MetaMask/wagmi.

Performance & UX – node-cache keeps portfolio data for 5 min, shrinking cold load to <1 s on repeat views; toast notifications surface errors; dark-mode neon UI evokes a modern Web3 feel.

Open & composable – fully open-source, REST/GraphQL ready, easy to embed in any wallet or DAO tool.

Sponsor tech used

ENS (identity), Polygon (L2 data), Pyth (oracle prices), Katana (cross-chain swaps).
Future roadmap includes Solana support, agentic auto-rebalancing, historical performance charts and zk-proof privacy mode.

In short, EnSolv turns a simple ENS name into a real-time Bloomberg Terminal for DeFi where you see everything you own everywhere and rebalance it instantly.

How it's Made

Stack overview Frontend – React + Vite in TypeScript, Tailwind CSS for styling, Framer-Motion for micro-animations, Recharts for charts, react-hot-toast for UX feedback.

ENS layer – ethers.js (L2 aware) with an ENS.js fallback; we cycle through three RPC providers (Alchemy, QuickNode, Cloudflare) until one responds.

State & wallet – wagmi for MetaMask / WalletConnect; global stores with Zustand.

Backend – Node 18 + Express monorepo (pnpm); portfolio aggregation service calling
– The Graph subgraphs on Polygon & Rootstock (Uniswap-V3 clone, Sushiswap)
– direct JSON-RPC for native balances
– Pyth Network REST for live USD prices.
Calls are fired in parallel with Promise.allSettled() and cached with node-cache (5 min TTL).

Swap engine – @sky-mavis/katana-swap SDK; we fetch a quote, then surface the calldata to the connected wallet for a single-tx Polygon↔︎Rootstock swap. If a quote fails we fall back to a mocked preview so the demo never breaks.

CI/CD – GitHub Actions → Vercel preview URLs on every push; eslint --max-warnings 0 gate.

Tests – Jest + Supertest for API, React-Testing-Library for ENS flow (only the “happy path” due to time).

Why partner tech mattered ENS Turned scary 0x… into “vitalik.eth”; instant onboarding and ENS prize eligibility. Polygon Fast, cheap chain used for most demo wallets; subgraph querying is <300 ms. Pyth On-chain oracle gave millisecond price feeds with no API keys; saved us hours. Katana One SDK, out-of-the-box bridge+DEX routing; let us ship cross-chain swaps in <2 hrs.

Hack-y but fun bits RPC rotator: a 15-line util that shuffles three endpoints per chain and retries with exponential back-off—kept us alive when free Alchemy credits ran out.

Lazy graph hydration: charts render skeletons first, then stream in data as each chain resolves; perceived load time ≈ 1 s even when Rootstock is slow.

Fake-it-till-you-make-it swaps: if Katana can’t quote a pair, we generate a deterministic “demo” quote so judges always see a flow. The SDK automatically switches to the real route once liquidity appears.

Single file subgraph query: we compile multiple GraphQL operations into one network round-trip using #import directives—50% fewer calls.

How the pieces talk User types vitalik.eth → ENS resolver returns 0xd8...45.

Frontend hits /portfolio?address=; backend fires parallel subgraph/RPC/price calls.

Cached, normalised JSON is sent back → charts animate in.

User opens SwapModal; Katana SDK gives quote → MetaMask signs → toast confirms.

48 hours later we have an open-source “Bloomberg Terminal for DeFi” built entirely on partner infra being ready for judges and real users alike.

background image mobile

Join the mailing list

Get the latest news and updates