locked parameters

everything that defines the protocol is a public constant in the bytecode. it cannot be changed. these are the numbers.

every meaningful number in sat0 is a public constant embedded in the bytecode. there are no setters, no governance, no oracle. the values below are what the contracts will use forever.

curve constants

K_SUPPLY
21,000,000 sato— the asymptotic supply ceiling. the forward curve approaches it but never crosses; in practice fixed-point arithmetic saturates the last fraction of a token long before it would otherwise be minted.
S
500 eth— the curve scale factor. the amount of cumulative eth at which the curve has minted roughly 63% of K_SUPPLY (one minus 1/e). a larger S means a slower, deeper curve.

guardrails on buys

MAX_BUY_WEI
5 eth— the maximum eth a single swap may spend on a buy. anything larger reverts with BuyTooLarge. exists to slow large early actors, not to prevent them — they can just buy in a loop, but they pay extra gas and give other participants intervening blocks.
COOLDOWN_BLOCKS
1 block— minimum gap between a buy and a sell from the same address. an address that buys at block N cannot sell before block N+1. violations revert with CooldownActive. prevents same-block round-tripping for arb against entropy.

fee model

POOL_FEE
3000 (= 0.30%) in uniswap v4 fee units. the fee is charged on every swap, in both directions, and not added to a liquidity-provider position (there are no LPs). it stays inside SatoHook in a counter named feesAccrued. nothing in the contract withdraws it.

entropy and exhaustion

ENTROPY_BLOCKS
100 blocks— the duration of the entropy window, measured from GENESIS_BLOCK. during this window each buy receives a multiplier in the range [0.90, 1.10] of the fair-curve amount. see entropy window.
EXHAUSTION_THRESHOLD
99 / 100— the ratio of fair-curve supply to K_SUPPLY at which the hook flips its selfDeprecated flag. once flipped, all subsequent buys revert with SelfDeprecatedNoBuys. sells remain enabled forever.

genesis fingerprints

GENESIS_BLOCK
the block number at deployment, captured into immutable storage. used to anchor the entropy window and as a tamper-evident timestamp.
GENESIS_HASH
the blockhash of GENESIS_BLOCK − 1 at deployment time. immutable. acts as a fingerprint that ties this deployment to a specific point in chain history.

roles and addresses

POOL_MANAGER
the address of the uniswap v4 PoolManager. immutable on the hook. only this address may call the hook's entrypoints.
SATO_TOKEN
the address of the deployed SatoToken. immutable on the hook.
DEPLOYER
on SatoToken, the only address allowed to call setMinter— and that call may happen at most once. after it, there is no privileged role on the token at all.
RESTRICTIONS_FORBIDDEN
true. a self-evident assertion in the bytecode: this contract does not implement blocklist, allowlist, pause, or freeze primitives. checking it on-chain is a quick proof that the deployed token is the same one described here.

this page describes deployed code. nothing here is a promise — it is a description of what the contract does and what it doesn't.