Titan LockerTITAN LOCKER

Methodology

How Titan Locker's Live Statistics Are Calculated

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.

Total Locks

Every lock ever created on either of Titan Locker's two on-chain managers (the original V1 manager and the current V2 manager), 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.”

Active Locks, and expired/withdrawn handling

A lock counts as active when its restriction is still actually in effect right now:

  • A plain token or LP-token lock is active when it still holds a nonzero balance and its unlock time is still in the future. Once withdrawn (balance reaches zero) it stops being active immediately, regardless of the unlock time.
  • A Uniswap V3/V4 position lock holds an NFT, not a token balance - by contract design its on-chain balance field is always zero, so it's judged purely by unlock time: active until that time passes, whether or not it has since been withdrawn.
  • A lock whose unlock time has already passed but that still hasn't been withdrawn is not counted as active - the restriction itself has lapsed, even though the asset hasn't moved yet. It still counts in Total Locks, just not here.

Vesting Schedules

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.

Unlocking in 30 Days

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.

Priced Active Value: price sources

Robinhood Chain is new, and there is currently no confirmed, independently reliable price aggregator covering arbitrary tokens on it. Rather than estimate or guess, Titan Locker only trusts exactly two things:

  • ETH/USD from CoinGecko's public price API - a globally liquid price that isn't specific to this chain or to Titan Locker.
  • WETH on Robinhood Chain, at 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.

An asset qualifies only if it's WETH itself, an LP pair with WETH on one side, or a plain token with a real, sufficiently liquid Uniswap V3 or V4 pool pairing it against WETH or native ETH (see below). Any other asset has no reliable price source at all under this rule - it is excluded from Priced Active Value, not priced at $0.

Stale-price rejection

CoinGecko reports when it last refreshed the ETH/USD price it returns. 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.

Minimum-liquidity rule

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.

LP-token valuation (Uniswap V2-style pairs)

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.

Plain-token valuation via a Uniswap V3 pool

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.

Plain-token valuation via a Uniswap V4 pool

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/V4 position valuation

Uniswap V3 and V4 positions are concentrated-liquidity NFTs: the actual underlying token amounts depend on the position's specific tick range and the pool's current tick, which requires tick-range liquidity math that Titan Locker does not currently implement. Rather than approximate this, every V3/V4 position lock is always excluded from Priced Active Value - it is still counted in Total Locks, Active Locks, and LP & Position Locks, just never in the dollar figure.

Unpriced-asset handling

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, 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.

Indexed block and update frequency

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.

Known limitations

  • Priced Active Value only ever reflects WETH, WETH-paired LP tokens, and plain tokens with a real, sufficiently liquid WETH- or native-ETH-paired Uniswap V3 or V4 pool - every other asset on the chain is excluded, however valuable it may actually be.
  • Uniswap V3/V4 position locks are never priced, regardless of size - this is a separate limitation from the plain-token V3/V4 spot-price path above, which only reads an external pool's price, not a locked position's underlying amounts.
  • The LP-token valuation is a standard constant-product approximation (doubling the known side), not an exact accounting for slippage or fees.
  • The V3/V4 spot-price valuation reflects one instant's price on a single pool - it does not account for how much of that token's locked balance could actually be sold at that price without moving it (no slippage modeling).
  • A V4 pool with a custom hook contract is still priced from the protocol's own canonical state (not something a hook can forge), but a hook could still make that pool behave in ways this valuation doesn't model - see the V4 section above.
  • A snapshot can be up to 5 minutes old under normal conditions, and up to 30 minutes old before it is explicitly marked stale.
  • These figures describe public, on-chain activity only - they are not investment, financial, or performance advice, and carry no guarantee of completeness for assets outside the priced scope above.

Public data endpoint

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.