Ethereum mainnet · Uniswap v4

One swap fee. Ten assets. Your wallet.

ETHX10 has no transfer tax — the pool does the work. A v4 hook takes 3% of every trade in native ETH, buys the next leg of a ten-asset basket and pushes it straight to holders. Nothing to claim, nothing to stake.

Ten basket legs arranged in a rotation wheel NEXT LEG PEPE auto · v3 route
Each harvest buys the next leg. Weight evens out over a full turn.
Swap fee
3%
in native ETH, both ways
Basket
10 legs
equal weight by rotation
Supply
1B fixed
no mint function
Eligibility
10k ETHX10
held to earn
Launch LP
80%
burned forever

How it works

Leaves the pool as ETH.
Comes back as assets.

Three contracts, one loop. The last step is permissionless — anyone can finish a payout round if the keeper goes quiet.

  1. 01

    The hook takes 3% in ETH

    IndexRewardHook sits on one ETH/ETHX10 v4 pool. Buys and sells both pay, always settled in native ETH, held as ERC-6909 claims until collected.

  2. 02

    The distributor buys the next leg

    Collected ETH is wrapped and routed through Uniswap v3 into the next asset in rotation, then a round opens against a snapshot of eligible supply.

  3. 03

    Holders get pushed, not prompted

    process() walks the holder registry in gas-bounded batches and sends each wallet its pro-rata share. Blocked transfers fall back to a claimable balance.

SwapETH ⇄ ETHX10
3% ETH
Hookv4 · one pool
collect()
Distributorbuys the leg
process()
Your walletno claim

The basket

Ten legs. Equal weight.
One at a time.

Every harvest buys a single asset instead of splitting each fee ten ways and paying out dust. Addresses are the live mainnet contracts — tap to copy.

Specification

Every parameter, stated plainly.

Total supply

1,000,000,000 ETHX10, fixed. No mint function.

Transfer tax

None. The fee lives in the pool hook, so routers, bridges and aggregators behave normally.

Swap fee

3.00% in native ETH on buys and sells. Hard-capped at 5% in code.

Pool

Uniswap v4 ETH / ETHX10, 1% LP fee, tick spacing 200. The hook binds to one pool and rejects every other.

Opening FDV

~$10,000, derived on-chain from a dollar target. The deploy reverts if the aligned tick drifts more than 1.5%.

Launch liquidity

80% of supply, one-sided ETHX10. The LP NFT goes to the burn address.

Eligibility

Wallets holding at least 10,000 ETHX10. Pool, hook and infrastructure are excluded.

Distribution

Push, pro-rata over eligible supply, batched and resumable. process() is permissionless.

forge test --fork-url $ETH_RPC_URL
[PASS] test_fork_endToEndCycle()
  fee collected   1.5 ETH
  PEPE  → holders 87,225,610 PEPE
  MOG   → holders 2,301,496,781 MOG
  USDC  → holders 300.25 USDC
  WETH  → holders 0.12 WETH
[PASS] test_fork_sweepDuringGasSpike()
[PASS] test_fork_manualEquityLegPaysHolders()
[PASS] test_fork_oneSidedLaunchLiquidity()
[PASS] test_tenThousandDollarOpen()
Suite result: ok. all passed

Contracts

Three contracts. Nothing hidden.

Addresses appear here the moment the launch lands on mainnet.

Read this part

What can go wrong.

Gas scales with holders

Push payouts cost gas per wallet. Rounds are batched and resumable; the minimum balance is the throttle.

Harvests are MEV-visible

Buying a leg is a public swap. Slippage floors are set on every harvest.

Permissioned equities

Issuers can refuse transfers. Those payouts are booked to a claimable balance instead.

Owner keys matter

Threshold, routes, rotation and fee (max 5%) are owner-settable. Supply, pool binding and burned LP are not.

Gas-spike sweep

When a round would cost more than it pays, the owner can sweepEth fees to a safe address. renounceSweep removes that power for good.

Not investment advice

Experimental, unaudited software on a public chain. Rewards are worth whatever the basket is worth.