Miners can see the rewards sitting behind their wormhole address and move them to a transparent account from the wallet, with the Plonky2 proof generated locally. Without this the wallet is useless to the people who hold most of the newly minted QTC.
Facts the design rests on
Mining rewards are paid to a wormhole address derived from the same seed (derive_wormhole_from_mnemonic, its own coin-type constant). The preimage is public; spending needs a proof of knowledge of the secret.
The prover is qp-wormhole-prover and friends (Plonky2). It needs circuit binaries fetched once (ensure_circuit_binaries in the Flutter SDK's Rust core), and proving is minutes of CPU. The Flutter SDK's api/wormhole.rs and quantus-cli's wormhole_lib.rs are the reference implementations.
Proofs can be aggregated to claim several transfers at once.
The WormholeProofRecorderExtension is on every extrinsic; it contributes no signed bytes.
Operator-owned decisions
Where circuit binaries are hosted (our infra, with a pinned hash) and whether the wallet downloads them on first use or the package ships them. Default: download on first use from our infra, hash-pinned.
Definition of done
A miner restores their mining mnemonic, sees a shielded balance that matches what blackbeard.observer attributes to their preimage, generates a proof with a progress indicator, and sees the amount arrive in a transparent account on mainnet.
## Goal
Miners can see the rewards sitting behind their wormhole address and move them to a transparent account from the wallet, with the Plonky2 proof generated locally. Without this the wallet is useless to the people who hold most of the newly minted QTC.
## Facts the design rests on
- Mining rewards are paid to a wormhole address derived from the same seed (`derive_wormhole_from_mnemonic`, its own coin-type constant). The preimage is public; spending needs a proof of knowledge of the secret.
- The prover is `qp-wormhole-prover` and friends (Plonky2). It needs circuit binaries fetched once (`ensure_circuit_binaries` in the Flutter SDK's Rust core), and proving is minutes of CPU. The Flutter SDK's `api/wormhole.rs` and quantus-cli's `wormhole_lib.rs` are the reference implementations.
- Proofs can be aggregated to claim several transfers at once.
- The `WormholeProofRecorderExtension` is on every extrinsic; it contributes no signed bytes.
## Operator-owned decisions
- Where circuit binaries are hosted (our infra, with a pinned hash) and whether the wallet downloads them on first use or the package ships them. **Default: download on first use from our infra, hash-pinned.**
## Definition of done
A miner restores their mining mnemonic, sees a shielded balance that matches what blackbeard.observer attributes to their preimage, generates a proof with a progress indicator, and sees the amount arrive in a transparent account on mainnet.
grenade
added the epic label 2026-09-15 12:38:49 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Miners can see the rewards sitting behind their wormhole address and move them to a transparent account from the wallet, with the Plonky2 proof generated locally. Without this the wallet is useless to the people who hold most of the newly minted QTC.
Facts the design rests on
derive_wormhole_from_mnemonic, its own coin-type constant). The preimage is public; spending needs a proof of knowledge of the secret.qp-wormhole-proverand friends (Plonky2). It needs circuit binaries fetched once (ensure_circuit_binariesin the Flutter SDK's Rust core), and proving is minutes of CPU. The Flutter SDK'sapi/wormhole.rsand quantus-cli'swormhole_lib.rsare the reference implementations.WormholeProofRecorderExtensionis on every extrinsic; it contributes no signed bytes.Operator-owned decisions
Definition of done
A miner restores their mining mnemonic, sees a shielded balance that matches what blackbeard.observer attributes to their preimage, generates a proof with a progress indicator, and sees the amount arrive in a transparent account on mainnet.
Children, in dependency order: #45 (wormhole derivation and shielded balance) → #46 (proof generation, circuit binaries) → #47 (exit). #46 needs the circuit-binary host decided.