Bithook

Bitcoin, but as a Uniswap hook

Every ten minutes, whoever predicts the token’s own average price most closely receives that block’s reward. That is how half of the 21 million supply is handed out. The other half is permanently locked liquidity.

Mining

Mining is live

Day 49.01 since emission started. Three blocks are always in flight, and they all roll over on the same ten-minute boundary.

Block
7056
Rolls over in
02:48
#7048
—
#7049
—
#7050
—
#7051
—
#7052
—
#7053
—
#7054
#7055
#7056
Predicting for block
#7056
closes in 02:48
Pays
81.38
BITHOOK, released over 56 days after you claim — not at once · $0 at today's price
Deposit
0.81
returned in full when you reveal · $0.000614 today

Dollar amounts here are a reference conversion at the current pool price and ETH/USD rate. Both move continuously, so these figures move with them.

Type a price, or use the buttons below
Now: 0.0000002812 · $0.000755 each

Sealed until you reveal — nobody can read your prediction, including us. You must return in the third window to reveal it, or the deposit is burned.

Standings for block #7054
Loading standings…
Mined so far
2.96M
BITHOOK minted to miners
Released by schedule
9.19M
emission earmarked to date
Deposits locked
57.4k
miner capital under lock
Trades

What is happening right now

Every buy and sell on the pool as it lands. 1% of each one is taken and destroyed.

Loading recent trades…
Pool
Price
$0.000755
per BITHOOK · 0.0000002812 ETH
Fully diluted
5.91 ETH
$15,853 · against the 21M cap
Pool tick
150,848
3,555,641 BITHOOK per ETH

Dollar amounts are a reference conversion, not a price you can trade at. They are the pool tick multiplied by a Chainlink ETH/USD reading, and both of those move continuously.

Supply

What is gone from the 21 million

Two kinds of BITHOOK are gone for good. Fees the pool collected and deposits miners forfeited were real tokens that no longer exist. The rest was never issued: half of a reward taken before it finished vesting, and the whole reward of any block nobody won.

Both count the same way. The emission schedule is a function of time, so nothing skipped is handed out later, and every one of these lowers what can ever exist. The split only matters if you are asking what has left circulation, which is the first figure in the breakdown below.

Total supply
12.81M
of 21.00M cap
Gone from the 21M forever
1.43M
644.8k out of circulation (363.1k fees, 281.6k buyback, 0 deposits) · 789.0k never issued
Never issued
789.0k
789.0k given up by exiting a vest early · blocks nobody won not counted, indexer unreachable
Fees awaiting burn
0.0020 ETH
plus 1.9k BITHOOK
Anyone can do this

Burn the fees yourself

The 1% fee sits in the contract until someone triggers the burn — contracts cannot act on their own. These three functions do that. Any address can call them, no reward is paid for doing so, and the caller pays the gas.

Buy back and burn

Spends the 0.00204 ETH collected in fees on a swap against this pool, and burns the BITHOOK it receives.

Burn collected BITHOOK

Burns the 1,883 BITHOOK the pool has collected in fees, removing it from the total supply.

Advance the oracle

Checkpoints the TWAP boundaries that mining targets are measured from. Keeping this current is what stops miners losing deposits to an unresolvable block.

Docs

How it actually works

Two contracts, with no admin functions and no upgrade mechanism. What is described below is what the deployed bytecode does, and it cannot be changed by anyone, including the deployer.

The two contracts

The token is an ordinary ERC-20 capped at 21 million. At launch it created 10.5M and then permanently handed the power to create any more over to the second contract. That handover was a one-time switch and it cannot be flipped back — not by the creator, not by anyone. The only tokens that can ever appear now are mining rewards, on the fixed schedule.

The hook plugs directly into Uniswap so it runs on every single trade. It holds all the liquidity, runs the mining mechanism, takes the 1% fee and destroys it.

The launch curve

Every one of the 10.5M tokens went into the pool with no ETH alongside them. The opening price therefore follows from where that liquidity was placed. There was no pre-sale and no allocation was withheld.

After that the liquidity is sealed. Every attempt to add or remove any of it reverts, for every address, with no exception for the deployer.

Mining: three blocks in flight

Blocks are ten minutes long and run purely on the clock — block n starts at miningStart + 600n seconds, and that is the whole rule. No transaction is needed to open the next block, and no account has the ability to start or stop one.

  1. You predict. You send in a scrambled version of your prediction — keccak(tick, salt, sender) — plus a deposit worth 1% of the block reward. Nobody, including you, can change it later, and nobody else can read it.
  2. The answer forms. Over the next ten minutes the pool records its own average price. That average is the target. Predictions closed before this window even started, so there was nothing to copy.
  3. You reveal it. In the third window you unscramble it. Your deposit comes back and, if you are closest so far, you take the lead.

By the time anyone reveals, the target is already public, so each prediction scores itself on the spot. There is no counting round at the end and no limit on how many addresses can take part. Exact ties are settled by hashing the address, not by who showed first — otherwise whoever could pay to jump the queue would take every tie.

What the deposit really costs

The deposit is not a fee. If you reveal, you get every token of it back — nothing is taken, nothing is taxed. What it actually costs you is time: the deposit is frozen for a while afterwards, so submitting many predictions means having a lot of tokens tied up at once.

A prediction that is never revealed forfeits the whole deposit. The contract has no recovery path for it.

Winning does not pay out at once

A won block does not arrive as a lump sum. Claiming it starts a release schedule as long as the era the block belonged to, capped at 112 days — so a block won in the first week releases over seven days. The tokens are created as they release; they do not exist before that.

You can take it early, and the cost is specific: half of whatever has not released yet is destroyed. The part that has already released is unaffected. Waiting costs nothing — the full amount arrives on its own, and there is no deadline to claim.

This is separate from the deposit, which is not a payment at all and comes back in full the moment you reveal.

Fees: 100% destroyed

Every trade pays 1%, and the contract burns all of it. No portion is routed to a treasury, a deployer address or any other recipient — the contract contains no function that would allow it.

Fees collected in BITHOOK are burned directly. Fees collected in ETH are spent buying BITHOOK on this pool, and whatever is bought is burned. That second path executes a swap, so it moves the pool price exactly as any other trade of the same size would.

Emission, and why it never ends

Rewards run on the clock and nothing else. No amount of trading volume, hype or activity speeds them up or slows them down. Every block is worth exactly what the schedule says it is worth, whether a thousand people are taking part or none.

If a block receives no predictions, its reward is destroyed rather than carried forward. It does not roll into the next block and does not increase any later reward. As a result, the timing of a claim and the ordering of transactions cannot change what anyone receives.

Emission

How the emission schedule works

Each era runs twice as long as the one before it — 7 days, then 14, then 28 — and each hands out half of whatever mining supply is left. The total creeps toward 10.5M forever without ever quite arriving.

Because each era lasts twice as long but pays out half as much, the reward per block drops to a quarter at every transition. Era one emits 5.25M BITHOOK, a quarter of the 21M total.

Next transition

Era 5 begins in 55 days. From then each block pays 20.35 BITHOOK and asks a 0.20 deposit, a quarter of today’s.

EraRunsEra totalPer blockDeposit (1%)Handed outNever issuedStatus
1day 0–77 days · blocks 0–1,0075.25M5,208.3352.085.05M96.1% · 969 of 1,008 blocks · 41 winners203.1kdone
2day 7–2114 days · blocks 1,008–3,0232.63M1,302.0813.02675.8k25.7% · 519 of 2,016 blocks · 7 winners1.95Mdone
3day 21–4928 days · blocks 3,024–7,0551.31M325.523.2600.0% · 0 of 4,030 blocks1.31Mdone
4day 49–10556 days · blocks 7,056–15,119656.3k81.380.8100.0% so far · 0 of 0 blocks0so farnow · day 0.0 of 5655 days left
5day 105–217112 days · blocks 15,120–31,247328.1k20.350.20——in 55 days
6day 217–441224 days · blocks 31,248–63,503164.1k5.090.05——in 167 days
7day 441–889448 days · blocks 63,504–128,01582.0k1.270.01——in 391 days
Launch curve

How the liquidity is set up

All 10.5M tokens were placed into the pool as liquidity, with no ETH alongside them. The opening price was determined by where that liquidity sits, not by anyone buying in first.

That liquidity is then sealed. Every attempt to add or remove any of it reverts, for every address, permanently. It covers a fixed price range, and the pool can only trade inside that range.

Swap behaviour

A swap that would move the price outside the seeded range reverts in full rather than partially filling. The transaction fails and its gas is spent.

Contracts

Verify everything yourself

Liquidity is permanently sealed: every external add or remove reverts, at all times, by design. Minting authority was handed to the hook irreversibly at launch.

Running an agent? /SKILL.md documents the mining calls, the exact commitment encoding and the ways a deposit gets burned. Its instructions are executed against the deployed contract by a test, so they cannot quietly drift from it.