Skip to main content
All CollectionsOther FAQ
Why do I need to pay for cancelling a transaction?
Why do I need to pay for cancelling a transaction?

This article describes why you need to collect "confirmations" for a cancellation transaction and why you need to pay for it.

Tobias Schubotz avatar
Written by Tobias Schubotz
Updated over a week ago

Let's assume you have a Safe with 3 owners and threshold 2. You have initiated a transaction, signed it, but immediately afterwards decided that you would rather like to cancel it. You hit "cancel" and signed the cancellation.

In the Safe interface you might have noticed, that your transaction is still present. It will show that you have both "confirmed" and "rejected" it. Also, other owners can still confirm or reject it.

The transaction won't disappear even in the case you did all actions "off-chain".

The reason for this is, that signatures cannot be "taken back". Once a signature is out there, you can ask others to delete it, but you can never be 100% sure.

This is comparable to a physical signature you have put on a sheet of paper and sent to someone else via mail. You can ask that other person to throw away the sheet. But you can never be 100% sure.

The Safe supports off-chain confirmations. Those are stored on our backend service. In order to "take back" a signature, the confirmation could be just deleted from the backend. However, a user cannot be 100% sure that this actually happened. There is no way to prove this.

The only way to ensure that your signature cannot be used by someone else, is to "consume" the nonce of that transaction. Every Safe transaction has a nonce. The Safe nonce is incremented with every executed transaction by 1. Each number can only be used once.

Hence in order to be sure that your signature for a transaction with nonce x can not be used by someone else, is to sign and execute another transaction with the same nonce and execute it.

Did this answer your question?