SILT

SILT

offline no wallet

Uniswap v4 pool · ETH / SILT · an AMM with memory

SILT mark

An AMM with memory.

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.

SKIM 2.00% RAKE 25% → 0% STRATUM 1000 TICKS ≈ 10.5% POOL FEE 0 NO WITHDRAWAL PATH

Wallet

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 SImplied buy volumeRake of skimEffective take of buys
0 ETH0 ETH25.00%0.50%
20 ETH~1,000 ETH12.50%0.25%
60 ETH~3,000 ETH6.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

FunctionWho can call itWhat it does
claimCreator()AnyoneSends 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 onlyTurns the rake off forever. Future buy-side skim becomes 100% support. This cannot be undone.
addLiquidity()Creator onlySeeds 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 onlyPulls seed liquidity back to the creator. Swap sediment is never removed.

Live numbers

FunctionWhat 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

FunctionWhat 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.

FunctionWhen it runsEffect on your trade
beforeSwapStart of an exact-input swapTakes 2% of the ETH or SILT you specified, then the pool swaps the remaining 98%.
afterSwapEnd of every swapOn 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.
afterInitializeOnce, at pool creationLocks 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.