Draft the term sheet
A bond is a set of pre-funded Taproot tranches — one per coupon plus principal at maturity. Each tranche pays its holder at its lock height. Fully collateralized by construction: no issuer credit risk, no smart contracts.
Coupon schedule & funding plan
30/360 day-count, block target 194 s. Fund each tranche address with exactly its amount — the schedule is the collateral.
Tranches
| # | Kind | Amount (PRL) | Lock height | Tranche address |
|---|
Funding plan
Bond descriptor
Anyone holding this re-derives every tranche address. Share it with the holder, the buyer, or your records.
Redeem a matured tranche
Claim leaf: <lock> CLTV DROP <holder> CHECKSIG. Signed locally; the signature is re-verified before the transaction is built.
Signed claim transaction
Secondary transfer — atomic, pre-maturity
Transfer leaf: <holder> CHECKSIG. The seller presigns each leg with SIGHASH_SINGLE|ANYONECANPAY (0x83); the buyer verifies the package and builds one fill transaction. Neither side can steal: the presignature commits only to its own input↔output pair.
Seller: presign legs
Buyer: verify & fill
Transfer package
Send this JSON to the buyer. It contains the seller's 0x83 presignatures — safe to transmit.
Fill transaction
Verify & track
Re-derive every tranche from the descriptor and check funding + maturity against Blockbook.
| # | Kind | Address | Amount | Lock | Status |
|---|
Honest limits
- Nothing is locked until the issuer actually sends PRL to each tranche address — the term sheet is a plan until funded.
- Coupon dates are block-height estimates (194 s target). Real maturity follows the chain, not the calendar.
- Secondary transfers need the seller's cooperation to presign; there is no trustless listing or price discovery here.
- Tracking reads the public Blockbook indexer. Balances shown are on-chain facts, not promises.
- The optional builder tip on claims is off by default and mainnet-only: when a holder checks the box, 1% of the tranche is paid as its own output to the builder address named next to the checkbox, out of that claim — the holder receives the rest. It is sealed into the claim before signing (the script-path sighash commits to every output), so it cannot be added or changed after signing. Secondary transfers never carry a tip.
- Test on testnet first. This is a fixed-income toolkit, not legal, tax, or investment advice.