batotrade

bato

bato is the code that runs without an operator and terminates by design. one variable, one truth. the cap fires at 921 ether. the math really holds.

bato is an erc-20 on ethereum mainnet. lowercase name, lowercase symbol, eighteen decimals. no admin, no pause, no upgrade path, no allocation, no roadmap, no successor token. issuance happens through one uniswap v4 hook, locked once at deployment as the only minter. the contract that exists is the contract.

the price of the next bato is p(eth) = (S/K) · e^(eth/S), with S = 200 ether and K = 21,000,000. the only variable is eth, the cumulative net ether ever paid in. cumulative supply is the integral: minted(eth) = K · (1 − e^(−eth/S)). the function approaches K but never reaches it. we wrote 99% of K into the contract as the line where attention runs out before money does. the line is reachable. the contract enforces it.

sells run the same function in reverse. burn bato, get ether off the inverse curve, less the fee. the inverse and forward halves agree by construction. ethCum is the single state, and both directions are computed against it. the burn price equals the mint price minus the round-trip fee. there is no structural spread between what a buyer paid and what a seller is owed. selling on the curve is not strictly worse than selling elsewhere.

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 is a counterweight, not a treasury. nobody can pull it — including us.

three constraints keep the curve hard to game. a single buy is capped at 2 ether (same per-tx share-of-supply cap as sato, scaled to the steeper curve: 2/921 ≈ 5/2302 ≈ 0.22%). selling in the same block as your last buy reverts. for the first hundred blocks after deployment, every buy receives a random multiplier between 0.9 and 1.1 — a tax on bots tuned for the deployment block, costing them 10% on average. that window will close. from that point onward, the contract is fully deterministic.

we picked S = 200, not 500. the curve is steeper. the same K, reached sooner. termination at 921 cumulative ether of net inflow instead of 2302. the burn-only phase, the real protocol, begins much sooner.

termination is an event, not a tendency. when minted supply crosses 99% of K — that is, 20,790,000 bato, reached at 921 cumulative ether — selfDeprecated flips on-chain and locks. from that moment forward, the hook will not mint another unit, ever. the remaining 210,000 bato (the 1% tail) never enter circulation. the maximum supply that can exist in this universe is 20.79 million. the latch is a single bit, set once, by an exact threshold.

issuance ends. the token does not. after deprecation:

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 as a permanent on-chain bid for bato. the cap, once hit, is one-way. after termination, the protocol becomes what it was meant to be: a supply that only contracts.

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 bato 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. that is what we mean by 'no operator.' that is the only feature.

token:    0xf23524cF8745B44ebfB1a7666fB1fB8b8dF7aA17
hook:     0x75e44C04Ad4dbc54D233fDF2A0288b01B3676888
router:   0xbB49691E82F09268F1B257DF767f24A1226e35b6
manager:  0x000000000004444c5dc75cB358380D2e3dE08A90
chain:    ethereum mainnet (1)

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


read on-chain, proof that the manifesto stored at construction matches the prose above.