Nick Szabo imagined it in 1998. Satoshi built on it in 2008. Now it exists on Base β 21 million supply, Proof of Work mining, Uniswap V4 self-hook. The missing link between gold and Bitcoin, deployed forever.
800,000 BITGOLD available at genesis price. Once the target is reached, the Uniswap V4 pool seeds automatically and PoW mining begins. 8 ETH target.
After genesis completes, the PoW miner unlocks. Each wallet gets a unique per-address challenge. Solve it and claim your reward. No hardware required β runs in your browser.
In 1998, Nick Szabo β cryptographer and legal scholar β proposed Bit Gold: a decentralized digital currency built on Proof of Work. The project was never launched. But its ideas directly influenced Satoshi Nakamoto's design of Bitcoin.
Szabo's goal was precise: replicate the properties of physical gold in cyberspace β scarcity, fungibility, trustlessness β without depending on any central authority.
Bit Gold introduced concepts that would become central to Bitcoin:
In 2011 Szabo himself acknowledged Nakamoto's improvements over Bit Gold:
Now, in 2025, Bit Gold finally exists. Not as Szabo envisioned it β but as something better: a self-executing ERC-20 on Base, with a Uniswap V4 hook that collects 1% of every swap, and a PoW miner that releases 21 million units over time.
The vision is complete. The code is immutable. The chain runs forever.
| total supply | 21,000,000 BITGOLD |
| genesis | 800,000 BITGOLD |
| mining | 19,400,000 BITGOLD |
| genesis price | 0.01 ETH / 1,000 BITGOLD |
| genesis target | 8 ETH |
| halving | every 100,000 mints |
| retarget | every 2,016 mints |
| swap fee | 1% β controller |
| hook | Uniswap V4 self-hook |
| chain | Base mainnet (8453) |
| contract | 0xef88...A0cc |
Szabo's Original Vision. Finally On-Chain.
BITGOLD is an ERC-20 token released entirely through proof of work, with no team allocation, no insider presale, no admin keys, and no upgrade path. The token contract is also its own Uniswap V4 swap hook and its own miner. One bytecode, one address. Once deployed, the rules cannot change.
The supply is 21 million tokens, identical to Bitcoin in scale β and intentionally so. Nick Szabo's original Bit Gold proposal in 1998 described a decentralized digital currency with a fixed supply, proof-of-work issuance, and no trusted central authority. Satoshi Nakamoto built on those ideas. BITGOLD completes the circle: Szabo's vision, running as immutable bytecode on Base, forever.
2.86% funds an open genesis sale. 2.86% seeds a Uniswap V4 BITGOLD/ETH pool whose liquidity is locked forever by the same hook that collects a 1% swap fee. The remaining 94.28% is mined: anyone with a browser can solve a keccak256 puzzle bound to their wallet address and call mine() to receive the current era's reward.
In 1998, Nick Szabo proposed Bit Gold: a decentralized digital currency built on proof of work. The project was never launched. But its ideas directly influenced Satoshi Nakamoto and became foundational to Bitcoin.
Szabo's goal was precise: replicate the properties of physical gold in cyberspace β scarcity, fungibility, trustlessness β without depending on any central authority.
Most ERC-20 launches today are pre-mints. A team deploys a contract, mints the supply to a multisig, and decides how to distribute it later. BITGOLD takes the opposite approach: the contract refuses to mint to anyone. New tokens emerge only when someone solves a hash puzzle on-chain. The supply schedule is mechanical, the distribution is permissionless, and no team-controlled state exists to abuse.
BITGOLD adds two pieces that earlier proof-of-work tokens could not have. First: address-bound proofs of work, so solutions cannot be copied from the mempool. Second: a self-hook, made possible by Uniswap V4 shipping to mainnet in January 2025. The token contract is also the swap hook for its own liquidity pool, which lets the pool reject every liquidity-modification call and lock the LP without any external service.
The contract moves through four phases in its lifetime.
Phase 0 β Empty. The contract is deployed and holds nothing. Constructor parameters set the addresses of the Uniswap V4 PoolManager, PositionManager, and Permit2 for Base mainnet. The deployer becomes the controller β the only address with permission to claim accumulated swap fees. No other state is mutable from outside.
Phase 1 β Genesis. Anyone can call mintGenesis(units) with units Γ 0.01 ETH. Each unit yields 1,000 BITGOLD, capped at five units per transaction. The transaction cap exists so a single mempool slot cannot sweep the entire allocation in one go. Excess ETH is refunded in the same call. Three days after deploy, if the pool has not been seeded, refundGenesis opens and lets any genesis holder redeem BITGOLD back for ETH at the original price.
Phase 2 β Seeding. Once the genesis cap of 800,000 BITGOLD is sold out, anyone can call seedPool(). The function mints the remaining supply to the contract itself, creates the V4 BITGOLD/ETH pool with the contract as its hook, deposits all genesis ETH plus 800,000 BITGOLD as liquidity, and sets the initial mining difficulty. A fallback partialSeed() exists for the controller, callable no earlier than thirty minutes after deploy.
Phase 3 β Mining. The remaining 19,400,000 BITGOLD is released through proof of work. Each successful mine(nonce) call pays the current era's reward, starting at 100 BITGOLD and halving every 100,000 mints. Mining ends when the cap is reached.
Phase transitions are gated by storage flags. No admin function exists to skip a phase, rewind state, or change parameters.
A mined nonce is valid for a wallet at a given epoch when:
keccak256(abi.encode(challenge, nonce)) < currentDifficulty
where:
Three properties matter:
A hard cap of ten mints per block prevents any single party from sweeping every block. Starting difficulty after seeding is type(uint256).max >> 32, meaning roughly one in four billion hashes qualifies. A modern laptop finds a solution in seconds.
A Uniswap V4 hook is a contract whose address contains specific bits in its lower fourteen bits. Those bits encode which lifecycle functions the hook implements. The same contract that implements transfer and balanceOf for the ERC-20 also implements beforeSwap, afterSwap, and beforeInitialize for the pool.
To make this work, the contract is deployed via CREATE2 with a salt chosen so the resulting address has the correct permission bits. Salt mining happens offline before deployment, typically takes a few seconds, and is fully reproducible.
After seeding, the pool exists with native ETH as currency0 and BITGOLD as currency1. The hook intercepts swaps and routes 1% of the ETH side of every swap to the contract's own balance.
The hook also denies every liquidity modification. beforeAddLiquidity and beforeRemoveLiquidity revert unconditionally. The pool starts with the seed liquidity and stays at that exact shape forever. Nobody β including the deployer who holds the LP NFT β can move the liquidity out or add more on top.
Accumulated ETH fees sit on the contract until the controller calls claimFees(), which transfers the contract's entire ETH balance to the controller. This is the only privileged function in the contract. It cannot affect the token supply, pool liquidity, mining schedule, or any other parameter.
| Genesis Sale | 800,000 BITGOLD (3.81%) |
| Locked LP | 800,000 BITGOLD (3.81%) |
| Mining | 19,400,000 BITGOLD (92.38%) |
| Total Supply | 21,000,000 BITGOLD |
Genesis is priced at 0.01 ETH per 1,000 BITGOLD, fixed. A fully subscribed genesis raises 8 ETH, every unit of which goes directly into the V4 pool as the ETH side of seed liquidity. Nothing reaches the deployer at genesis.
The mining schedule halves every 100,000 successful mints. Era zero pays 100 BITGOLD per mint, era one pays 50, era two pays 25, and so on. Target throughput is one mint per minute on average.
In 2011, Szabo himself acknowledged Nakamoto's improvements over his original design. BITGOLD draws from both:
BITGOLD is what Szabo envisioned plus what the last twenty-five years of cryptographic and protocol research made possible.
Seeding the pool is the only timed decision the controller has to make. Two functions enable it:
Both functions call the same internal logic. The interesting property of partialSeed is what it does with unsold genesis allocation: the unsold BITGOLD is never minted. Not burned, not held by the controller β it simply does not exist. If genesis stops at 300,000 BITGOLD sold, the total supply becomes 300,000 + 19,800,000 = 20,100,000 BITGOLD.
The recommended approach is a threshold strategy: the controller commits publicly to seeding when genesis reaches a chosen threshold (e.g. 50β70%), with a published deadline as a fallback. This gives the community a number to rally around and removes the open-ended uncertainty of waiting for a strict sell-out.
Three days after deploy, if the pool has not been seeded, any holder of genesis BITGOLD can call refundGenesis(amount) to burn their tokens and receive ETH at the original 0.01 ETH per 1,000 BITGOLD rate. Multiple partial refunds are permitted.
The function is gated on the pool not being seeded. After seedPool or partialSeed runs, refunds become impossible β the ETH is locked as V4 liquidity, unreachable by design. Post-seed holders who want out sell into the pool at the AMM price.
Anyone can independently verify that BITGOLD does what this document claims:
The contract source is published under the MIT license alongside its build configuration, verifiable on Basescan.
The contract has no upgrade path. If a critical bug is discovered post-launch, there is no fix. The mitigation is the same as Bitcoin's: keep the surface small, audit before deploy, deploy code that has been forked from a contract running in production.
Mining on Base costs real gas. As the price of BITGOLD in the AMM falls below the mining cost, hashrate drops, the network produces fewer mints per minute, and difficulty retargets downward. Equilibrium price is whatever clears that condition.
The 1% swap fee paid to the controller represents an ongoing extraction from swap volume. It is not a token tax. The swap executes at the pool's posted price, and the fee is taken from the ETH side via the hook. The fee can never be raised, lowered, or rerouted because the contract is immutable.
BITGOLD is not a promise. There is no team behind it in the conventional sense. There is no roadmap to deliver against. The contract does what its bytecode does, and nothing more.