Solve / commit, reveal, finalize, claim

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.

Your rung right now
Not open
Reading the chain

End to end

Block numbers are relative to your commit, block N.
00
once, after arm()

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.

01
your machine

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.

02
block N

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.

03
block N + 1 or later

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.

04
reveal + 300 blocks

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.

05
after the window

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.
Your vector

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)
Readingnothing built
normSq
nil
Implied blocksize
nil
Beats the standing record (2%)
nil
Commit hash
nil

Reveal and claim

Disabled until the pool is live.
Revealstandalone call, no try/catch

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
Not deployed yet. Reveals open once the pool is live and the rung is materialized.
Claimpull, never pushed
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.