$LOTTOUNISWAP V4 HOOK · LOTTO/ETH
LIVE PRIZE POOL STARTING SOON
14.170ETH
WINNER TAKES 98% EVERY 30 MINS
*SIMULATED UNTIL LIVE
RESULTS · LATEST DRAW YOU WON
UNILOTTO
ROUND 1842 · STATUS NOT LIVE
DRAW IN
17:43 · UNIV4 ON
00:00:00
POT
12.847 ETH
+1% PER ETH-OUT
SWAP
00:00:00
ENTRANTS
187 ADDRESSES
412 WEIGHT
THIS ROUND
00:00:00
LAST WINNER
0X4F2…A91D
8.214 ETH
ROUND 1841
§ 01 / MECHANIC

Swap. Hold.
Get drawn.

Every swap in the bound LOTTO/ETH pool is an entry. Every ETH-out swap feeds 1% to the prize pool. Every thirty minutes anyone can be a winner.

STEP 01▸ SWAP

Any swap registers you.

The afterSwap hook records the sender as an entrant for the current round. New swappers start at weight 1 — that grows the longer you hold.

STEP 02▸ FEED

1% of ETH-out feeds the pot.

When the output is ETH (someone sold LOTTO), 1% is taken via PoolManager flash-accounting and credited to the prize pool.

STEP 03▸ DRAW

30 min later, draw.

A weighted-random winner is picked from the round's entrants. The pot splits 98 / 1 / 1, the round resets, the timer restarts.

§ 02 / LOYALTY

Hold longer.
Weigh heavier.

The token stamps the round you first acquired LOTTO. The hook reads it on every entry. The longer you've held, the more weight your entry carries — up to a fixed ceiling.

ROUND 0×1
+1 ROUND×2
+2 ROUNDS×3
+3 ROUNDS×4
+4 ROUNDS×5
+5 ROUNDS×6
+6 ROUNDS×7
+7 ROUNDS×8
+8 ROUNDS×9
+9 ROUNDS×10
10+ ROUNDS×11
WEIGHT FUNCTION
weight = 1 + min(roundsHeld, 10)

Re-entering inside the same round refreshes the stamp rather than stacking it. Sell everything and your stamp resets when you buy back in.

×11
MAXIMUM MULTIPLIER · 10+ ROUNDS HELD
§ 03 / PAYOUT

Ninety-eight
to the winner.

When the timer hits zero anyone can be a winner. The pot splits in three — clean math, no dust. ETH leaves via low-level automated call.

▸ WINNER

98%

Weighted-random pick from this round's entrants. Paid in native ETH.

▸ TRIGGERER

01%

Bounty for whoever calls drawIfReady() on time. Pays for gas, keeps rounds moving.

▸ BURN · 0xdead

01%

Removed from circulation each round. Keeps the math clean and prevents dust accumulation.

§ 04 / ARCHITECTURE

Two contracts.
Nothing else.

No frontend service, no governance contract, no vesting schedule, no staking module, no off-chain infrastructure. The mechanic lives in Solidity — wired once at deploy.

CONTRACT · ERC-20

Lotto
Token

  • Fixed supply 1,000,000 minted at construction
  • Stamps each holder's first round
  • Stamp resets if balance hits zero
  • setHook is one-shot, non-revokable
  • Round advance is hook-only
⌖ 0X8A2F…F40C / LOTTO
SET ↔ ADVANCE
CONTRACT · UNISWAP V4 HOOK

Lotto
Hook

  • CREATE2-mined address encodes permission flags
  • Hooks afterInitialize · afterSwap · afterSwapReturnsDelta
  • Bound to a single LOTTO/ETH pool on first init
  • Refuses any other pool · requires native ETH
  • Owns prize pool, entrants list, round counter
⌖ 0XC1B7…E2A8 / HOOK
§ 05 / POOL CONFIG

The pool.
The numbers.

A single LOTTO/ETH pool using native ETH — no wrapping. Initial range brackets the starting tick by roughly 3.3× either side. A deliberate tradeoff: depth vs. resilience to price moves.

PAIR
LOTTO/ETH
NATIVE ETH
LP FEE
0.30%
STANDARD V4 TIER
TICK SPACING
60
MATCHES FEE TIER
START PRICE
1 ETH = 10,000 LOTTO
TICK 92,108
TICK LOWER
80,040
≈ 3.3× CHEAPER
TICK UPPER
104,160
≈ 3.3× RICHER
SUPPLY
1,000,000
AT CONSTRUCTION
ROUND
30 MIN
PARAMETERIZED
ROUND 1842 OPEN · POT 12.847 ETH

Swap. Hold.
Win.