EnSolv
An ENS-powered dashboard showing real-time, cross-chain DeFi portfolios and one-click swaps
Problem Statement
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 usedENS (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.
Solution
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.
Hackathon
ETHGlobal New Delhi
2025