SHERWOOD
Pre-launch · Auction opens at step 02

Take from the extractors.
Give to the held.

Every other redistribution token taxes its own buyers and calls it charity. Sherwood taxes the two parties that actually drain a market — sandwich bots and barons — and pays it out weekly to wallets that held through the epoch. The purse has no owner. No multisig ever touches it.

Function reference

The Sheriff's Ledger

Testnet preview
MEV captured
3.417 ETH
outbid searchers, this epoch
Tolls collected
1.206 ETH
from 23 baron wallets
Eligible holders
1,847
time-weighted, over 1 epoch
Next alms in
00:00:00
epoch closes, root posted
› waiting on the next block…
§01The Toll

A sell fee that scales with how much of the forest you own.

The fee is read from the seller's own balance at swap time — no list, no admin, no discretion. Hold a normal position and you trade free forever. The rate is a pure function of one number, and anyone can call tollBps(address) to check it before they sign.

StandingShare of supplyTokens (of 1B)Fee on sell
Villagerunder 0.05%under 500,0000.00%
Freeman0.05% – 0.25%0.5M – 2.5M1.00%
Merchant0.25% – 1.00%2.5M – 10M4.00%
Baronover 1.00%over 10,000,0009.00%

Weigh your purse

Position held 500,000 SWD
10K500K10M50M
Share of supply0.050%
Notional at $0.004$2,000
Toll on a full exit$20
You are a
Freeman
Toll rate
1.00%

A working position. One percent, and the coin goes to the epoch purse, not a team wallet.

§02The Sheriff's Purse

The real money comes from the bots, not from you.

Sherwood is not a fee-on-transfer ERC-20 — those break on aggregators, bridges and concentrated liquidity. It is a Uniswap v4 hook. The hook does two jobs on every swap: it applies the Toll, and it runs a per-block priority auction over the pool.

A searcher who wants to sandwich or backrun your trade has to bid for the right, and the bid goes into the purse instead of to the builder. The extraction doesn't stop — it changes who it pays. Every block of volume is revenue the holders keep.

Swap arrives any router beforeSwap() 1 · read tollBps(sender) 2 · open block auction 3 · settle, then swap Searcher bid was builder revenue Baron toll 0–9% of the sell Purse no owner
§03Alms Epochs

Every seven days the purse empties itself.

At the close of an epoch a permissionless keeper computes the distribution and posts a Merkle root. Anyone can be that keeper; the first to post a root matching the on-chain state takes a fixed gas bounty. Holders then call claim() themselves. At no point does an address controlled by a human hold the money.

60%
To eligible holders, weighted by time held
25%
Grants pool, voted quadratically
15%
Burned
Defense 01

Time weight

Your claim is the minimum balance you held across the epoch, multiplied by consecutive epochs survived, capped at eight. A wallet minted yesterday earns close to nothing for two months.

Defense 02

Personhood gate

World ID or a Gitcoin Passport score unlocks full weight. Unverified wallets still claim — at 25%. No KYC, no names, no document ever touches the contract.

Defense 03

Claim floor

A claim worth less than roughly three dollars of gas doesn't clear. Splitting a position across five hundred wallets to farm your own alms becomes negative-EV by arithmetic.

Three defenses stacked, all enforced in the contract. Farming the alms pool costs more than it pays.

§04The Launch

No presale. No team allocation. No round.

Not as a slogan — as the only structure this idea survives a day of scrutiny under. Every token enters circulation through one 72-hour descending-price auction with a hard per-address cap, so no single buyer can take more than 0.05% of supply.

TermSettingVerifiable by
Supply1,000,000,000 SWD, fixedno mint function exists
Team / insider allocation0%holder list at block zero
DistributionDutch auction, 72hauction contract, verified
Per-address cap0.05% — 500,000 SWDenforced in bid()
Auction proceeds100% into liquidityone tx, before trading
LP tokensburned, permanentlytransfer to 0x…dEaD
Upgradabilitynone — no proxy, no ownerrenounced at deploy
Admin functionsthere are nonethe ABI, §05
§05Function Reference

The whole surface, in eight rows.

This is every external function on the protocol. If a function you were promised isn't on this list, it doesn't exist. Note the caller column: nothing here is restricted to a privileged address, because there isn't one.

FunctionArgumentsEffectWho may call
tollBpsaddressReturns the fee in basis points for that holder, right nowanyone · view
beforeSwapkey, paramsApplies the toll, opens the block priority auctionPoolManager only
afterSwapkey, deltaSettles the winning bid into the pursePoolManager only
bidPrioritypoolId, amountSearcher bids for first position in the blockanyone
settleEpochroot, epochPosts the distribution root, pays the keeper bountyanyone, after close
claimepoch, amount, proofPays a holder their alms for a settled epochthe holder
voteGrantproposalId, weightQuadratic vote over the grants poolany holder
burnSurplusSends the 15% burn tranche to the dead addressanyone
§06Order of Battle

What ships, in order.

00Hook on testnetbeforeSwap / afterSwap, auction running against simulated order flowIn progress
01Audit publishedSpearbit or Cantina tier, full report out before any sale opensNext
02Dutch auction opens72 hours, capped per address, no allowlist, no early accessQueued
03LP burned, trading opensthe contract address is published at this step and not beforeQueued
04First alms epoch settlesseven days after trading, root posted by whoever gets there firstQueued
05Personhood gate enabledfull claim weight for verified wallets; unverified keep claiming at 25%Queued
06Grants round onequadratic vote over the accumulated 25% trancheQueued
§07The Greenwood

Nobody gets in before you do.

No allowlist to miss, no seed round already sitting on your exit liquidity, no team wallet waiting to unlock. One auction, one cap, one price for everyone who shows up — and from the first block onward the purse pays the people who stayed.

The contract address appears in the header above the moment liquidity is burned and trading opens.