Skip to content

Base L2 · Cascade Keccak-256 PoW · Ethereum-Secured

Proof-of-Work,
Work is verified. Trust is not required.

21M cap · R₀ = 50 ANVL · H = 210,000 · fee = $0.10 · PI + NCT · dev premine = ∅

Cascade challenge function
κ(m, ν, n) = H(H(H(m ∥ γ(m) ∥ g) ∥ n ∥ ν) ∥ H(bn−1 ∥ D[n]))
valid ⟺ κ < D[n] · scripts/check-supply-math.py verifies the supply identity.
Cascade Keccak-256Base L2ERC-20ImmutableNo Dev PremineProtocol-Owned LPPI+NCT Difficulty
6 invariants · all on-chain
Supply

Mining + Protocol LP

Miner rewards are emitted by on-chain PoW, while 10% of each miner reward is minted to protocol-owned liquidity inside the same 21,000,000 ANVL cap. No dev premine, no VC tranche.

M(n)=R(n)+0.1R(n), capped by Smax
Architecture

Zero Backend

This site is static. The CLI talks directly to your chosen RPC. Nothing else is operated — because there is nothing else.

deps = { bytecode, RPC }
Economics

$0.10 Native Fee

Every mine() attaches a $0.10 fee as msg.value. Half goes to the immutable dev recipient; half accumulates for protocol-owned ANVL/WETH liquidity.

fee = $0.05dev + $0.05LP
Difficulty

PI + NCT Controller

Proportional-Integral timing control combined with the Nakamoto Coefficient Throttle — difficulty tightens when mining centralises. Decentralisation is a built-in equilibrium, not a social norm.

u[n] = sat(upi + unct, ±0.5)
PoW

Cascade Keccak-256

Two-pass hash binds each puzzle to live on-chain epoch entropy. Precomputing nonces for a future epoch is structurally impossible — the required value doesn't exist until the previous epoch closes.

κ = H( H(inner ∥ ν) ∥ ε[n] )
Sovereignty

Self-Sovereign

No pool, no registry, no telemetry. One wallet, one GPU, your RPC. Each challenge is unique per miner — reordering txs earns attackers nothing.

advantage(reorder) = 0
on-chain constants · immutable
Max Supply 21,000,000 ANVL
Initial Reward 50 ANVL / epoch
Halving Interval 210,000 epochs
Miner Schedule Terminus epoch 13,440,000
Hash Function Cascade Keccak-256
Epoch Target 120 s (setpoint)
Difficulty Rule PI + NCT controller
Adjust Cadence 2,016 epochs
NCT Window 256 epochs
Protocol Fee $0.10 native ETH
Fee Split $0.05 dev / $0.05 LP
LP Token Reserve 10% of miner reward
Genesis LP Seed 1 ANVL + 0.001 ETH
Main LP Trigger 50% totalSupply
Fee Oracle Chainlink ETH/USD
Network Base L2
Distribution miners + POL reserve
Fee Recipient Immutable ≠ deployer
Dev Premine None
Admin Functions None
3 results · all formally proven
01

Keccak-Cascade PoW

The puzzle for epoch n incorporates epoch_entropy — derived from the block hash of epoch n−1's confirmed transaction. Since this value is unknowable until n−1 closes on-chain, nonce precomputation and rainbow tables are structurally impossible, not just computationally expensive.

κ = keccak256( keccak256(inner ∥ ν) ∥ ε[n] ) ε[n] = H( bn−1 ∥ D[n] )
02

Nakamoto Coefficient Throttle

A 256-epoch rolling window tracks distinct active miners. When mining centralises — fewer unique addresses producing the same share of work — difficulty tightens automatically. Decentralisation is not enforced by social consensus; it is the Nash equilibrium.

unct = min( 0.1·(256/Cu − 1), 0.3 ) ≥ 0 minimised (= 0) when Cu = 256 (full distribution)
03

Epoch-Native Schedule

All emission and halving parameters are expressed in confirmed mine() calls — epochs. There are no calendar dates, block time assumptions, or month projections anywhere in the protocol. The next halving is "at epoch 210,000", full stop.

R(n) = R₀ · 2−⌊n/H⌋ Sseed + ∑(R + 0.1R) ≤ 21,000,000 ANVL
epoch-native · no calendar projections
Epoch 0
50 ANVL miner reward; +5 ANVL POL reserve per mine
Epoch 210,000
25 ANVL miner reward; +2.5 ANVL POL reserve
Epoch 420,000
12.5 ANVL miner reward; +1.25 ANVL POL reserve
Epoch 630,000
6.25 ANVL miner reward; +0.625 ANVL POL reserve
Epoch 1,470,000
0.390625 ANVL miner reward; +10% POL reserve
Epoch 13,440,000
miner-only schedule terminus; cap may stop earlier

Miner-only baseline: H × R₀ × 2 ≈ 21,000,000 ANVL. Actual supply also includes 1 ANVL seed LP and 0.1R(n) POL reserve mints, all capped by MAX_SUPPLY.

Full guide →
anvil256-cli
# 1. Clone + build from source
git clone https://github.com/anvil256xyz/anvil256.git
cd anvil256

# 2. Build kernel: default GPU, or CPU fallback
cd kernel
make              # NVIDIA CUDA default
# make cpu        # CPU-only fallback
cd ../cli
cargo build --release --locked

# 3. Configure
cp .env.example .env
# set BASE_RPC_URL, PRIVATE_KEY, ANVIL256_ADDRESS in .env

# 4. Run
./target/release/anvil256-cli

INFO  Anvil256 CLI ready signer=0x... chain=base epoch=0
INFO  epoch_entropy fetched entropy=0x00003f... epoch=0
INFO  GPU bound index=0 name=NVIDIA RTX 4060 Ti cascade=true
INFO  found nonce=0x... reward=50.0 ANVL fee=$0.10 tx=0xabc...