Why Trezor Suites blocks singing transactions when it thinks I have insufficient funds?

Sometimes I want to sign a transaction on a device withouth network access to later publish it over a blockchain website.
But when the device has no internet permission, it can’t load the balances and therefore don’t allow me to sign any transaction because it always thinks that I don’t have enough money.

Unfortunately I have the same issue with other wallets like Exodus.

Can someone explain me why there is no wallet software that allows me to sign transactions always if I want to?
I would be very grateful if the Trezor devs could implement an option to disable the balance check for signing transaction or just remove this useless limitation completely.

It’s not a matter of “balance”, and neither it is a simple one-liner “IF not_enough_money() THEN print(don’t sign transactions, stupid user)”.

To construct a proper transaction, the wallet needs to know the current state of the blockchain. In case of Bitcoin and derived coins, that’s the UTXO set. In case of Ethereum, the last nonce and possibly some other metadata. Without this knowledge, the transaction can’t be created.

Sure, technically any wallet could download this info and store it at home, and just hope that it’s not outdated if you’re signing offline. In practice wallets mostly don’t bother because they don’t really work offline anyway.

You may be able to use Electrum Wallet to do the thing you want to do.

:joy::joy:

This was the part I was missing.
Of course the wallets not only needs to know the private and the public key but also which UTXO are in the address.

I did some research on what a nonce is, and it seems that it is just a transaction counter of an Ethereum Account. Couldn’t the Wallet keep track of this offline?

Can Electrum sign offline? I thought this was not possible without knowing the UTXOs.

I have two reasons to try to do offline signing:

  1. Trezor Suite is not loading for some reason. I test the connection of the device through other applications and they have internet access, but Trezor Suite has not.

  2. I think it would be better for privacy anyway to make a transaction and only broadcast that specific transaction instead of requesting all my addresses every time I open Trezor Suite.
    I couldn’t find an option to disable auto loading of the crypto account’s but I don’t want all my crypto get linked together because they are requested together.
    Even if I use Tor (which is my plan anyway) it would still not help because if all accounts get requested at the same time, they all go over the same (Tor) IP and are therefore linked.
    And there are API Keys as well, I am not sure if Trezor Suite is using one, but I heard that many Wallets use the same API Key for every account.

Thank you for taking the time to answer my (probably stupid) questions.
I really appreciate the work of you and the rest of the Trezor team.

Electrum is exactly the kind of wallet that I believe does store the utxos.
I haven’t personally tried it though, maybe I’m wrong

Yes, Electrum can sign offline, but you can’t prepare such transaction on offline computer. When i was playing with MultiSig, i done exactly this. You prepare the transaction on View-only online Electrum wallet, transfer it over USB, sign it on offline computer. Transfer back the signed transaction over USB to online computer and broadcast. Sure in case of 2-of-2 MultiSig you can sign it on first offline computer and send PSBT (Partially Signed Bitcoin Transactions) to your company partner/friend on the other side of world, he adds second signature and broadcast the final transaction. Search for Electrum’s readthedocs:

Cold Storage

Are QR Codes also supported? I think USB drives are some unnecessary risks is this case, and also their are more complicated.

How to I verify my identify to a person on the other side if the world?
If I get hacked they can also hijack this mechanism.

Although i have some USB barcode reader (like Zebra DS2208) i didn’t test it over the QR. In mentioned doc portal screenshot there is “QR button” next to “Save button”. Also in “Multisig Wallets” part of Electrum’s “Read the doc”, there is:

For this you have multiple options:

  • you can transfer the file on a usb stick
  • you can use QR codes
  • you can use a remote server, with the CosignerPool plugin.

But this is Trezor forum, you should ask such question on some Electrum portal/support/elsewhere.

The transaction will be broadcasted publicly anyway. Also if you sign on offline machine, that one can’t be hacked - it is OFFLINE :wink: Trezor HW device is also offline device by itself (it is sign-only part of the wallet, it is not networked-part of the wallet - the separation of wallet roles is on purpose).

And in case of SW hot wallet? Well, if you think about that, you can’t be trusted anymore. The other party will not be able to differentiate between you vs. hacker, because he will be probably able to mimic all the things like you. Maybe some other validation channel - by SMS, phone call can the other party verify it is legit. But there also a scenario, that you handle all the signatures yourself for higher security :innocent:

That’s the issue with multi sign around the world.
I think multi sign only has a use case if you can verifiy identity in person.