Prime Totem Generator
Every round between two times, newest first. At most 100 rounds (5 minutes) per lookup.
Verify pasted round JSON offline
Paste a round ({"round":…,"randomness":…,"signature":…}), for example from an exported session, to verify it with no network.
What a prime totem is for
A prime totem is a 16-digit number that is the product of exactly two 8-digit primes: a balanced semiprime. Finding those two primes by hand means searching among millions of candidates, and no human has ever been recorded doing it unaided. The generator exists to test whether an entity has that superhuman ability: show it a fresh totem, have it name a factor, and check the answer on the spot.
The test is only meaningful if the entity could not have known the number in advance. So every totem comes from the drand quicknet beacon, a public source of randomness that publishes a new signed round every 3 seconds and that nobody, this site included, can predict or steer. Each round is turned into one totem by a fixed, public rule, so the number showing at any moment was the only number that could have shown, and it did not exist before that moment.
How to run a test
- Open Generate. The large number is the round that was current when the page loaded; it stays until you press Update, and the round line below it shows when it was published. Newer rounds keep arriving in the list below, newest first.
- Give the entity the number, as digits or as its 5 words. Record the round number and the time.
- On Verify, enter the round number, the 16 digits, or the 5 words. The round is fetched and its signature checked in your browser; then enter the entity's answer, one factor or both, as digits or three words each. The page checks by division and never displays the factors.
What it does and doesn't prove
It proves the number is fresh: not precomputed, not memorized, not chosen by the tester, and verifiable by anyone later from the round's signature. It does not stop a device from factoring a 16-digit number instantly, so the entity must have no device and no confederate. The factors are public in principle, since anyone with the round number and the rule can compute them; the page simply never shows them.
The rule (SPEC.md v1)
- Fetch round r from quicknet; verify its BLS signature against the chain's public key and that
randomness = SHA-256(signature). - For tag
"p", then"q": computeSHA-256(randomness ‖ tag ‖ ctr)with a one-byte counter starting at 0; take the first 4 bytes as a big-endian integer x; reject and increment the counter if x ≥ 4 239 387 826; otherwise the candidate is31622777 + (x mod 68377223). - The factor is the smallest prime ≥ candidate (primality by trial division to 10⁴, which is exact below 10⁸). Reject if it reaches 10⁸ or, for q, equals p.
- N = p·q. The lower bound ⌈√10·10⁷⌉ guarantees exactly 16 digits.
N is also shown as 5 words from the BIP39 English list (11 bits each, big-endian). A factor is 3 words. Typing a factor as words or digits is equivalent. The first 4 letters of a word are enough.
Verify independently
The repo ships verify.py (standard library only; py_ecc optional for the signature check) and test vectors. Run python3 verify.py ROUND. A number or its words can be traced back to their round through this site's archive, which only names the round; the signature is always re-checked in your browser.