Shorter. Then prove it.
A record is a nonzero pair of short polynomials (f, g) with f h = g in Z12289[x]/(xn + 1), for the rung's public h. You commit to it inside a buy, reveal it from the next block on, and after 300 blocks it finalizes and earns. Nothing on a plain buy runs the verifier; the reveal is its own transaction.
End to end
Block numbers are relative to your commit, block N.Get h
Each rung's h is a data contract, expanded from a drand round nobody could see coming. Read it from the chain, or derive it with the solver kit and compare byte for byte.
Reduce
Run lattice reduction (fplll, G6K, the kit's JS LLL for n = 64) on the 2n-dimensional basis. Keep the shortest vector. Work under blocksize 60 earns nothing.
Commit in a buy
Build the payload below. Its commit hash c rides a buy of at least 0.01 ETH as hookData. The hash names your payout address, so a copied commit only registers your claim for you.
Reveal privately
reveal(n, recipient, salt, payload) is a standalone call. Send it through a private RPC: a reverted reveal included on chain still publishes your vector.
The window
About an hour. A strictly shorter vector committed before your reveal can replace your entry in its 2% band; equal norm needs an earlier commit. A schoolbook challenge can void the entry if the verifier erred.
Finalize, claim
Anyone calls finalize(n) on the head of the queue. Your lump payout becomes claimable and your shares start earning. claim() pulls the ETH to you.
Payload builder
Runs in your browser. Nothing is sent.A file can be JSON {"f": [...], "g": [...]}, fplll output (the kit picks the shortest row), or two lines of integers.
Advanced: paste h yourself (for testing the kit before launch)
- normSq
- nil
- Implied blocksize
- nil
- Beats the standing record (2%)
- nil
- Commit hash
- nil
Reveal and claim
Disabled until the pool is live.Load the file the builder saved (it holds n, recipient, salt and payload). The page checks that your commit is on chain and older than this block, then sends reveal(n, recipient, salt, payload).
- Commit
- no file loaded
- Claimable
- connect a wallet after launch
claim() and poke() also finalize up to 4 matured heads first. A winner who never finalizes loses the inflow of that time to earlier holders, so the kit and this page call finalize at reveal block + 300.