Write the option
The writer locks qty PRL collateral in a two-leaf Taproot vault under a nothing-up-my-sleeve internal key. The buyer can take the collateral at or after the expiry block by revealing a secret preimage and signing; after expiry the writer can reclaim it. Pearl has no smart contracts — this is pure Taproot script.
Buyer hashlock secret (32 bytes) — hand this to the buyer and keep no copy. It is revealed only at exercise.
Lock hash committed in the exercise leaf:
Option vault
Exercise leaf
Refund leaf
Canonical descriptor
Fund the vault
Send exactly the collateral to the vault address. The descriptor fully determines the address — re-derive it here from the pasted descriptor before funding a single grain.
Vault address — fund exactly the collateral
Sealed commitment
Hand the counterparty the sealed descriptor — it commits to every term without revealing the full script details.
Spend cost planner (exact vBytes)
Dust floor: grains. Funding below the exercise/refund spend cost is refused, not burned.
Exercise or refund
The buyer exercises by revealing the preimage and signing — after the desk verifies the strike payment on Blockbook. The writer refunds after expiry. Keys are in-memory only and wiped after use.
Buyer exercise
Writer refund
Refunds are refused before the expiry block — the script enforces it on-chain.
Signed transaction
Script
Track the option
Paste a descriptor to re-derive the vault address and read its lifecycle from Blockbook (GET-only). Expiry countdown is in blocks (~194 s each — approximate).
Verify a descriptor
Standalone verifier: paste a full descriptor (and, optionally, the sealed commitment handed to you at write time). The desk re-derives the vault address from scratch and rules on every term.
Honest limits
- The Taproot script enforces collateral routing only: buyer-with-preimage at/after expiry, or writer after expiry. It cannot atomically verify the buyer's off-chain strike payment on-chain — the desk checks the strike txid on Blockbook before the buyer's exercise tx is built.
- No real options were exercised in testing — all exercise/refund flows were verified against synthetic UTXOs in a real browser.
- The premium is a pledged off-chain payment. The desk never escrows it and cannot enforce it.
- Exercise before the expiry block is impossible on-chain (CLTV). Refunds before expiry are refused. After expiry there is a race: the writer should confirm no buyer exercise before refunding.
- The builder tip on exercises is optional — off by default, disclosed next to its checkbox at 1% of the collateral to the builder address shown there, and paid only inside an exercise transaction the buyer signs. Refunds never carry it.
- Expiry is a block height; the days→blocks conversion uses ~194 s/block and is approximate. Only deal with counterparties you trust.
- Not financial advice. Test on testnet first.