Every curve anyone has ever shipped is amnesiac: a billion dollars of volume leaves the pool’s shape exactly as it found it. SILT makes support and resistance load-bearing.
A 2% skim is taken on the input of every swap — buys pay ETH, sells pay SILT — and, after a small, decaying, disclosed creator cut on the buy side only, the entire skim is deposited back into the pool as permanent, hook-owned, unremovable liquidity. The deposit is not parked at the current price. It is placed in the price stratum the swap just traversed.
A buy hardens the ground below the new price into real bid-side depth. A sell thickens the ceiling above it into real overhead supply. Play it forward: after a month, the pool’s liquidity profile is the volume profile of its entire life. Ranges where the token actually lived are physically thick; ranges price gapped through stay thin. A crash into the zone where three weeks of trading happened decelerates mechanically, because the depth is literally there.
Connect a wallet to trade SILT against ETH. Addresses for the hook, token, and pool appear here once the page is live.
Liquidity terrain
The volume profile of the pool’s whole life. Left of center is ETH support laid by buys (below price). Right of center is SILT resistance laid by sells (above price). High price sits at the top — Uniswap ticks fall as token price rises.
ETH support ←current tick→ SILT resistance
ETH support (buys, below price)SILT resistance (sells, above price)live price
Live state
Read live from the hook. The rake only ever goes down. Creator owed is pulled with Claim — payment always goes to the creator, not to the caller.
Current rake
—
share of buy-side skim
Current tick
—
approx. post-trade tick
Lifetime skim ETH
—
odometer for rake decay
Lifetime skim SILT
—
100% becomes resistance
Creator owed ETH
—
unclaimed prospector cut
Strata explored
—
tickLower bands with sediment
Rake remaining vs genesis 25%
Claim is permissionless and pays the immutable creator address. Renounce is creator-only and irreversible.
Trade
Spend ETH to buy SILT, or spend SILT to sell back to ETH. Every trade pays a 2% skim on the input you send. Buys lay support; sells lay resistance.
Buy SILTspend ETH · lay support
Sell SILTspend SILT · lay resistance
Activity
Waiting for a wallet. Connect to buy, sell, or read the live terrain.
How sediment works
Price space becomes geology.
Ordinary AMMs forget. Liquidity sits where LPs put it, fees accrue to whoever is in range, and the shape of the curve after a million swaps is the same as the shape before them. SILT treats volume as deposition. Every trade leaves a fossil in the ticks it crossed.
01 · Skim
Two percent of input
Every swap is charged the same 2% of the input you actually send — ETH on a buy, SILT on a sell. If you specify an exact output, the extra 2% is charged on top so you still receive the amount you asked for. If the pool cannot fill an exact-input trade, the swap reverts instead of taking a fee on currency that never traded.
02 · Placement
Not at the current tick
Deposits land in the stratum the swap traversed: buys one band below the new price, sells one band above it. The fee becomes inventory at those prices, not a pile of LP sitting on the spot. Territory above the all-time high stays empty — easy up through untouched sky, hard down through everything already built.
03 · Permanence
Burned in place
Sediment positions are owned by the hook. There is no withdrawal path: no function in the contract can ever remove liquidity. Dust that cannot fill a stratum is carried forward and folded into the next deposit on the same side. Nobody is credited. There is nothing to claim except the creator’s published cut.
The pool’s swap fee is zero. The 2% skim is the only charge, and all of it — minus the decaying buy-side creator cut — becomes depth. There is nothing extra to claim, no special router, and no second transaction. Buying SILT through any wallet or aggregator is using the mechanism correctly.
Protocol
The whole mechanism, in English.
SILT is a Uniswap v4 hook on an ETH/SILT pool. It is not a mint, a farm, or a claim contract. You trade; the pool remembers. The on-chain README() function returns the same idea in one paragraph for anyone reading the verified source.
What you are trading
SILT is the token. The hook sits on the ETH/SILT pool and intercepts every swap. The opening price is 1 SILT = 1 ETH. Only the creator can seed or pull the trading-range liquidity. Sediment laid by swaps cannot be withdrawn.
There is no owner, pause, upgrade, extra mint, oracle, or keeper. The only special address is the creator, and its only power is to receive a published, decaying cut of buy-side skim — or to renounce it forever.
Support and resistance
After enough volume, a dump into a well-traded band hits real ETH bids left by the buys that previously climbed through that band. A squeeze into empty sky above the highs meets thin resistance until sells have had time to sediment there.
Each stratum is 1,000 ticks wide — about 10.5% of price. Ranges where SILT actually traded become thick. Ranges price gapped through stay thin.
The creator cut
The creator is paid only from buy-side (ETH) skim. Sells pay the creator nothing: 100% of sell-side skim becomes resistance. Accrued ETH is pulled with claimCreator() — anyone may call it; payment always goes to the immutable creator address. renounceCreator() is creator-only, one-way, and sets future rake to zero.
Wash volume cannot farm it cleanly. Fake volume to speed the decay still pays the 2% skim. The creator trading to farm the rake still pays 2% to recover at most 25% of it.
How to use this page
Connect a wallet, then buy with ETH or sell SILT. The terrain chart redraws from on-chain strata after each trade. Refresh reloads rake, lifetime skim, unclaimed creator ETH, and your balances.
Claim sends accrued creator ETH to the creator. Renounce is irreversible and should only be used by that address if they intend to give up the cut.
Hyperbolic rake
The rake is a share of buy-side skim, not an extra fee on top of volume. Volume is the clock: there is no admin switch and no oracle. S is cumulative ETH skimmed from buys.
rakeBps(S) = RAKE0_BPS × RAKE_HALF / (RAKE_HALF + S) = 2500 × 20 ETH / (20 ETH + S)
It starts at 25% of the skim (0.50% of buy volume), halves every 20 ETH of cumulative buy-side skim — roughly 1,000 ETH of buy volume per halving — and falls toward zero. After 200 ETH of skim the rake is about 2.3%. currentRakeBps() is the live number on this page: it only ever goes down, and becomes zero immediately if the creator renounces.
Cumulative buy skim S
Implied buy volume
Rake of skim
Effective take of buys
0 ETH
0 ETH
25.00%
0.50%
20 ETH
~1,000 ETH
12.50%
0.25%
60 ETH
~3,000 ETH
6.25%
0.125%
200 ETH
~10,000 ETH
~2.27%
~0.045%
∞
∞
0%
0%
Frozen rules
These numbers cannot change after launch.
The skim, the starting rake, the halving size, and the width of each price band are fixed in the hook. The pool itself charges 0% swap fees — the 2% skim is the only take.
SKIM
2.00%
Taken from every swap’s input, buys and sells alike.
STARTING RAKE
25%
Of buy-side skim at genesis — 0.50% of buy volume. Then it decays.
HALF-LIFE
20 ETH
Buy-side skim at which the creator cut has halved once.
STRATUM
~10.5%
Each band is 1,000 ticks wide. That is where sediment is placed.
On-chain functions
What the contract actually does.
You do not need a special router. Swaps go through the Uniswap v4 pool; the hook runs automatically. The names below are the functions on the hook. Views can be read by anyone. The two write functions are claim and renounce.
Actions
Function
Who can call it
What it does
claimCreator()
Anyone
Sends all unclaimed creator ETH to the immutable creator address. You cannot redirect it. Use the Claim button when there is a balance in Creator owed.
renounceCreator()
Creator only
Turns the rake off forever. Future buy-side skim becomes 100% support. This cannot be undone.
addLiquidity()
Creator only
Seeds the trading range. At launch this is 1 SILT = 1 ETH. Send ETH with the call and approve SILT first. Nobody else can add liquidity to this pool.
removeLiquidity()
Creator only
Pulls seed liquidity back to the creator. Swap sediment is never removed.
Live numbers
Function
What you see on this page
currentRakeBps()
Current rake — the creator’s share of the next buy’s 2% skim, in basis points. 2500 = 25%. Falls as buy volume accumulates; 0 if renounced.
rakeBpsAt(S)
The same formula at any cumulative skim S. Used to prove the decay: 2500 × 20 ETH / (20 ETH + S).
lifetimeSkim0()
Lifetime skim ETH — total ETH taken from buys. This is the odometer that drives rake decay.
lifetimeSkim1()
Lifetime skim SILT — total token taken from sells. All of it becomes resistance.
creatorOwed()
Creator owed ETH — accrued cut not yet pulled. claimCreator() zeroes this and pays the creator.
creator() / creatorRenounced()
The payee address, and whether they have already given up the rake.
Terrain
Function
What it is for
stratumAt(tick)
One price band’s record: liquidity from buys, liquidity from sells, and the raw ETH and SILT sunk there. The chart is built by walking these bands.
terrainBounds()
Lowest and highest bands that have any sediment, plus whether any exists yet. Empty pool → no bars.
supportRange() / resistanceRange()
Where ETH bids (support, below price) and SILT offers (resistance, above price) have been laid. The green line is an estimate of live price from the resistance boundary.
dust0() / dust1()
Tiny leftovers too small to place as a full deposit. They roll into the next buy or sell on the same side. Nobody can withdraw them.
README()
A single English paragraph of the mechanism, stored on the contract itself.
During a swap
These run inside Uniswap, not as buttons. They are listed so you can match the verified source to what happens when you trade.
Function
When it runs
Effect on your trade
beforeSwap
Start of an exact-input swap
Takes 2% of the ETH or SILT you specified, then the pool swaps the remaining 98%.
afterSwap
End of every swap
On exact-output, takes 2% of the input that was actually used (on top of the quoted amount). Then deposits the skim as support (buy) or resistance (sell). Reverts the whole trade if an exact-input fill was incomplete.
afterInitialize
Once, at pool creation
Locks the hook to this ETH/SILT pool at the genesis price. It cannot be pointed at another pool later.
Liquidity-add and donate hooks are off. The contract never offers a function that removes its own sediment.
Before you trade
Questions people actually ask.
Who owns the depth?
Two layers. Seed liquidity is added and removed only by the creator — no one else can LP this pool. Sediment from the 2% skim is permanent: it stays in the pool as support and resistance and cannot be withdrawn.
Do I pay 2% plus the creator rake?
No. You pay 2% of input. The rake is taken out of that skim, not on top. At genesis, 0.50% of buy volume goes to the creator and 1.50% becomes support. As volume grows, more of the 2% becomes depth and less becomes the cut. Sells: the creator gets nothing.
Why did my swap revert?
Usually the pool could not fill the size after the 2% skim — not enough depth in range, or a price limit. The hook refuses a partial exact-input fill so it never charges a fee on ETH or SILT that did not trade. Try a smaller size.
Is there anything to claim as a trader?
No. Depth accrues to everyone through the pool. The only pullable balance is the creator’s ETH cut. This software is unaudited and is not financial advice. You can lose the assets you swap.