oneshot testnet
Two one-time locks for Ergo. WOTS: a hash-based (post-quantum) one-time signature;
the lock is an ordinary pay-to-script address and the spend carries a 2,144-byte signature as context variable 0 and
no other proof. P2SH: an ordinary proveDlog key hidden behind a pay-to-script-hash
address, so the public key is not on chain until the spend; the spend is proved with sigmastate-js (loaded only
then, about 7 MB). Generate a key, send testnet ERG to its address from any wallet, then spend the whole box once to
an address you name. Source:
skunks/oneshot/ in the skunkyard repository; this page is its bundle, built by
scripts/build.mjs.
One-time key. This key may sign exactly one transaction, ever. A second signature by the same key lets anyone who sees both forge a third: the funds are then at risk.
Spend everything once. The spend takes the whole box (all of it, minus a 0.001 ERG fee) to one address. Send to this address exactly once. If two boxes arrive, only one can ever be spent safely.
A second spend from the same key is unsafe. This page refuses to sign twice with the same seed in one session, but it cannot know what you did in another tab, another browser or another tool.
P2SH hides the key only until the first spend. A proveDlog
key can sign many times, but the spend publishes the public key: after it, this address is an ordinary exposed key
(and not post-quantum). Do not use one seed twice: send to the address once, spend once, then discard the seed.
Testnet only. Experimental code, no audit. The seed is the only key: lose it and the box is gone.
1. Network and API
2. Key
3. Watch for funding
| box id | value (ERG) | height |
|---|
More than one box is at this address. A one-time key can spend only one of them; the others stay locked for good.
4. Spend (once)
Fee: 0.001 ERG. The destination receives the box value minus the fee.
Transaction JSON (node / explorer submit format)
EIP-12 object (Fleet)
Self-check, then submit
The test submits the same transaction with one bit of the signature (WOTS) or of the sigma proof (P2SH) flipped; the node must refuse it with its script-verification message. Run it before the real submission: afterwards the box is spent and a rejection would mean nothing.