Overview
NAKAMOTO is a fixed-rule protocol: an ERC-20 token (NAKA) issued by an exponential bonding curve that lives inside an immutable Uniswap v4 hook. There is no team allocation, no pre-mine, no LP and no admin keys. The hook is the sole minter of the token and holds the ETH treasury; the swap router is a thin entry point that executes buys and sells through Uniswap’s PoolManager.
Two operations exist: buying mints new tokens on the curve and banks the ETH into the treasury; selling burns tokens and redeems a proportional share of that treasury. Nothing else is possible — adding liquidity to the pool reverts by design.
Architecture
Four contracts are involved. Your transaction always enters through the router; the PoolManager routes the swap into the hook, which does all the economic work — pricing on the curve, holding the treasury, minting and burning the token.
Buying
A buy sends ETH through the router and receives freshly minted NAKA priced by the forward curve. The entry fee is 0%: every wei goes into the treasury. Each buy advances the monotonic counter totalMintedFair, which defines the current position on the curve. A single buy is capped at 5 ETH.
Selling & exit fee
Sells are not priced by the curve. Instead, selling burns your tokens and redeems a pro-rata share of the ETH treasury:
A 5% exit fee applies to the gross amount: 3% stays in the treasury (benefiting remaining holders) and 2% goes to the immutable fee receiver. The seller receives 95%. One exception: if a sell burns the entire circulating supply, the retained 3% is waived and the last burner receives 98%.
Burns never move the curve position — totalMintedFair only grows on buys. This means the marginal buy price never decreases, while the redemption value per token can only grow as fees accumulate.
Curve math
The issuance curve is exponential saturation toward the 21M cap:
Its inverse gives the implied ETH position for a minted total:
And the marginal price per token at any point:
All on-chain math uses UD60x18 fixed-point with floor rounding (implemented in lib/Curve.sol). The scale constant S = 500 ETH means the curve is effectively saturated near 6·S = 3,000 ETH.
Parameters
| Parameter | Value | Meaning |
|---|---|---|
| K_SUPPLY | 21,000,000 | asymptotic supply cap |
| S | 500 ETH | curve scale; saturation near 3,000 ETH |
| ETH_CAP | 3,000 ETH | self-deprecation threshold on implied curve ETH |
| MAX_BUY_WEI | 5 ETH | per-buy cap |
| COOLDOWN_BLOCKS | 1 | blocks between your last buy and any sell |
| Entry fee | 0% | buys bank full ETH into treasury |
| Exit fee | 5% | 3% retained in treasury + 2% to fee receiver |
| Last-burner fee | 2% | retained 3% waived on full-supply exit |
| POOL_FEE | 3000 (0.3%) | canonical pool tier; LP fee overridden to 0 on swaps |
| POOL_TICK_SPACING | 60 | canonical tick spacing |
Guardrails
MAX_BUY_WEI = 5 ETH limits single-transaction curve jumps. COOLDOWN_BLOCKS = 1 requires at least one block between an address’s last buy and any sell, blocking atomic buy-sell loops. Exact-output swaps are unsupported; liquidity additions to the pool revert. The canonical pool is pinned on first initialization: ETH / NAKA, fee 3000, tick spacing 60, hooks = the NAKAMOTO hook.
Immutability
The token has no owner, pause switch, blacklist or upgrade path — the compile-time marker RESTRICTIONS_FORBIDDEN = true is burned into bytecode. The deployer’s only privilege was calling setMinter once to lock minting rights to the hook, which is now the sole mint/burn authority forever. The hook’s parameters, fee receiver and genesis references are immutables set at construction. The manifesto itself is stored on-chain and readable via philosophy().
Self-deprecation
When the implied curve position reaches ETH_CAP = 3,000 ETH, the hook latches selfDeprecated permanently: buys are disabled forever, while sells (treasury redemption) keep working until the last token is burned. The protocol is designed to end, not to be managed.
Contracts
| Parameter | Value | Meaning |
|---|---|---|
| NakamotoToken | 0x73a009551a3bc417DfC4638c825A899ab7F63964 | ERC-20 “nakamoto” (NAKA) |
| NakamotoHook | 0xfc163Bf159a37c786A9b3Aa75B4d20A77b646888 | curve, treasury, exit fees |
| NakamotoSwapRouter | 0xc379376c1D87e28294790BB56eB1fA8aCd8F769D | buy/sell entry point |
| PoolManager | 0x000000000004444c5dc75cB358380D2e3dE08A90 | Uniswap v4 core |
| Fee receiver | 0xd06B87d1CC7986996c2Fd7afb4fDbB4f9d26ac12 | receives 2% of gross exits |
Deployed at block 25,395,743. Verify each address on Etherscan or read the sources on GitHub.