Pick a coin and a size. The desk takes the other side and records an entry mark read from the pool in the same transaction — so your entry is the price at the block you were mined in, not one this page showed you a moment before.
If the mark falls you are paid the fall on your size. A coin can only go to zero, so a short pays at most one times your size. If it rises you lose the rise, and the loss stops at your size.
Your size is your maximum loss and it is fixed the moment you open. Nobody will ask you for more, and there is no maintenance margin to fall below.
If the mark reaches double your entry the position settles at a total loss of your size and stops. That is what makes “your size is the most you can lose” a fact rather than a hope: without it, a coin that ran 10× would owe more than you ever put in.
MIN_HOLD = 10 minutes. You cannot open and close in the same block, or the same few
minutes. That is what stops somebody opening a short, dumping into the pool, and closing against
the price they just made.
There is no oracle, no API and no price anyone types in. A mark is read straight out of the
Uniswap V4 PoolManager's storage with extsload:
Slot 6 is where the PoolManager keeps _pools. Anyone can make the same read against
the same pool at the same block and get the same number. That is the entire pricing system, and it
is why the desk can quote coins no exchange lists: if it trades in a V4 pool, it has a mark.
A market the desk has not listed is refused rather than read. An unlisted market resolves to slot zero, and arithmetic on slot zero produces something that looks like a price and is not one.
Every market has a cap, and the cap is derived, never typed. It answers one question: at what size does it become profitable to cheat?
The attack is the obvious one — open a large short, dump into the pool yourself to cause the fall, collect. So the cap sits at the size where causing a 10% fall costs exactly what the short would pay:
Below that size, manipulating the price loses money. Above it, manipulation pays — and the vault is who pays it. Depth is read in the same transaction as your entry, so a cap derived from stale liquidity can never be used: as a pool thickens the cap rises, as it thins the cap falls, and a pool too thin to support a position stops offering one.
That arithmetic assumes liquidity is spread evenly across the move. Uniswap V4 is
concentrated — liquidity sits in ranges — so a move that walks out of a dense
range can be cheaper to cause than the formula expects. maxStakeBps is the allowance
for that, currently 2500: a quarter of what the arithmetic alone would permit.
A position can never exceed what the vault could pay on it. The size actually offered is the smaller of the derived cap and the vault's free capacity — which is why the maximum grows as fees accumulate, and shrinks while other positions are open.
| What | How much | Where it goes |
|---|---|---|
| Opening fee | 0.30% of your size, once | the vault |
| Holding cost | 0.05% of your size per hour | the vault |
| Closing | nothing | — |
| Spread | none — you enter at the pool's own mark | — |
Both are charged on your size rather than on a notional, because there is no notional: there is no leverage here. A 1 ETH position held for a day costs 0.003 to open and 0.012 to hold.
A $CRASH trade pays 3% — 1% to the PONS curve plus a 2% creator tax. Of that, 2.7% of volume reaches the pot and PONS keeps the rest, so it would be wrong to call the pot's share 3%.
100% of $CRASH's creator fees become the vault, and the vault is the only thing a winning short is ever paid from. The PONS escrow pays the desk contract directly rather than a wallet, because the recipient is recorded at launch and the desk holds no code that could change it afterwards.
Two pots, and the contract will not let them blur:
This is the rule that prevents the failure every desk of this shape dies of: paying winner #2 out of trader #3's collateral. It is checked after every open, close and payout, and the contract reverts rather than continue if it ever stops holding.
Before a position can open, its own worst case must fit inside what the vault has left after everything already owed. The desk writes no risk it has not already harvested the fees to cover, which is why the maximum size falls while other positions are open and recovers as they close.
Every figure on this site comes from one of these.
| Contract | Address |
|---|---|
| CrashDesk | not deployed yet |
| $CRASH | not launched yet |
| Uniswap V4 PoolManager | 0x000000000004444c5dc75cB358380D2e3dE08A90 |
| PONS factory | not deployed yet |
| PONS fee escrow | not deployed yet |
| USDG | not configured yet |
The chain is Ethereum, EVM 1. The useful calls on the desk are
markOf(bytes32), depthOf(bytes32), capOf(bytes32) and
freeVault(address) — the same four this site reads on every load. A market id is
keccak256(symbol).