The service
Set up a recurring PRL payment — a salary, a retainer, a subscription. Pearl has no smart contracts, so this desk builds a consent structure: you fund one transaction with one output per period, then pre-sign each period's payment with a block-height locktime the network enforces. The merchant broadcasts each payment when it matures. You can cancel any not-yet-due period by spending its funding output back to yourself — the pre-signed payment can then never confirm.
The terms
The tamper-evident subscription descriptor. The 64-bit fingerprint commits to merchant, anchor, amount, period, count, start height, and fee rate — editing any field breaks the fingerprint. Both parties keep a copy; the verifier re-checks everything.
- Descriptor fingerprint
- Merchant total
- Builder tip (optional)
- Funding total (incl. fee reserves)
- Schedule
| Period | Locktime (height) | ≈ date | Merchant gets |
|---|
The funding
One transaction with one output per period, each worth amount + fee reserve, all to your anchor address. Build it from your UTXOs (Blockbook scan or paste), sign it locally with your key — the page refuses any key that does not control the anchor address — then broadcast. The key is wiped the moment signing finishes.
Funding plan
- Outputs
- Per output
- Total to fund
| vout | Address | Value | Unlocks period |
|---|
Your coins
txid:vout:value-grains per line)
- Funding txid
The pre-signed payments
One payment per period, each spending its funding output: merchant gets the exact amount,
dust-free change returns to your anchor, nLockTime is the period's height and
sequence = 0xfffffffe so the network enforces it. Every signature is re-verified against its
own BIP-341 digest before the hex is shown. Hand the signed bundle to the merchant — that is the standing order.
| Period | Locktime | Payment txid (precomputed) | Fee |
|---|
Signed bundle — send this to the merchant
The ledger
Watch every period: upcoming, due (locktime passed — the merchant may broadcast), paid (spent by the exact pre-signed payment), cancelled (spent by anything else). Reads Blockbook GET-only; paste values manually if the endpoint is unreachable.
| Period | Locktime | ≈ date | Status | Detail |
|---|
The escape hatch
Reclaim any period whose funding output is still unspent: spend it back to your anchor in a transaction with no locktime. Once that confirms, the pre-signed payment for that period can never confirm (its input is gone). The race is real — if the merchant already broadcast the payment and it confirms first, the period is paid. Check the ledger first.
- Cancel txid
- Reclaimed
The verifier
Paste any pearl-sub-bundle:v1 signed bundle — yours or the merchant's. The page
re-validates the descriptor fingerprint, recomputes every payment txid from the funding plan, checks each
signature against its own BIP-341 digest, and confirms amounts, change, locktimes, and sequences. Anything
off is reported loudly, per period.