HF

Hood Flows

See what is gaining and losing attention on Robinhood Chain

Supply methodology

What each UP lock number means

Hood Flows reads every discoverable veUP position at one finalized Robinhood Chain block, then publishes only after the position total matches the escrow contract's supply.

Back to Supply
01

Time-locked

A non-permanent position with a positive amount and an expiry after the indexed block's timestamp. It appears in one weekly expiry bar.

02

Eligible to withdraw

A non-permanent position with a positive amount whose expiry has passed. The UP is still inside escrow until its owner withdraws.

03

Permanent

A positive position marked permanent by the contract. It has full voting power and no current expiry, although the owner may switch it back later.

04

Economically retired

A positive position owned by the zero or dead address. Recoverability takes precedence over whether the contract marks it timed or permanent.

One block, one answer

How a snapshot is built

The worker validates chain ID 4663, selects a block 20 confirmations behind the current head by default, and reads the block timestamp, highest minted token ID, every lock, every owner, every escrow type, and contract supply at that same block. Failed reads are retried. Any unresolved position prevents publication, so the previous complete snapshot stays visible instead of being mixed with partial data.

The contract rounds lock ends down to seven-day epochs. Hood Flows groups the exact on-chain end timestamps and does not invent expiry dates for permanent or retired amounts.

Supply equation

How totals reconcile

Time-locked + eligible to withdraw + permanent + economically retired = enumerated escrowed UP

The result must match the contract's deposited `supply()` value within one base unit. Permanent flags are also checked against `permanentLockBalance()`. Unknown, withdrawn, and merged zero-balance token IDs do not add to the total.

Voting power

Why veUP falls toward expiry

UP amount × remaining seconds ÷ four years

A permanent position uses its full amount. A timed position reaches zero estimated voting power at expiry. The interface labels this an estimate because contract-specific checkpoint rounding can differ by a small amount.

Limits

What this does not prove

Expiry only makes a lock eligible to withdraw. It does not prove the owner will withdraw, sell, or move the market. Current contract state also cannot reconstruct every earlier extension or merge, so history begins with Hood Flows' first successful hourly snapshot.

Hood Flows does not derive liquid circulating supply from total supply because treasury, vesting, bridge, and liquidity-pool balances are outside this feature.

How to read this

Four common lock changes

  1. A 1,000 UP timed lock: it appears once in its exact expiry week, then moves to eligible to withdraw if it expires without being withdrawn.
  2. A 5,000 UP permanent lock: it appears in Permanent and never receives a fake chart date.
  3. A veNFT sent to the dead address: it appears as Economically retired because the UP cannot be recovered by an ordinary owner.
  4. A lock extended from September to December: the next complete snapshot removes it from September and adds it to December; it is never counted twice.

Public on-chain analytics, not financial advice.