Locks you can’t break
Lock BSV until a date, or as payouts over time, and nobody can unlock it early, not even you. Why that is useful, how BSV enforces it with no custodian, and where the limits are.
Status: coming in a future release, not in the app yet. It is built and tested, but it is not in the app you can download today.
Why you would want to lose access to your own money
Most of what a wallet does is make money easier to move. A lock does the opposite on purpose. You decide now, while you are calm, what you are allowed to do later. Then the decision can’t be undone.
That sounds like a restriction, and it is. It is useful for the same reason a fixed-term deposit or a savings jar with no slot to get coins out is useful:
- Commitment. If you can’t touch it, you can’t spend it on a bad day.
- Savings discipline. Put an amount away for a year and stop thinking about it.
- Paying yourself a salary. Lock a sum and have it come back as $10 a day, or 0.1 BSV a week, instead of all at once.
- Vesting. A founder or a team can lock their own coins on a schedule, the way shares vest.
- Proving you can’t dump. If people worry that you will sell, you can show them coins that you can’t move until a date they can check for themselves.
How BSV enforces it, with nobody holding the keys
Usually, “nobody can touch it until next year” means a bank or an exchange holds the money and promises not to give it back early. You trust them to keep that promise, and to still exist.
A BSV lock doesn’t need anyone in the middle. The coins stay on your own key, in an output with a small script attached. It is the same lock script Hodlocker made popular and that Yours Wallet and the 1Sat tools already use; we didn’t write a new one. To spend that output, a transaction has to show the script its own contents, and the script checks two things in it: that it is signed by your key, and that its lock time is at least a block height written into the script. The network will not accept a transaction with a lock time in the future. So the coins can’t move until that block exists, and after that only your key can move them.
Every miner checks this, every time. bWalletX has no override. We tested it by running the script through an interpreter: spending one block early fails, spending with someone else’s key fails, and spending at the height with your key works.
How a schedule works
You can lock everything until one date, or set up gradual payouts. For payouts, the wallet splits the amount into pieces and locks each one to a later height, all in one transaction. You choose daily, weekly, monthly or every few days, and either a number of payouts or an end date.
Each payout can be sized three ways:
- Dollars, the default: “$10 a day”. You still lock BSV. Each piece is sized at today’s price plus a buffer, 20% unless you change it, so that it usually still covers $10 later. When a piece opens, your wallet looks up that day’s price and pays out $10 worth. Any extra can go back into the next piece as a fresh lock, if you approve it. If the price has fallen past the buffer, you get the whole piece and the schedule says so: “paid $8.40 of $10”. If the wallet can’t get a price, it doesn’t guess. The piece stays in your wallet as BSV.
- BSV: 0.1 BSV a week, say.
- A percentage: of the original amount, which pays the same each time and ends after 100÷X payouts (0.01% a day takes about 27 years), or of what is left, which pays less each time and finishes the small remainder in one go.
Before you lock, you see every payout in a table: the estimated date, the block height, the BSV and roughly what it is worth today. Then you type LOCK.
When pieces open, the Locks screen shows them as ready. One tap claims every opened piece, across all your locks, in one transaction.
A receipt anyone can check
For the “prove you can’t dump” case, you can mint a public receipt. It is an NFT, made in the same transaction as the locks, showing the amount, the schedule and who locked it. It ends with “Verify at bwalletx.com/lock/verify”.
The picture on its own proves nothing. Anyone can make an image that says “100 BSV locked”. What matters is the check. The verify page reads the transaction from the chain, decodes every lock output, and confirms that each payout the receipt claims is a real lock with that height and that amount, all to one key. It also checks whether each piece has been claimed yet: Locked, Partly claimed or Fully claimed. A receipt that claims more than the transaction holds, or a later date than the script enforces, is flagged.
The receipt is off by default. It ties your name to an amount, in public, for good, so only turn it on if that is what you want.
The limits
- It is irreversible. That is the point, but it means a typo is permanent. The wallet won’t lock any piece for more than about ten years, and makes you confirm.
- It is BSV, not dollars. The dollar figures are targets worked out in your own wallet. They are not guarantees, and nothing here is a promise about the price.
- Dates are approximate. A lock opens at a block height, about 144 blocks a day. Blocks don’t arrive exactly every ten minutes.
- Your 12 words are the only way back. If you lose them, nobody can recover the locks. Not us, not anyone.
- Small pieces aren’t worth it. Claiming a piece costs a small fee, so each payout must be at least 1,000 sats. If a percentage gives smaller pieces, the wallet suggests paying out less often.
- Very long schedules come in batches. One transaction holds up to 520 payouts. Beyond that, the later payouts are kept in one lock that the wallet offers to re-split when it opens.
Everything about it is on bwalletx.com/lock.