Uniswap V4Ethereum Mainnet30 min epochs

Stay.Get Rewarded.

The pool rewards those who stay.

Regular is a dynamic Uniswap V4 Hook that turns on-chain pool activity into holder rewards.

Activity—
State—
Epoch—
Reward—
Reading pool activity
No activity readingEpoch timing unavailable
01How it works

The pool remembers.

Regular observes the recent activity happening inside the pool — volume, swap count and unique traders, decayed over time. That measurement becomes the activity score, the score decides the pool state, and the state is what the hook acts on until the next epoch closes.

Activity by epochScore 0–100
Reading epoch history
Each bar is one closed epoch, at the score the contract recordedEpochs close on a permissionless call — the window is a minimum, not a schedule
Activity score
—/ 100
0Unable to read the score100
Current state
QUIET
REGULAR
ACTIVE
HOT
EXTREME

State unavailable — the rewards engine could not be read

Current sell penalty
—

The sell penalty could not be read from the rewards engine, so none is shown here. Nothing is estimated in its place.

ETH streamed to holders—
Vault ETH balance—
02Current epoch

Every 30 minutes.

Each epoch measures activity and sizes the REGULAR allocation for eligible holders. The 30-minute window is a minimum, not a clock: once it elapses, finalizeEpoch() can be called by anyone, and the epoch closes at that moment.

Next distributionTiming unavailable
Current epoch—State unavailable
StartEnd
Progress unavailableEpoch timing could not be read
Current epoch
—
NOT EXPOSED BY THE CONTRACT.
Current activity
—
NOT EXPOSED BY THE CONTRACT.
Projected allocation
—
NOT EXPOSED BY THE CONTRACT.
Eligible weight
—
NOT EXPOSED BY THE CONTRACT.
Reward information

A holder’s share of the allocation is their effective weight against the total eligible weight, and it settles when the epoch closes. Until then every per-wallet figure on this site is an estimate, and labelled as one. Sell-penalty ETH is separate: it streams to holders continuously, not once per epoch.

Base epoch reward—
State multiplier—
Maximum per epoch—
Vault reserve—
03Check your position

Did you stay?

Check your position using the wallet you use to hold $REGULAR. Paste the address — that is all this needs.

No wallet connectionNo signatureNo account, no emailPublic reads only
Why weight, not balance

weight = MIN(balance at epoch start, balance now)

Buying just before an epoch closes does not earn on the new tokens — the epoch-start snapshot floors the weight. Selling early does not preserve the epoch’s reward either: weight updates live on every transfer, so the lower balance floors it from the other side. An address that simply holds keeps full weight for the whole epoch, with nothing to claim, stake, or sign.