Methodology
This page explains, in full, how every number on the Titan Locker Live Statistics panel is counted or priced. It doesn't change when a lock is created or a price moves - for the current figures themselves, see /locker or the public JSON endpoint.
Every lock ever created on any of Titan Locker's on-chain managers (the original V1 manager and every V2-family manager since), counted regardless of status - active, expired-but-not-withdrawn, fully withdrawn, or a fully claimed vesting grant. This is the one figure on the panel that is never filtered by status; it answers “how many locks exist,” not “how many are still in effect.”
A lock counts as active when its restriction is still actually in effect right now:
Vesting uses its own, deliberately broader rule than Active Locks: a vesting schedule counts here whenever it still has an unclaimed balance greater than zero - including a schedule that has already fully matured (past its end date) but hasn't been claimed yet. Only a fully claimed schedule (zero remaining balance) is excluded. A matured-but-unclaimed grant is therefore counted as a vesting schedule here, but is not counted in Active Locks or in Priced Active Value - its contractual restriction has already lapsed, even though the tokens are still sitting in the contract.
Active, non-vesting locks whose unlock time falls within the next 30 days. Vesting schedules are excluded from this figure - vesting has no single discrete unlock moment to count down to, so measuring it against its end date wouldn't mean the same thing as a plain lock's unlock time.
Every USD value is anchored to two reference points, and every other token is priced relative to WETH:
0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 - verified by independently querying WETH9() on both the Uniswap V3 and V4 position managers deployed on this chain and confirming they return the same address.For any other token, DexScreener's price is used first when it has one from a pair quoted against WETH or native ETH with at least $20 of liquidity; otherwise the token is priced from its own on-chain Uniswap V2, V3 or V4 pool against WETH (see below). An asset qualifies only if it's WETH or ETH itself, an LP pair with WETH on one side, a plain token with a price from one of those sources, or a Uniswap V3/V4 position whose two legs can both be priced that way. Any other asset is excluded from Priced Active Value, not priced at $0.
Chainlink's feed reports on-chain when its latest round was updated. If that timestamp is more than one hour old, Titan Locker rejects the price outright and treats ETH/USD as unavailable for that computation, rather than silently pricing assets against a frozen or out-of-date market rate. When this happens, every active lock that would otherwise be priced through ETH/USD becomes unpriced for that snapshot instead.
An LP pair is only priced if its WETH-side reserve holds at least 0.01 WETH. A pool holding less than that is treated as too thin to trust: its reserves are both easy to manipulate and barely reflective of a real, tradable market price. Locks in a pool below this threshold are excluded from Priced Active Value entirely, the same as any other unpriced asset.
For a locked Uniswap V2-style LP token paired against WETH, Titan Locker reads the pool's real getReserves() and totalSupply()at the time of the snapshot, computes the locked amount's exact ownership share of the pool, and values that share's WETH-side reserve at the current ETH/USD price. Because a constant-product pool holds roughly equal USD value on both sides at the current market price, that known-side value is doubled to estimate the whole pool's value - a standard, widely used approximation, not a guarantee against a pool that is thinly traded or manipulated in the exact block read (which is exactly what the minimum-liquidity rule above guards against). A pair with neither side in WETH has no reliable price under this method and is excluded.
A plain locked token that isn't WETH can still be priced if it has a real Uniswap V3 pool pairing it against WETH. Every standard fee tier is checked; if more than one pool exists, the one holding the most actual WETH wins, so a thin pool at one fee tier can never be picked over a genuinely deep pool at another. The pool's real WETH balance must clear the same minimum-liquidity threshold as an LP pair above, or the token stays unpriced. The value itself comes from the pool's live spot price (slot0().sqrtPriceX96), not from any tick-range liquidity math - that's a materially simpler read than pricing a locked position (below), because it only needs the pool's current price, not how much of each token a specific position holds.
Checked only if no V3 pool qualifies. V4 has no per-pair factory or per-pool deployed contract - every pool lives inside one shared PoolManager contract, addressed by a key of (currency0, currency1, fee, tick spacing, hooks), so unlike V3 there's no fixed set of fee tiers to try. Instead, every pool ever created for the token is found from the PoolManager's own Initializeevent log, narrowed to the ones paired with WETH or native ETH (V4 can represent ETH natively). Because V4 pools hold no balance of their own to read directly, how much WETH really backs a given pool is derived from its current liquidity and price - the standard x = L/√P, y = L·√P relationship the protocol itself uses - and that derived amount is held to the exact same minimum-liquidity threshold as everywhere else on this page. As with V3, when more than one qualifying pool exists, the one with the most real backing wins.
One honest caveat specific to V4: a pool can have a custom hook contract attached, which can intervene in swaps and fees. The price and liquidity read here come from the core protocol's own canonical ledger - the same state the hook itself operates on top of, not something a hook can forge - so the number itself is real. But a hook could still make a pool behave in ways this page's valuation doesn't model (for example, unusual fee logic). This is disclosed, not hidden: it doesn't change whether the reading is accurate, only how confidently it should be read as “the same as any plain, hookless market.”
Uniswap V3 and V4 positions are concentrated-liquidity NFTs: the underlying token amounts depend on the position's tick range and the pool's current price. Titan Locker computes them with Uniswap's own liquidity math (getAmountsForLiquidity) at the snapshot block, then prices each leg like a plain token - the WETH or ETH leg at the ETH/USD price, the other leg at its current pool price. Uncollected trading fees are not included. If either leg can't be priced, the whole position is excluded rather than reported at half its value. Because the project-token leg is valued at spot, a position holding a large share of a thinly traded token can carry a value far above what that leg could actually be sold for - see Known limitations.
Any active lock that doesn't clear one of the paths above - a token with no WETH pool anywhere, an LP pair with neither side in WETH, a pool below the minimum-liquidity threshold, a V3/V4 position with a leg that can't be priced, or a snapshot where the ETH/USD price itself was rejected as stale - is excluded from Priced Active Value entirely. It is never counted as $0. The panel shows exactly how many active locks were priced and how many were excluded (for example, “3 of 14 active locks priced · 11 excluded”), and the dollar figure itself carries a trailing + whenever any active locks are excluded - signaling that it is a lower bound, not the complete value locked. The + is dropped only when every active lock was successfully priced.
Each snapshot is computed against a specific block number (shown on the panel as “Last indexed block”), read at the same time as the lock list and the ETH/USD price. A fresh snapshot is computed at most once every 5 minutes; between recomputations, the same snapshot is served to every visitor. If a live recomputation fails for any reason (an RPC hiccup, the price feed being unreachable), the last successfully computed snapshot is served instead rather than an error or a blanked-out panel - it is marked stale once it is more than 30 minutes old, and the panel and the public endpoint both surface that state explicitly rather than presenting old data as current.
Titan Locker is also listed on DefiLlama, whose TVL figure comes from its own open-source adapter, independently of this page. The two numbers count different assets, so they will not match. DefiLlama values only the ETH, WETH, USDG and USDe held by Titan locks - that leg of every LP and V3/V4 position - and leaves out locked project tokens and the project-token leg of every position. Priced Active Value here counts both legs, project tokens at spot, so a balanced position counts roughly twice here, and the figure swings with memecoin prices. DefiLlama also refreshes on its own schedule, so a large lock created in the last hour or so can show here first. Read DefiLlama's figure as the ETH actually locked and this one as the full spot value. More on the DefiLlama listing.
The same snapshot behind the panel above is available as JSON at /api/public/locker/stats, with the same caching and fallback behavior described above. It returns blockchain integers and decimal USD values as strings where precision matters, and includes this page's URL as its methodologyUrl field.