Parameters
Every parameter below is hardcoded in the deployed bytecode. None are admin-settable, none are governance-controlled, none have a setter function.
Curve
| Parameter | Constant | Value |
|---|---|---|
| Asymptotic supply cap | K | 21,000,000 (× 10¹⁸) |
| Curve steepness | S | 100 (× 10¹⁸) |
| Initial spot price | p(0) = S/K | ≈ 4.76 × 10⁻⁶ ETH/token |
| Trading fee | FEE_BPS / FEE_DENOM | 30 / 10,000 = 0.30% |
| Pool fee tier | POOL_FEE | 3000 (Uniswap V4 0.30% tier) |
Lifecycle Thresholds
| Parameter | Constant | Value | Effect |
|---|---|---|---|
| Self-deprecation trigger | SELF_DEPRECATE_PCT | 99% of K (circulating) | Buys revert with SelfDeprecatedNoBuys once circulating crosses 20,790,000 |
| Reactivation trigger | REACTIVATE_PCT | 95% of K (circulating) | After deprecation, the next sell that drops circulating below 19,950,000 clears the flag and re-enables buys |
Both thresholds operate on circulating supply (totalSupply − DEAD balance), not total supply.
Trade Limits
| Parameter | Constant | Value |
|---|---|---|
| Per-buy cap | MAX_BUY_WEI | 5 ETH |
| Minimum trade size | MIN_TX_AMOUNT | 1 gwei (applies to both buys and sells) |
Anti-MEV
| Parameter | Constant | Value |
|---|---|---|
| Same-block anti-flip cooldown | COOLDOWN_BLOCKS | 1 — sell in the same block as your last buy reverts with CooldownActive. Indexed by tx.origin so an attacker can't lock a victim's cooldown via gift-call griefing. |
| Entropy window length | RANDOM_BLOCKS | 100 — for blocks [GENESIS_BLOCK, GENESIS_BLOCK + 100], the user's mint amount is multiplied by a uniformly random factor in [0.9, 1.1] derived from block.prevrandao + msg.sender + GENESIS_HASH. After block 100, multiplier is fixed at 1.0. |
| Genesis block | GENESIS_BLOCK | block.number at deployment, used as base for the entropy seed and for relative-block math in indexers |
Pool Configuration
| Parameter | Value |
|---|---|
currency0 | address(0) (native ETH) |
currency1 | naka ERC-20 |
fee | 3000 (0.30% pool fee tier) |
tickSpacing | 60 |
| Required initial sqrtPrice | 2^96 (1:1) — enforced by beforeInitialize |
| Liquidity additions | forbidden — beforeAddLiquidity reverts unconditionally; the hook is the only liquidity provider |
Reading Live Values
The frontend at naka.exchange reads all of the above directly from the hook contract on every render. Anything you see in the stats panels is derived from on-chain state. There is no off-chain config that overrides contract values.
Immutability Guarantee
There is no function on any NAKA contract that can:
- Change
K,S, the fee, the per-buy cap, or any other parameter above - Drain or seize reserves
- Transfer mint authority away from the hook
- Pause buys or sells outside of the on-chain
selfDeprecatedcycle - Upgrade the implementation
If any of these capabilities ever appear on the contract surface, that contract is not NAKA.