Forge the covenant
Up to 16 cosigner keys seal one Taproot vault. Any m of the n can move the funds — no single key is ever enough, and there is no keypath backdoor: the internal key is a nothing-up-my-sleeve point nobody controls. Paste a 64-hex x-only pubkey or a 12/24-word mnemonic per cosigner; mnemonics and private keys never leave this page and are never written to disk.
Vault address
Fund this address. Nothing moves without m signatures.
Cosigners
| # | x-only pubkey | Source | This device |
|---|
Descriptor — share this to let anyone re-derive the exact vault
Script (for review)
Load a covenant
The vault
Fund the covenant address, then pick a UTXO to spend. Each signing round spends one UTXO — a complete, independently verifiable transaction.
| txid | vout | Value (PRL) | Confs | |
|---|---|---|---|---|
| No UTXOs loaded yet. | ||||
Add a UTXO manually — for air-gapped use
Build a signing round
The round is a tamper-evident JSON payload: the unsigned spend, the covenant descriptor, and the collected partial signatures. Pass it to cosigners by copy/paste, QR, or file — each signs locally.
No UTXO selected — pick one in the Vault step.
Round
Cosigners scan this to import the round.
Sign & finalize
Import a round, verify it independently, add signatures. Every signature is checked against the round digest before it is accepted. Finalizing needs m of n.
Round summary
Sign with a local key
Keys entered as mnemonics in the Covenant step are available here. Otherwise paste a 32-byte hex private key or a 12/24-word mnemonic:
Add a cosigner's signature
Export round with signatures
Hand this to the next cosigner — or back to the coordinator. It carries every signature collected so far and stays tamper-evident: any edit invalidates the digest.
Finalize
txid: