Rails

About this explorer

Read on visitFigures are read from the chain when you open the page. History, listings and holder counts arrive when Rails indexes this protocol.

The Rails Uniswap V4 explorer shows a wallet's Uniswap V4 liquidity positions on Ethereum. For each one it shows the position's range, its fees and its pool over the last 30 days.

How it works

  • A Uniswap V4 pool holds two tokens and prices one in the other. A provider deposits both into a position with a range, a lower and an upper price. Outside its range a position holds only one of the two tokens and earns nothing.
  • Each swap pays the pool's swap fee to the liquidity in range at that moment. The fees wait in the position as uncollected fees until its owner collects them.
  • Every Uniswap V4 pool lives in one contract, the PoolManager. A pool may have a hook, which can set a dynamic fee that changes from swap to swap.
  • Every figure is in the pool's quote token, the one it prices the other in, at the pool's price. Uniswap runs no dollar price feed, so Rails states no dollar figure here.
  • Rails does not forecast, rate or recommend.

How Rails reads it

  • PositionManager 0xbD21…ee9e: each position's owner, its pool (two tokens, fee, tick spacing and hook) and its liquidity; a wallet's positions, from the position NFTs sent to it, each checked against its current owner.
  • StateView 0x7fFE…7227: each pool's price, fee, liquidity in range and fee growth, and the position's fee growth inside its range.
  • Each token: its symbol and decimals.

Rails's server reads these contracts at the block current when you open a page, and at a block 30 days back. A past block's answers are stored once that block is final, so a later visit reads only the newest block again.

Glossary

Position
: A position is liquidity one provider has placed in a pool between two prices. It holds the pool's two tokens and is an NFT, a token its owner's wallet holds. Docs: Concentrated liquidity
Range
: A position's range is its lower and upper price. The position earns fees only while the pool's price sits inside it. Docs: Concentrated liquidity
Swap fee
: The swap fee is a share of every trade, paid to the liquidity in range at the moment of the swap. Docs: Fees
Uncollected fees
: Fees a position has earned wait in the position until its owner collects them, and are not added to its liquidity. Docs: Fees
PoolManager
: The PoolManager is the one Uniswap V4 contract that holds every pool and its state. Docs: PoolManager
Hook
: A hook is a contract attached to one pool, which the pool calls on each action it has permission for, such as a swap or a withdrawal. Docs: Hooks

A wallet's positions

Enter a wallet address or ENS name on the front door to see that wallet's Uniswap V4 positions that hold liquidity, newest first. A wallet with more than 200 shows the newest 200, and the page also counts its Uniswap V3 positions.

  • Each row names the position's number, its two tokens and its fee.
  • Each row opens the position's page.

Position page

The position page shows the two tokens the position holds now, their worth in the quote token, its fees not yet collected and the day it opened, with its range drawn against the price. Under it, a table sets the position and its pool now beside 30 days back.

Press a figure's label to read what it means. The (i) under a section says what its figures mean for the wallet. A section's ⋮ menu traces each figure to the chain.

Uniswap V4 on other chains isn't covered here.See what Rails covers on each Ethereum explorer

Official documentation: Uniswap V4 documentation