Unable to get sending with locktime feature to work

I read the locktime help tips. What I did was:

  1. click send, add address, amount
  2. click ‘add locktime’, use an online timestamp conversion tool and add the ts indicating 2 hours later.
  3. click enable broadcast.
    Then I send as instructed on the device and finally click ‘send’ on suite app.

But in the end it would pop up a notification saying “failure, transaction not signed”.

As I’m only testing the feature, my understanding is that if I don’t need to add more privacy and choose to broadcast on the current network, then it should send after the indicated locktime. I tried many times and found the transaction was never executed later. What did I do wrong to use locktime send?

Locktime does not work like that. The network will not accept a locked transaction before the locktime elapses, and there is currently no Suite-side service to hold onto the transaction for you.

I would expect the error to say “transaction not sent”, because the transaction will be signed just fine. Did you mistype or is there another related issue?

The intended way to use this is to disable the “broadcast transaction” checkbox, copy the signed hex data that will be displayed, save it somewhere (or send it to the recipient). Then you can manually broadcast the transaction after the locktime has expired.

Hi, many thanks for the answer.
I guess you are right about the error message “transaction not sent”. Sorry for the confusion.
I apparently had misunderstanding about the feature. Now if one needs to broadcast it manually after the lock time, how is it supposed to be used as a ‘dead man’s switch’.

Is it that I need to copy the text and share the text to someone I intend to leave the funds to? The text is useless before the lock time, but can be used to move the funds from my wallet to the target address after the lock time?

If I want to invalidate the text I shared, do I need to move the funds completely to a new address, or maybe just move a portion so that the shared transaction text would fail due to insufficient fund left in the wallet?

Lock time feature can’t be used like that by itself. You would need an always-online service for it.
I am not aware of any, but it’s likely that some services like that exist.

This is why the CTLV (check-timelock-verify) opcode was introduced and its main usecase: a transaction will be spendable by (a) you as the owner at any time, and (b) someone else of your choosing after a year.

Unfortunately, there is currently no support for CTLV scripts in Suite.

Correct.

If you want to invalidate before the timelock elapses, it is enough to spend at least one of the inputs of the transaction.

Bitcoin is an UTXO-based currency, meaning that your account does not have a “balance” in the strictest sense – instead, it is a list of individual coins that you are allowed to spend (and the “balance” is the total value of those coins). A transaction picks some of those coins and creates new ones of the same total value in destination wallets. (You can also send a piece back to yourself as change.)
If you spend any single input of the timelocked transaction, the whole thing becomes invalid. You can use Coin Control in Suite to pick one. Or, as you say, spend enough that there’s not enough funds remaining, which is certain to spend at least some of those inputs.

Note that you don’t need to move the funds anywhere. You can send everything back to yourself. This invalidates the original inputs and creates new ones, but they all stay in your account.

After the timelock elapses, it’s much trickier, because you might have to race the spender on fees. If someone is trying hard enough to spend against you, there is no guarantee which of you will succeed.

3 Likes

OK, I didn’t know that. So this is a good way to consolidate several UTXO’s into one in your account?

Say I have …

0.5 BTC
1.0 BTC
0.05 BTC

… and send all of that from my BTC #1 account to myself (BTC #1), I get …

1.55 BTC

… only and get rid of the other UTXO’s I had?

Exactly, minus fee of course.

1 Like