Base mainnet

A holding game
for people who flip
stay.

DualCurve is an on-chain coordination project. Every trade pays into two reward pools that distribute back to the holders who hold the most, for the longest. Two timescales of incentive, one ERC-20, no promises beyond the math.

Buy DCRV on Uniswap ↗Read the whitepaper
CA// pending deploy

Token · Hook · Router renounced · Distributors retain inactivity-gated safety valve

Supply

1BDCRV

Tax / buy · sell

5% / 5%

Small curve

5 ETH

Large curve

500 ETH

The problem

In most memecoins,
only the people who sell first win.

Early buyers extract value from later buyers. The only thing the mechanics reward is being fast on the exit. If you hold, you get nothing for it — you just become the bag for the next round of sellers.

DCRV flips that. Every swap pays a 5% tax in ETH, and that ETH gets routed straight back to the people still holding the token. Sellers fund the holders. The longer you stay, the larger your stake, the more rounds you collect from.

On-chain math, open source, no team in the middle.

Buy DCRV on Uniswap ↗
The mechanism

Every swap feeds two engines.

A 5% tax on every buy and sell routes through a fee router contract. The router splits incoming ETH between two reward pools that run on completely different timescales:

On swap

5% tax

buy or sell

Fee router

splits ETH

75 / 25

75%
25%

Small curve

5 ETH

→ top 100 · push

Large curve

500 ETH

→ top 20 · claim

Tax is collected only on the official Uniswap V4 pool · direct wallet transfers are tax-free

Once deployed, the token, hook, and fee router are fully renounced — the tax rate, the split, and the math are immutable forever. The two distributors retain a single permissioned function: an inactivity-gated safety valve that prevents ETH from being permanently stranded if the protocol stops receiving deposits for 7 consecutive days. The safety valve cannot be triggered during normal operation — any swap on the official pool resets the timer. Read the technical paper for the full architecture.

The curves

Where the redistribution happens.

Two engines, two timescales. SmallCurve fires fast and pays the top 100 every 5 ETH. LargeCurve fires rarely and pays the top 20 every 500 ETH. Both run live, on-chain, every block.

Your position

Connect your wallet to see your DCRV balance, your rank, and your eligibility for both curves.

SmallCurve

push · top-100
idle
accumulation curve · last 4 cycles + now3.42 / 5 ETH
02.55ETHthreshold · 5 ETH3.42 ETH−4−3−2−1now5.00 ETH5.00 ETH5.00 ETH5.00 ETH

68.4% of current cycle filled

locked0 ETH
lifetime distributed4.823 ETH
lookback window10 blocks

your reclaimable

push failed → pull here

connect wallet to see your balance

LargeCurve

merkle · top-20
idle
accumulation curve · current cycle312.4 / 500 ETH
0250500ETHthreshold · 500 ETH312.4 ETHstart25%50%75%now

62.5% of cycle filled · 187.6 ETH to go

locked0 ETH
lifetime in rounds482.3 ETH
lookback window100 blocks
claim window30 days

your claims

2 rounds

connect wallet to view claims

Every swap feeds these curves.

More volume → more frequent distributions to holders. That’s the loop.

Buy DCRV on Uniswap ↗
// live · on-chain · in real time

token

DCRV

DualCurve

supply

1,000,000,000

dcrv (fixed)

fee per swap

5.00%

buy + sell · v4 hook

split

75.00% / 25.00%

small / large

distributed

487.123 ETH

lifetime

small pool

3.42 ETH

68.4% of 5 ETH

large pool

794.7 ETH

62.5% of 500 ETH

receivers

100 / 20

small / large

//

top holders

live ranking · 30s refresh
#addressbalance%supplysmall (top 12)large (top 20)
010x1f7a…6a7b84,300,0008.43%
020x2b9e…0c1d61,200,0006.12%
030x3c8d…0c2e47,800,0004.78%
040x4d7e…1d3f39,100,0003.91%
050x5e6f…3e4a32,400,0003.24%
060x6f5e…837228,900,0002.89%
070x7a4b…1a2b24,100,0002.41%
080x8b3c…0b1c19,700,0001.97%
090x9c2d…9c0d15,200,0001.52%
100xa1b2…a9b011,800,0001.18%
110xb1c2…b9c09,200,0000.92%
120xc1d2…c9d07,800,0000.78%
//

distribution rounds

small + large history

R#2

21d 0h left
482.3 ETH · 198 claimed
41.0% claimed21d 0h

R#1

expired
420 ETH · 419.8 claimed
100.0% claimedExpired

R#0

swept
385 ETH · 270 claimed
70.1% claimedExpired
How it works

Three steps. No surprises.

Full whitepaper →
  1. 01

    buy & hold DCRV on Base

    every swap on the official DCRV/ETH pool pays a 5% hook fee in ETH. there is no tax on regular transfers — only swaps through the official pool. fully composable with the rest of DeFi.

  2. 02

    wait for thresholds to fill

    75% of every fee feeds SmallCurve; each time it crosses 5 ETH, the protocol pushes ETH pro-rata to the top 100 holders. 25% feeds LargeCurve; each time it crosses 500 ETH, the top 20 holders get a merkle round to claim for 30 days.

  3. 03

    receive ETH directly

    SmallCurve pushes ETH to your wallet automatically via a low-gas call; failed pushes are saved as a pull-claim. LargeCurve gives you a merkle proof to claim manually. distributions stop the moment you fall out of the top — accumulating supply early is what compounds the return.

The math, in plain words

What you actually get for holding.

The bigger your share of the top, the bigger your slice of every distribution. Two concrete examples, using DCRV’s real parameters.

small curve · top 100

assumption · you own 2,000,000 DCRV (0.2% of supply). that lands you somewhere mid-table inside the top 100, which collectively holds ~620M DCRV.

you receive · every time SmallCurve fills 5 ETH, you get roughly 0.0161 ETH. at ~3–4 rounds/day at $250k volume, that’s around 0.05–0.07 ETH per day dripping into your wallet — automatically.

large curve · top 20

assumption · you own 50,000,000 DCRV (5% of supply). that puts you inside the top 20, which collectively holds ~400M DCRV (40% of supply).

you receive · when LargeCurve fires its 500 ETH round, your share is roughly 62.5 ETH, claimable in a single transaction within a 30-day window. one event can be worth months of SmallCurve drips.

// numbers depend on real protocol volume and how supply ends up distributed — DCRV pays only what flows through it. shares are proportional to balance inside the top: holding twice as much earns twice as much. the formula and full economic analysis live in the whitepaper.

Buy DCRV on Uniswap ↗
Defense in depth

The obvious attacks are already priced in.

A naive design would be trivially exploitable: split your bag across 100 wallets, monopolise the top, drain the pool. A reward tied to the snapshot block invites flash-loan front-running. We’ve considered the obvious vectors and built defenses for each — not as marketing copy, as cost-imposed friction that makes the attacks unprofitable.

anti-sybil · min holding

min 0.1% supply

to enter the ranking at all, a wallet must hold ≥1,000,000 DCRV (0.1% of 1B). fragmenting a bag into 100 wallets that each fall below this threshold disqualifies all of them.

anti-sybil · time gate

1-hour hold time

tokens must sit in a wallet for ~1,800 blocks on Base (≈1 hour) before that wallet is considered eligible. buy-at-trigger / sell-at-claim loops don't qualify.

anti-mev · retroactive snapshot

snapshot at block + lookback

when a threshold is crossed, a snapshot is requested but only executable 10 blocks later (SmallCurve) or 100 blocks later (LargeCurve). by the time you see the trigger on-chain, the ranking is already decided.

anti-mev · heap rebuild cost

fragmentation has a gas tax

every new wallet entering the top-100 forces an on-chain heap rebuild. splitting a position into many wallets becomes economically expensive long before it becomes profitable.

accounting · pull pattern

pull-based large curve

the large curve doesn't push 500 ETH to 20 wallets at once. it publishes a merkle root and lets winners claim. reentrancy attacks, gas griefing, DoS via malicious contracts — all eliminated.

accounting · credit fallback

no reward is lost

if a push transfer fails (recipient is a contract that reverts, ran out of gas, etc.), the reward is recorded in reclaimable[user] and can be pulled later. liveness preserved without sacrificing the auto-distribution UX.

liveness · safety valve

ETH never permanently locked

if the protocol becomes inactive for 7 consecutive days (zero deposits from the official pool), an inactivity-gated rescue function lets accumulated ETH be recovered. the mechanism cannot be triggered during normal operation — any swap resets the timer.

Why it works

The loop that pays itself.

Most token mechanics are zero-sum games dressed up as financial products. DCRV is a positive feedback loop between trading activity and holder retention — five mechanics, one direction.

  1. 01

    sell pressure becomes the protocol's fuel

    every sell taxes 5%. most of that goes back to the people who didn’t sell. sellers aren’t just losing position — they’re funding the people who kept theirs. the exit door has a turnstile that pays the people staying in the room.

  2. 02

    holding becomes competitive, not passive

    holding isn’t just “don’t sell”. it’s about ranking. are you in the top 100? are you climbing toward the top 20? every other holder’s behavior affects your position. the leaderboard creates a game where the optimal move is to accumulate, not flip.

  3. 03

    volume compounds rewards which incentivizes holding

    more volume → more tax → bigger pool → bigger payouts → stronger reason to hold → fewer sells → higher floor → more confident buying → more volume. the loop isn’t infinite, but it’s self-reinforcing in normal conditions.

  4. 04

    the large curve is asymmetric upside, baked in

    every ETH that lands in the large pool is a deferred claim. you don’t know when it triggers. you don’t know exactly how big it gets. but if you’re in the top 20 when it does, the payout can dwarf months of small-curve drips. that asymmetry is rare in token mechanics — usually the home run lives outside the protocol. here it lives inside it.

  5. 05

    no team unlocks, no extractive design

    there is no team allocation that vests later and dumps. there is no VC cap table with a 6-month cliff. the only outflows from the protocol are rewards back to holders. everything that enters, returns.

Buy DCRV on Uniswap ↗// every block accumulated early is a slot in future distributions
//

system

immutable parameters

protocol parameters

  • networkBase
  • hook fee5.00% per leg (buy + sell)
  • smallcurve threshold5 ETH
  • smallcurve receiverstop 100
  • smallcurve lookback10 blocks (~20s)
  • largecurve threshold500 ETH
  • largecurve receiverstop 20
  • largecurve lookback100 blocks (~200s)
  • claim window30 days
  • ranking size100 holders
  • min hold time1,800 blocks (~1 h)
  • min balance to rank0.1% of supply
  • fee split (default)75% small / 25% large
  • renouncedownership renounced after init

deployed addresses

  • token— not configured —
  • holder ranking— not configured —
  • snapshot · small— not configured —
  • snapshot · large— not configured —
  • smallcurve distributor— not configured —
  • largecurve accumulator— not configured —
  • fee router— not configured —
  • v4 hook— not configured —
//

buy DCRV

ETH → DCRV via uniswap v4

amount in

wallet balance: 

ETH

receipt · estimated

you pay0.1 ETH
hook fee (5%)-0.005000 ETH
effective input0.095000 ETH
goes to small (75%)0.003750 ETH
goes to large (25%)0.001250 ETH

on sell, an equivalent 5% is taken from your ETH output and routed the same way. you receive 0.095000 ETH-equivalent of DCRV after fee.