A signature nobody can farm, on a chain that settles securities.
A script produces a million. A body produces about two a day.
Home chain: Robinhood (4663). Ethereum, Base and Sepolia are built in too; every other chain is one provision.py chain away.
Reading the chain…
Nothing has been deployed from this tree yet. contracts/deploy.sh
puts PoggRegistry on chain 4663, reads it back, verifies the
source on Sourcify and writes contracts/deployments.json —
which is the file this page reads. Until it exists, everything below
describes what the contracts do and nothing about a live one.
Every row above CALLS a function and holds the answer against a constant this repository computed. Bytecode alone proves nothing here: chain 4663 has well-known addresses — QuoterV2, Quoter v1, the ENS registry — that all hold the same unrelated contract and answer zero instead of reverting. A check that stops at "there is code there" reports those as live.
A library, not a deployment. It verifies a 238-byte liveness record in
Solidity — the same check firmware/attest.py does off chain.
BIP-340 Schnorr has no EVM precompile, so it is rearranged into one
ecrecover plus a modexp to lift the point:
about 41k gas to verify.
The singleton. It holds the three things the record cannot carry: whose key it is, the highest counter seen from it, and which firmware and calibration you accept.
The digest a device signs commits to the chain, the contract and the claimant, so a record cannot be replayed on a fork, against another deployment, or by someone else.
Proof of life, in two phases on purpose. A claim releases nothing — it opens a challenge window, and one beacon during that window cancels it.
Deployed by whoever wants that switch, against this registry: it names one owner and one beneficiary at construction, so a shared one would name somebody else's heir.
Robinhood Chain settles in USDG and carries tokenized securities — NVDA, AAPL, TSLA, SPY and the rest, each named <Issuer> · Robinhood Token. Those are the transfers where a confirmation screen has the most to get right, and they are exactly the transfers a compromised laptop would most like to sign for you.
They are also where a symbol stops being an identity. This chain has a GME that is not GameStop, an AAPL that is not Apple and a SPY that is not the ETF — memecoins wearing the tickers of real securities. So the device ships with no token registered at all, and never looks one up by symbol:
$ tools/rhtokens.py check 0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9 Robinhood Chain (4663), block 59015636 address 0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9 name Apple • Robinhood Token symbol AAPL decimals 18 A tokenized security: the contract names itself 'Apple • Robinhood Token', which carries 'Robinhood Token'.
The tool reads the contract and prints the exact
provision.py token line. The owner still types it on a device
with no network, and still reads the confirmation back — the label stays
the owner's claim, made against the contract rather than a screenshot.
An attestation is separate from the spend signature, under a key generated at provisioning that never leaves the secure element. It binds a tier to a specific sighash, a monotonic counter, a firmware hash, the calibration in force, and the gate measurements behind the claim.
For an allowlist, a mint or a quorum vote, the claim worth publishing is
usually "a human bled" and not "device 7 bled".
firmware/ring.py signs as one member of a registered set, so
nobody votes twice and nobody accumulates a voting history.
$ tools/chain_check.py Robinhood Chain (4663), block … PoggRegistry at … the endpoint is Robinhood Chain PASS there is code at the address PASS BEACON_TAG is the one the firmware signs under PASS REDEEM_TAG is the one the firmware signs under PASS EPOCH_SECONDS matches firmware/beacon.py PASS currentEpoch() is what firmware/beacon.py computes PASS requiredTier is BLOOD PASS beaconTier is TOUCH PASS this build's firmware is allowlisted PASS
Same checks as the ones above, from a terminal, against
contracts/deployments.json. If the two ever disagree, believe
neither and read the chain yourself.