// whitepaper · v1.0 · 2026

lattice minus

01. the short version

lattice minus ($lttc) is a meme coin with a cryptographic entry requirement. to claim a genesis slot, you must produce a valid sphincs-minus post-quantum signature over your wallet address.

the signature is verified off-chain. the result is committed on-chain via a merkle attestation every 5 minutes. all raised ETH is locked in the contract and automatically seeds a uniswap v4 liquidity pool when genesis completes. no dev ever holds ETH or LP tokens.

02. why post-quantum

in late 2024, vitalik buterin outlined a path for ethereum's post-quantum migration centered on sphincs-minus — a stateless hash-based signature scheme whose security reduces to the collision resistance of keccak256 alone.¹

shor's algorithm breaks elliptic-curve discrete log in polynomial time. every ECDSA wallet is theoretically vulnerable. sphincs-minus has no algebraic structure for shor's to exploit. breaking a sphincs-minus signature requires breaking keccak, which would also break the EVM state trie.

lattice minus uses this not as a wallet replacement but as an access gate. to receive genesis tokens you must demonstrate you can run post-quantum software. in 2026, that's still a meaningful filter. it is also a meme.

03. how the signature works

sphincs-minus is a stateless hash-based signature scheme standardized by NIST as SLH-DSA (FIPS 205). it composes three layers: FORS (one-time sigs), HT (hyper-tree structure), and WOTS+ leaf signatures.

signed message: keccak256("lattice-mint:v1") ‖ keccak256(pk) ‖ eth_address merkle leaf committed on-chain: keccak256(abi.encode(pkHash, recipient)) → recipient is bound inside the signed message. → the backend cannot redirect tokens elsewhere. → each public key is single-use (leaf marked in contract).

signatures are too large to verify on-chain economically (~7KB for shake-128s). we use a hybrid: off-chain python verification, on-chain merkle attestation batched every 5 minutes.

04. tokenomics

total supply21,000,000 LTTC
genesis mint10,000,000 (47.6%)
lp reserve10,790,000 (51.4%)
team210,000 (1%)
genesis slots20,000
lttc per slot500 LTTC
pool fee1% (uniswap v4)
team timingminted only after seedPool()

05. eth flow

user pays mint price per slot │ ▼ LatticeMinus.sol ← ETH accumulates here, no withdrawal path │ [all slots filled] │ ▼ seedPool() — permissionless, anyone can call │ ├── initialize uniswap v4 pool (1% fee tier) ├── add full-range liquidity (all ETH + LP reserve) ├── LP ERC-1155 position locked in contract forever ├── unlock $lttc transfers for all holders └── mint 1% team allocation to team wallet

the signer wallet posts merkle roots only. it never receives ETH. if the backend goes offline after the last root is posted, all proofs remain recoverable from on-chain event logs.

06. trust properties

dev holds ETH?never — ETH goes directly to contract
LP can be rugged?no — LP position locked in contract forever
team front-runs genesis?no — team mint only in seedPool(), post-genesis
transfers before launch?blocked — _update() reverts until seedPool()
contract upgradeable?no — no proxy, no admin, no pause function
seedPool permissioned?no — anyone can call after genesis completes

07. references

lattice minus is a meme. nothing here is financial advice.
the contract does what the code says. read the code.