Balance Provider
A service that provides information about balance of a wallet address
Collects and normalizes token balances and protocol-level data from multiple sources, including EVM APIs and price feeds.
🧠 Why it matters:
In Web3, a user's wallet balance is their most visible asset. We provide fast, accurate, and transparent balance tracking by combining:
Live on-chain queries (via EVM and other APIs)
Real-time socket updates after every transaction
Local caching to improve UX and reduce provider load
Price feeds to calculate fiat-equivalent portfolio value
This system ensures users always see their true portfolio state, while also giving investors confidence in how we compute valuations.
The Balances module builds a full portfolio view for users and gives investors confidence in how we calculate holdings and valuations. It combines live blockchain queries with local caching for both performance and transparency.
⚙️ How it works:
Single-token balances (ERC20, native assets): Fetched via
alchemy_getTokenBalances
— fast, stable, and scalable.DeFi positions (LPs, vaults, pools): Retrieved via Enso API — a high-quality source for structured protocol-level asset exposure.
Price data: Sourced from CoinGecko, ensuring real-time fiat conversion.
Live updates: After each user transaction, to reflect balance changes in real time.
Caching layer: Frequently accessed balances are cached locally (IndexedDB) for optimal performance and offline-friendly UX.
🌐 Highlights
Accurate, normalized balances across wallets.
Real-time updates post-transaction via socket events.
Modular data provider logic — easily extendable
Last updated