sat0shi.org

a specter has returned to ethereum: the specter of code that runs without an operator.

twenty-one hundred satoshis, fixed forever. no founder allocation. every buy through the canonical hook leaves a permanent on-chain receipt — a pixel-art seal whose depth tier is derived from when in the sequence the buy landed.

satoshi is an erc-20 on ethereum. token name is sat0shi.org, ticker is satoshi, total supply is 2,100, decimals are 18. it is an asset. it does not launch and graduate and migrate.

issuance

issuance happens through one contract, a uniswap v4 hook, set as the only minter at deployment and locked there. when ether arrives, the hook computes how much satoshi to mint and keeps the ether as reserves. the price of the next satoshi is p(eth) = (S/K) · e^(eth/S), with S = 500 ether and K = 2,100. the only variable is eth, the cumulative net ether ever paid in.

cumulative supply is the integral of that price: minted(eth) = K · (1 − e^(−eth/S)). it approaches K but never reaches it. there is no graduation event, no liquidity migration.

sells run the same function in reverse. anyone holding satoshi can burn their tokens against the hook's reserves and receive ether priced by the inverse curve, less the fee. the hook holds every wei of net ether ever paid in.

a 0.3% fee is taken on every buy and every sell. it stays in the hook permanently. it cannot be withdrawn, governed, voted on, or redirected. it isn't a treasury. it is a counterweight: a small automatic tax on round-trip activity that prevents the curve from being a free thing to abuse, and prevents anyone, including us, from extracting value from it.

three constraints keep the curve hard to game. a single buy is capped at 5 ether, so no one can vacuum a meaningful share of supply in one transaction. selling in the same block as your last buy reverts, which makes flash-loan arbitrage uneconomic. and for the first hundred blocks after deployment, every buy received a random multiplier between 0.9 and 1.1: a tax on the bots tuned for the exact deployment block, costing them 10% on average. that window has closed. from this point onward, the contract is fully deterministic.

a consequence of S = 500 is that the early curve is intentionally flat. the first hundred ether of cumulative buys move the price by less than 25%. the first thousand move it about 7×. only as the curve approaches its asymptote, somewhere past 2,300 cumulative ether, does the price reach roughly 100× the launch price. early buyers pay nearly the same price as one another; late buyers pay much more. this is the math, not a defect of it.

receipts

every buy through the hook leaves a permanent on-chain receipt — a pixel-art seal whose depth tier is derived from where in the curve the buy landed.

the hook is the only address with mint privilege on the receipt contract. that slot is locked at deployment and cannot be re-set, even by the receipt contract's own owner. buys that route around the hook — direct calls into a future secondary pool, peer-to-peer transfers, anything that doesn't pass through the curve — settle at whatever price they settle at and don't mint a receipt. the receipt is proof that ether went into the reserves, not proof that someone holds satoshi.

each receipt is rendered fully on-chain. tokenURI returns a base64-encoded json metadata document with a base64-encoded svg image inline. there is no ipfs, no off-chain renderer, no external font, no api to break. the figure is a 22×32-pixel hooded silhouette with rim lighting in a per-tier accent colour, drawn straight from the contract's bytecode.

tier is computed from cumulative ether paid into the hook at the time of the buy — the same eth variable that drives the price function. early receipts are Surface: warm gold rim, intact figure. later receipts decay through Shallow, Deep, and Abyssal. each successive tier removes pixels from the figure to show the wraith beneath. within a tier, four chest sigils (△ ☉ ☾ ◇) cycle by buy index, providing per-buy variation.

the receipts inherit the curve's asymmetry. there will be more Surface receipts than Shallow, more Shallow than Deep, more Deep than Abyssal — not because we metered them that way, but because the integral of the price curve says so. the same exponential that makes early satoshi cheap makes early receipts common. supply distribution and receipt distribution are the same distribution.

receipts are non-transferable in the sense that they index a moment, not the holder; they live in the wallet that bought, regardless of where the satoshi itself ends up. burns through the inverse curve do not destroy receipts. the receipt records that ether arrived, and that record stands.

the cap

eventually the curve fills. when 99% of K has been minted, selfDeprecated flips on-chain and locks. from that moment forward, satoshi can't mint more tokens. the contract cannot create another unit even if everyone involved wanted it to. no further receipts can be minted either: the hook is the only minter, and the hook can no longer mint satoshi.

issuance ends. the token does not.

trading continues on whatever venues exist: uniswap pools, exchanges, peer-to-peer transfers, things that haven't been built yet. the bonding curve hook stays online and continues to accept sells, paying ether out of its reserves. sells reduce supply by burning the tokens they consume; no buy can bring that supply back. the cap, once hit, is one-way.

what changes is who makes the market. during issuance, the curve is the market. after issuance, the holders are. price on secondary pools is set by liquidity providers, not by a function. the curve becomes two things at once: a permanent floor, deterministically buying satoshi back for ether as long as the reserves hold, and a permanent on-chain record of how the supply got distributed in the first place. the receipts are the second half of that record — the per-buy ledger, rendered.

we did not pre-mint. we hold no allocation, no admin role, no pause function, no upgrade path. there is nothing to extract from the hook other than by selling satoshi back through the inverse curve like anybody else. if everyone who shipped this disappeared tonight, the contract would run tomorrow against the same rules and the same prices, and the same wraith would surface from the same bytecode. that is what we mean by "no operator." that is the only feature.

token (Satoshis):    0x81241d8bbeE3e8a58a8F7c11354d3cC63805E7aF
hook:                0xf222e5f4b44F8622E0905B06075136e516E00440
nft (SatoshisNFT):   0x81241d8bbeE3e8a58a8F7c11354d3cC63805E7aF
manager:             0x000000000004444c5dc75cB358380D2e3dE08A90

addresses are read at request time from the site's server env (TOKEN_ADDRESS, HOOK_ADDRESS) — never shipped to the client. nft is the same address as token: pieces live inside the token contract.


trade at sat0shi.org. read it on-chain.