❄️ Frost Testnet Faucet
Testnet FROST on the Frost L1 — an EIP-8141
post-quantum testnet, chain id 8141. No captcha:
your browser mines an ML-DSA-44 keypair as proof of work —
the same post-quantum signature scheme the chain verifies on-chain.
Everything the page does is two HTTP calls plus grinding — fully scriptable, no browser needed. Native ML-DSA keygen is much faster than in-browser JS.
1. Get a challenge
GET /api/challenge?address=0xYOURADDRESS
{ "token": "…", "difficulty": 15, "expires_at": …,
"algorithm": "ML-DSA-44",
"rule": "SHA3-256(pk || token) must have 15 leading zero bits" }
2. Grind, sign, claim
Generate ML-DSA-44 keypairs until
SHA3-256(pk || token) has
difficulty leading zero bits (token as ASCII bytes,
pk raw). Sign "frost-faucet-v1" || token || address
(address lowercase hex, ASCII) with the ground secret key, then:
POST /api/claim
{ "address": "0x…", "token": "…", "pk": "<hex>", "sig": "<hex>" }
→ { "tx_hash": "0x…", "amount_wei": "…" }
Reference grinder
The faucet repo ships a multi-core CLI grinder:
git clone <this repo> frost-faucet && cd frost-faucet
uv run grinder.py 0xYOURADDRESS --faucet this-site
Tokens expire after 5 minutes and are single-use. Difficulty escalates +2 bits per successful claim per address (or /24, /56 subnet) in 24 h — repeat claims never fail, they just cost more. See /llms.txt and /api/status.