sealed bids · second price · burned

Win the pot.
Pay the runner-up's price.

Every $BETA trade made on this site, and every swap in the Bellows pool (a Uniswap v4 hook), drops 1% of its ETH into the furnace. Each round, half of it goes to the highest sealed bid. The winner pays only the second-highest bid in $BETA, and every token they pay is burned.

seal a bid into round 0balance 0 β
β
+40%
bidding closes in
0:00
burned so far
0 β
0.000 Ξ
in the furnace

The next round to settle wins half: 0.000 Ξ

bellows fed 0.0000 Ξ♛ winner's pass: nobody yet

round 0 · sealed 0 bids

round – · opening

Bids open here once their round closes.

round 0 settled

the bellows is warming up…

your bids

You haven't sealed a bid yet. Your bid and its secret stay in this browser until you reveal; save the receipt if you might switch devices.

the uniswap v4 hook

The Bellows keeps the fire fed.

The Bellows is a Uniswap v4 hook on its own ETH/$BETA pool. Every swap in that pool goes through it, whether it comes from this site, an aggregator, or a bot calling the pool directly. It takes 1% of the ETH side and sends it straight from the PoolManager into the furnace in the same transaction. Nothing sits waiting in a treasury.

site router aggregators direct swaps Bellows takes 1% of the ETH ♛ pass holder: 0% sealed bids locked $BETA furnace sealed 2nd-price auction the other half carries to the next round winner half the ETH 0x…dEaD 2nd price + no-shows losers every token back

Fees on all four swap shapes.Exact-in buys pay from the ETH going in. Exact-in sells pay from the ETH coming out. Exact-out buys pay on top of the ETH the pool takes. The fee is always in ETH, so the furnace never holds a pile of $BETA it would have to sell.

The winner's pass.Whoever won the most recently settled auction trades in the Bellows pool fee-free until the next winner is crowned. It's one more reason to win, and a round with no winner doesn't take the pass away.

One pool, nobody else's.The hook only accepts one ETH/$BETA pool, and only the deployer's wallet can open it. Nobody can squat a look-alike pool on the same hook.

No keys, no knobs.The fee, the furnace and the token are fixed when the hook is deployed. There's no owner, no admin, no upgrade path and no way to switch the fee off or on.

anatomy of a round

Drag through one round.

On mainnet a round takes sealed bids for five hours, and bidders get the next hour to open them. A new round starts every five hours. Here's one round squeezed into a slider.

bidding

opensbidding closesreveals closepaid

Fire, a seal,
and a second price.

No owner. Nothing can be changed after deploy. The router feeds the furnace, the furnace runs the auction, and anyone can push a finished round to settle.

While a round is open you seal a bid: you lock some $BETA and publish a fingerprint of your number. Everyone sees how much you locked. Nobody sees what you bid.

When bidding closes, the next round opens and this one has a window to reveal. The highest bid wins half of the ETH in the furnace and pays the second-highest bid. If no one else revealed, the minimum bid. That payment is burned, and the rest of the winner's lock comes back.

Everyone who lost gets every token back. Anyone who sealed a bid and never opened it loses a fifth of their lock to the fire. Choosing not to reveal is always allowed, but it costs.

— β
why bid honestly

In a second-price auction, the best bid is exactly what the pot is worth to you. Not more, not less. Try to beat that.

Say the pot is worth 20M β to you, and the best rival bid turns out to be somewhere you can't see. Move your bid.

bid 20M β
the contracts

Three contracts. Zero admin keys over the money.

Furnaceauction · holds the ETH

Runs the sealed-bid second-price auction. Rounds overlap: one takes bids while the last one opens them. Any call settles finished rounds on the way through, so nobody has to babysit it. The prize is half the free ETH at settle; the rest carries over. ETH already won is set aside and can't be touched by a later round.

no owner
every number fixed at deploy
no-show burn 20%
timing by block.timestamp
Bellowsuniswap v4 hook

Sits on the ETH/$BETA pool and takes 1% of the ETH side of every swap, sending it from the PoolManager straight to the furnace. It reads the furnace's last winner to give the winner's pass. Its address carries the permission bits: before-initialize, before/after-swap, and both swap deltas.

no owner
one pool, opener-locked
fee capped at 5% in code
exact-out sells rejected
BetaRouterthe site's swap button

Builds the swap itself through Uniswap's Universal Router into one fixed pool and never holds funds between transactions. On the Bellows pool it adds no fee of its own. On a Pons pool it charges 1% so site trades still feed the furnace. Its owner can set the pool once and do nothing after that.

pool set once, then powerless
hook must match, or rejected
slippage checked
reentrancy guarded

Tested the way it will run: 30 unit tests including two fuzz suites, a mainnet fork that trades through a real graduated Pons pool and runs a full auction, and a testnet fork that runs the actual deploy script and swaps through the live Universal Router into the Bellows pool.

questions

Before you seal.

What happens if I forget to reveal?

Your bid doesn't count, and when the round settles you can take back 80% of your lock. The other 20% is burned. That's deliberate: without it, anyone could seal a giant bid, watch the others open, and decide afterwards whether to show up.

Why lock more than I bid?

The lock is public and the bid isn't. If you lock exactly what you bid, everyone can read your bid off the chain. Lock more and they only know your ceiling. On a real round, save the secret the site gives you: it's the only way to open your bid.

Why does the winner pay the second price?

Because it makes honesty the best strategy. You never pay your own bid, so shading it down only risks losing a pot you wanted. Bidding over your value only adds wins you'd regret. Bid what the pot is worth to you and you're done thinking.

Can anyone take the ETH in the furnace?

No. The furnace has no owner and no withdraw function except the one that pays an auction winner their own prize. The router's owner can only choose the pool, once. The hook has no owner at all.

Does every $BETA trade feed the furnace?

Every swap in the Bellows pool does, from any app. If $BETA launches on Pons, Pons keeps the hook slot on its own pool, so the Bellows runs a second pool next to it. Then this site's router adds the 1% itself on Pons-pool trades, and trades made elsewhere on the Pons pool don't feed the furnace.

Who settles rounds?

Anyone, and usually nobody has to try. The first bid, reveal or withdrawal after a round's reveal window ends settles it automatically, and there's a public settle button for quiet days.

Is this yield?

No. The prize goes to one wallet per round, bought with tokens that are destroyed. Most bidders get their tokens back and nothing else. It's a game with a real cost, so only play with what you're fine losing.

The fire's lit.

Round after round, the Bellows feeds it and the second price burns. The only question is what the pot is worth to you.

seal a bid