PoolSide Documentation
PoolSide is a personal Uniswap V3 liquidity position dashboard. Connect your Ethereum wallet to view your LP positions, track fee earnings over time, collect fees directly from the interface, and explore top pools across the ecosystem.
How PoolSide Works
ArchitecturePoolSide continuously pulls your live position data from the Ethereum blockchain using Web3 RPC calls, calculating USD values via CoinGecko prices and converting them to your chosen currency using live FX rates — all presented seamlessly in your browser
Dashboard
OverviewThe Dashboard is your at-a-glance command centre. It shows a snapshot of your portfolio right now, aggregated across all open positions.
| Card | What it shows |
|---|---|
| Today's Fees Earned | Fees accrued since midnight (local time). Calculated by comparing the latest unclaimed fee snapshot against the first snapshot of the day, accounting for any collect transactions in between. The 🔄 button forces a fresh on-chain recalculation for just this value. |
| Total Unclaimed | The total unclaimed fees sitting in all your open LP positions right now — not yet collected to your wallet. This is the live value from the Uniswap contracts. |
| Total Position Value | The combined market value of the tokens locked in all your active LP positions at current prices. Click the 👁 button to blur/hide this number for privacy. The delta badge shows how much this has changed since the last Refresh. |
| Open Positions | Count of active LP NFTs with non-zero liquidity. Closed or burned positions are not counted. |
Pool Ranking Row — Below the top cards, each of your pools gets a ranked card showing today's fees earned in that pool and the average APR since you opened it. The 🏆 card is your best-performing pool for the day.
| Stat Card | What it shows |
|---|---|
| 24hr Projection | An extrapolation of today's current fee rate to a full 24 hours. Based on hours elapsed today ÷ fees earned so far × 24. Less than 30 minutes of data shows "—" since early projections are unreliable. |
| Collected Today (on-chain) | The total value of fee-collect transactions that hit the blockchain today, fetched live from Etherscan. This does NOT include unclaimed fees — only fees you have explicitly collected to your wallet. |
| Yesterday's Fees Earned | The total fees earned yesterday, calculated from the History snapshots using the same delta formula as Today's Fees. Useful as a benchmark for today's performance. |
| Total Earnings This Month | Sum of all daily fee earnings in the current calendar month, read from the History snapshot data. The 👁 button hides this for privacy. |
+42 kr) next to values like Total Unclaimed show the change between the current Refresh and the previous one. They help you see at a glance whether things are moving up or down in real time.Open Positions
LP ManagementEvery active Uniswap V3 LP position you hold is shown here as an individual card. You can search by pair name, token ID, or pool address, and filter by range status.
Each position card shows:
| Field | Description |
|---|---|
| Pair+Version | The trading pair (e.g. WETH/SOL) and the fee tier (e.g. 0.30%). |
| In Range / Out of Range | Green = the current price is within your tick range — you're earning fees right now. Red = price is outside your range — you're not earning, and you may want to rebalance. |
| Range Bar | A visual slider showing where the current price tick sits relative to your Min and Max ticks. The percentages show the current token ratio in the position. |
| Position Value | Total USD market value of the two tokens currently locked in this LP position at spot prices. |
| Unclaimed Fees | Fees earned but not yet collected — still inside the position. Shown in both USD and local currency. |
| Token Breakdown (Unclaimed) | How many of each token make up the unclaimed fees, with individual USD values. |
| Token Breakdown (Position) | How many of each token are currently in the LP position, with individual USD values. |
| Pool Address | A link to the pool contract on Etherscan. |
| My APY | Your personal APY for this pool, calculated from the historical snapshot data. This is your actual earned-fees-to-position-value ratio annualised. |
| Pool APY | The pool's overall APY based on the last 7 days of on-chain fee and TVL data read from the Ethereum blockchain. |
The ⋯ menu (three dots) on each position card gives you quick actions:
Collect All
When your wallet is connected, a ⬇ Collect all (N) button appears at the top of the Open Positions view. Clicking it collects fees from every currently visible position in a single transaction — you sign once and all positions are swept in one go.
Under the hood, PoolSide bundles all the individual collect operations into a single Multicall transaction sent to Uniswap's position manager contract. If any of your positions include WETH, the multicall also unwraps it to native ETH automatically before delivering everything to your wallet.
History
Snapshot LogThere are three history views, each showing your past activity from a different angle. The original History view is available on all plans.
History — Snapshot Log
The History page shows a daily log of your portfolio across time, broken down month by month. Each row represents one calendar day, built from the snapshot data captured each time you Refresh.
The top summary bar shows stats for the selected month or year: total fees, average fees per day, projected month total, average APR across all positions, latest position size, and position delta.
Column Reference
| Column | Type | Description |
|---|---|---|
| Day | read-only | The calendar date of the snapshot. Rows highlighted in a lighter colour indicate today. |
| Fees Earned | computed | Calculated automatically: today_unclaimed + collected_today − yesterday_unclaimed. This is the net new fees generated on this day. Negative values can occur on days with large price swings (impermanent loss effect on the unclaimed calculation) or after a large collect. |
| Unclaimed Fees | ✏ editable | The total unclaimed fees in all positions at the time of the snapshot. You can click the cell and override this value if the automatic reading was wrong (e.g. fetched during a price spike or with stale data). Overrides are saved to the CSV file immediately. |
| Position Size | ✏ editable | The combined market value of all tokens in all LP positions at snapshot time. Click to override if the value was clearly wrong. Position size is used to calculate APR. |
| Position Delta | computed | The change in position value compared to the previous day, in both absolute and percentage terms. Green = portfolio grew, red = it shrank. This reflects both price movement (impermanent loss/gain) and any deposits or withdrawals you made. |
| APR (%) | computed | The annualised fee return for this specific day: (fees_earned / position_size) × 365 × 100. This is your actual daily fee APR, not a projection. |
| Collected | ✏ editable | Fees you explicitly collected to your wallet on this day, in local currency. This is auto-populated from on-chain data when available, but you can also enter it manually. The value is used to ensure fees-earned calculations remain correct on collect days. |
| Note | ✏ editable | A free-text field for your own notes — e.g. "added liquidity", "rebalanced WETH/RPL", or anything you want to remember about that day. |
| ↺ (Reset) | action | The red circular arrow button reverts any manual overrides on that row, restoring the values from the original snapshot data. |
The Year view aggregates the entire year, one row per day. The Jan, Feb… month tabs filter to that specific month and show the same data at the same granularity.
History V2 — LP Fee Backtest
PROHistory V2 is an alternative view of your earnings history that calculates fee income directly from on-chain data — pool fee rates and your share of liquidity at each point in time — rather than relying on daily snapshots. Think of it as a fee backtest: it reconstructs what you should have earned hour-by-hour while your position was active and within range.
| Control | What it does |
|---|---|
| Range (7d / 30d / 60d / 90d / YTD) | Changes the time window for the entire view — charts, cards, and the breakdown table all update to cover the selected period. |
| ↻ Refresh | Re-fetches the latest on-chain data from the Ethereum blockchain via Web3 RPC, recalculating all fee estimates for the current window. |
| 👁 Hide Values | Blurs all numeric values in the breakdown table for privacy. Useful when sharing your screen. Click again to reveal. |
Open Position Logging
Per-Position DetailEach of your open LP positions has its own dedicated log page, accessible by clicking the position card in the Open Positions view or navigating to the Pool Info page. This per-position view gives you a granular history of that single position — useful when you hold multiple positions in different pools or tick ranges.
The position log combines a live chart with a snapshot table that you can manually edit, giving you both the automated record and the ability to annotate or correct it.
LP Simulator
What-If AnalysisThe LP Simulator lets you model a hypothetical Uniswap V3 position before you commit any capital. Enter a pool, a deposit amount, and a price range — and the simulator estimates how much you could earn in fees per day, week, and month based on the pool's recent trading activity.
It's a planning tool, not a guarantee. Fee income depends on trading volume staying consistent and your position remaining in range — both of which can change at any time.
| Output Metric | What it means |
|---|---|
| Estimated Daily Fees | Your projected share of the pool's average daily trading fees given your deposit size and price range. |
| Weekly / Monthly | Simple multiples of the daily estimate (× 7 and × 30). No compounding is assumed. |
| Projected APR | Annualised return based on the daily fee estimate divided by your deposit: (daily_fees × 365 / deposit) × 100. |
| Your Share of Liquidity | The percentage of total pool liquidity your deposit would represent at the selected range, compared to everyone else currently providing liquidity in that range. |
| Token Split | How your deposit would be divided between the two tokens at the current price and your chosen range boundaries. |
Discovery
PROThe Discovery page lets you browse the top Uniswap V3 pools on Ethereum Mainnet, ranked by TVL, APR, and daily fees. It's designed to help you find new pools worth considering — whether you want high APR, high TVL stability, or a specific token pair.
It is accessible from the navigati| Control | What it does |
|---|---|
| Window (1d / 7d / 14d / 30d) | Sets the time window over which APR and average daily fees are calculated. Shorter windows reflect very recent activity; longer windows smooth out volatility. |
| Min TVL | Filters out pools below a minimum Total Value Locked threshold. Useful for hiding micro-liquidity pools that may have inflated APRs but very low volume. |
| Token Filter | Search by token name or symbol to narrow results to pools containing a specific asset. |
| Per Page | Control how many pools are shown at once (20, 50, 100, or All). |
| Column | Description |
|---|---|
| Pool | The trading pair and fee tier. Token icons are shown where available. |
| TVL | Total Value Locked — the combined USD value of all liquidity in the pool right now. |
| Avg Daily Fees | Average fees generated per day over the selected time window, in USD. |
| APR | Annualised fee return based on average daily fees divided by TVL. Higher APR = more fees relative to capital, but can also mean more volatility. |
| Fee/TVL | Average daily fees as a percentage of TVL — a quick way to compare fee productivity across pools of different sizes. |
| Volume | Total trading volume over the selected window. Higher volume generally means more fees and tighter spreads. |
Transactions
On-Chain ActivityThe Transactions view shows your wallet's recent on-chain activity on Ethereum Mainnet, fetched live from Etherscan. It focuses on LP-related transactions but shows all activity for the selected date.
| Column | Description |
|---|---|
| Transaction Hash | The unique hash of the transaction on Ethereum. Clicking it opens Etherscan in a new tab. |
| Method | The contract method called. collect = fee collection from an LP position. multicall = a bundle of multiple operations in one transaction. |
| Block | The Ethereum block number where the transaction was included. Clicking it opens that block on Etherscan. |
| Age | Time elapsed since the transaction was confirmed (e.g. "6h 26m ago"). |
| From / To | The sender and recipient addresses. Your wallet is highlighted in orange. |
| Value | The raw ETH value transferred in the transaction (most LP operations send 0 ETH). |
| Txn Fee | The gas fee paid for this transaction, in ETH. |
| Details ▶ | Click to expand the row and see the ERC-20 token transfers inside the transaction, with amounts and USD values. This is especially useful for collect transactions to see exactly which tokens and amounts were received. |
collect method calls on that day.Pool Info Page
Per-Pool DetailWhen you click on a position card in Open Positions, it opens a dedicated detail page for that specific pool/position. This page is similar to the History page but scoped to a single pool.
Settings
Preferences| Setting | Description |
|---|---|
| Theme | Changes the colour accent of the entire dashboard. Options: Default (purple), Grey, Glass, Aurora, Terminal, Pink, Light, Red, Orange, Green, Purple, Yellow. The chosen theme is persisted and applies to all pages. |
| Primary Currency | Replaces all USD dollar ($) values throughout the app. Set to USD by default. Changing to EUR, GBP, etc. converts all primary values using live exchange rates. The FX rate is displayed in the header. |
| Secondary Currency | Replaces all NOK (kr) values throughout the app. Internally all calculations use NOK as the base, and the secondary currency is applied as a display conversion. Set to NOK by default. |
| Wallet / Connect | Connect a MetaMask or Rabby browser extension wallet to enable fee collection directly from the dashboard. Alternatively, append ?wallet=0x… to the URL to watch any read-only address without connecting an extension. |
| Subscription Plan | Shows your current plan tier (FREE, BASIC, or PRO) and lets you upgrade. PRO unlocks History V2, History V3, and Pool Discovery. Payment is made on-chain with USDC or USDT from your connected wallet. Monthly and annual billing options are available. |
Key Concepts
Reference0.30%).#1199114) is how PoolSide identifies each position. Closed positions (burned NFTs) are not shown.Plans & Pricing
SubscriptionPoolSide offers three plan tiers. Your current plan is shown on the Settings page, along with an option to upgrade. Payment is made on-chain using USDC or USDT directly from your connected wallet — no account registration or card details required.
| Plan | What's included |
|---|---|
| FREE | Live dashboard with all open positions, real-time unclaimed fees and position values, fee collection (Collect & Collect All), the main History V1 snapshot view, Transactions page, and Pool Info per-position pages. No time limit — the free tier is fully functional for day-to-day monitoring. |
| BASIC | Everything in FREE, plus access to the LP Simulator so you can model positions before deploying capital. Ideal for users who want planning tools but don't need advanced analytics. |
| PRO | Everything in BASIC, plus History V2 (on-chain fee backtest), History V3 (advanced analytics), and Pool Discovery (browse and filter top pools across Ethereum Mainnet). The full PoolSide experience. |
Legal & Disclaimer
ImportantSoftware Provided "As Is"
PoolSide is provided "as is" and "as available", without warranty of any kind, express or implied. This includes, but is not limited to, warranties of merchantability, fitness for a particular purpose, accuracy, completeness, or non-infringement. Your use of PoolSide is entirely at your own risk.
Not Financial Advice
Nothing on PoolSide — including fee projections, APR estimates, pool rankings, simulator outputs, or any other data displayed — constitutes financial, investment, or trading advice. All information is provided for informational and analytical purposes only. You should conduct your own research and consult a qualified financial adviser before making any investment decisions.
Data Accuracy
PoolSide relies on third-party data sources including Ethereum RPC nodes, blockchain explorers, price APIs, and foreign exchange feeds. These sources can be delayed, inaccurate, temporarily unavailable, or subject to errors. PoolSide makes no representations about the accuracy or timeliness of any data displayed. Always verify critical values directly on Etherscan or the Uniswap app before taking action.
Smart Contract & DeFi Risks
Interacting with Uniswap V3 smart contracts — including collecting fees, adding liquidity, or removing liquidity — carries inherent risks. These include but are not limited to: smart contract bugs, impermanent loss, gas cost fluctuations, network congestion, and price volatility. PoolSide facilitates these interactions but is not responsible for any loss of funds resulting from on-chain transactions initiated through the interface.
Wallet Security
PoolSide never stores, transmits, or has access to your private keys or seed phrases. All wallet interactions are handled exclusively by your browser extension (MetaMask, Rabby, or similar). You are solely responsible for the security of your wallet. Never share your seed phrase with anyone, including PoolSide support.
Limitation of Liability
To the fullest extent permitted by applicable law, the creators and operators of PoolSide shall not be liable for any direct, indirect, incidental, special, consequential, or exemplary damages arising from your use of, or inability to use, the software — including but not limited to loss of funds, loss of profits, loss of data, or business interruption — regardless of whether such damages were foreseeable.
Regulatory Compliance
Access to and use of PoolSide may be restricted in certain jurisdictions. It is your responsibility to ensure that your use of PoolSide complies with all laws and regulations applicable to you in your jurisdiction. PoolSide makes no representation that the software is appropriate or lawful for use in every location.
Changes to the Software
PoolSide may be updated, modified, or discontinued at any time without prior notice. Features, pricing, and data availability are subject to change. Continued use of PoolSide after any such changes constitutes acceptance of the updated terms.