Swap fees
Every buy and sell pays a fee in ETH that goes straight into the reserve. The reserve grows; the supply doesn’t. Selling costs 0.5% at the floor and up to 4% far above it.
(R + fee) / Sc > R / Sc
Ledge is a token with a reserve behind it. The reserve sits in its Uniswap v4 pool as a standing bid at the floor price, and every trade, sale or redemption leaves that floor where it was, or higher.
Illustrative simulation in compressed time, running the protocol’s rules.
The floor is the reserve divided by the tokens in circulation. Everything that happens in the protocol changes one side of that fraction or the other, and the rules are written so the result never shrinks.
Every buy and sell pays a fee in ETH that goes straight into the reserve. The reserve grows; the supply doesn’t. Selling costs 0.5% at the floor and up to 4% far above it.
(R + fee) / Sc > R / Sc
When price falls to the floor, the reserve buys at or below it. The wall’s top edge is always rounded down, so it can absorb every circulating token without running dry.
(R − ΔQ) / (Sc − ΔT), with ΔQ ≤ ΔT · Pfloor
The hook sells part of its inventory, but never less than 5% above the floor. Each token sold brings in more ETH than the floor it dilutes.
(R + ΔT · p) / (Sc + ΔT), with p > Pfloor
Anyone can hand tokens back to the hook for 98% of the floor, paid in ETH. The 2% left behind belongs to everyone who stays.
(R − a · Pfloor · 0.98) / (Sc − a)
The wall below spot and the ask above it form a grid around the price. Every swing up and back down runs the loop once, and the floor finishes it higher, however little anyone paid in fees.
In a long rally the inventory runs out and the protocol stops selling. It keeps what it earned on the way up.
This is the protocol’s arithmetic running in your browser, seeded with 43 ETH of reserve and the starting parameters from the specification. Sell into the wall, redeem, buy from the ask, in any order and any size.
No moves yet. The floor is where the seed put it.
Call redeem on the hook and your tokens are burned for 98% of the floor, paid in ETH. It doesn’t depend on pool depth or on anyone taking the other side.
If the market ever trades below the floor, buying there and redeeming is a straight profit, and that trade pulls the price back up. The floor is enforced by arithmetic, not by liquidity.
Tokens the wall buys leave circulation straight away, so the floor rises the moment they arrive. 40% are burned for good.
The other 60% go to the hook’s inventory. They can only be sold again through the ask, above the floor, which adds more to the reserve than it takes.
Chosen at deployment. Every value below is what the simulator on this page uses.
| Symbol | What it controls | Value |
|---|---|---|
| w | Bid wall width, in tick spacings | 1 |
| wa | Ask width, in tick spacings | 3 to 5 |
| spread | Minimum distance of the ask above spot | 2% |
| askMargin | Minimum distance of the ask above the floor | 5% |
| fb | Buy fee | 0.5% |
| fmin / fmax | Sell fee at the floor / far above it | 0.5% / 4% |
| fr | Direct redemption fee | 2% |
| β | Share of absorbed tokens that is burned | 0.4 |
| θ | Floor drift that triggers a redeploy | 0.4% |
| minBlocks | Minimum blocks between redeploys | 2 |
| askInventoryShare | Share of inventory posted as the ask | 30% |
The ask grid is separable. With the ask share at 0 and the burn share at 1, Ledge is just swap fees into the reserve, a bid wall at the floor, every absorbed token burned, and direct redemption. The floor guarantee is identical. The grid can be switched on later by parameter.
See the minimal configuration