We use technologies like cookies to store and/or access device information. We do this to improve browsing experience and to show (non-) personalized ads. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Техническое хранение или доступ необходимы для законной цели хранения предпочтений, которые не запрошены подписчиком или пользователем.
The technical storage or access that is used exclusively for statistical purposes.
Техническое хранилище или доступ, который используется исключительно для анонимных статистических целей. Без повестки в суд, добровольного согласия со стороны вашего интернет-провайдера или дополнительных записей от третьей стороны информация, хранящаяся или полученная только для этой цели, обычно не может быть использована для вашей идентификации.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
What is multisig? How to set it up with hardware wallets
Multisig lets you distribute control over cryptocurrency across several independent keys. In a 2-of-3 setup, any two signatures are enough to send funds, so you can still use your funds if you lose access to one key. Anyone who obtains just that one key cannot move the funds alone.
Below, we will set up a Bitcoin wallet in Electrum, back up its configuration and test signing. For Ethereum, we will use Safe{Wallet}. Both examples keep private keys on a Ledger Nano X, Ledger Flex and Trezor Safe 7, but wallet creation, transaction verification and recovery work differently.
The desktop instructions use Electrum 4.8.2. Trezor Safe 7 support was added in version 4.8.0, so earlier versions are unsuitable for this combination of devices. Menu items and buttons refer to the English interfaces of Electrum and Safe{Wallet}.
What is multisig, and what does it protect against?
With a conventional single-signer hardware wallet, you can restore access to your funds using the seed phrase, also called a recovery phrase. The device stores private keys and signs transactions without passing those keys to the software on your computer. Anyone who obtains the recovery phrase can recreate the keys on a compatible device; if the wallet uses a passphrase, they will also need that additional password.
Multisig, short for multi-signature, requires several signatures to authorize a transaction. A setup is described as “m of n,” where n is the total number of keys and m is the number of signatures needed to spend funds. Our example uses three independently generated keys. Transfers can be signed by the Nano X and Safe 7, the Flex and Safe 7, or both Ledger devices.
A 2-of-3 setup lets you access your funds if one device breaks or one recovery phrase is lost. If a key is stolen, the attacker still needs another key to move the funds. Protection against a vulnerability shared by several devices depends on how you distribute keys across manufacturers, while protection against fire or theft at a single location depends on where you store them.
If two signers approve the same substituted address or malicious contract call, the transaction will go through. Each signer must therefore verify the transaction independently, checking the address and parameters on the device and using independent sources of information.
Ledger Nano X, Ledger Flex and Trezor Safe 7 in a 2-of-3 setup
This guide uses two Ledger devices and one Trezor. The Nano X has physical buttons and a compact display, while the touchscreens on the Flex and Safe 7 make long addresses and transaction details easier to review. Exactly what you can see depends on the firmware, app and connection method.
Using devices from different manufacturers reduces your reliance on shared software and hardware. For routine signing in this example, you can use the Safe 7 and one Ledger, keeping the second Ledger at a separate location as a backup signer.
If you substitute a different model, check its compatibility with the software and network. A device suitable for Bitcoin multisig does not necessarily support signing in Safe for Ethereum, and the process for adding its key may differ.
Ledger Flex
Ledger Nano X
Trezor Safe 7
Which setup should you choose: 2-of-2, 2-of-3 or 3-of-5?
We will use 2-of-3 because it lets you keep one key in a separate location without needing it for routine transfers. A 2-of-2 setup suits arrangements where both parties must participate, but reliable backups are especially critical. A 3-of-5 setup may suit shared custody when the additional devices and people responsible for them are justified.
Distribute devices and recovery phrases so that no single location provides access to two independent keys. For example, a Nano X and the Flex recovery phrase in the same drawer already provide enough access for two signatures. A device and its own backup represent one key, although storing them together risks losing both at once.
Choose storage locations that let you access two keys even when you cannot reach the third. If you entrust someone with a key, explain its role in the setup and what they should do if the device is lost.
How multisig differs between Bitcoin and Ethereum
Electrum works with Bitcoin. For Ethereum, we will use Safe, a smart contract account controlled by owner addresses. Both allow a 2-of-3 threshold, but they store this rule differently.
Bitcoin: keys and wallet configuration
In Bitcoin, a script defines the spending conditions. To calculate the addresses for our wallet, the software needs the extended public keys of all three participants, the signature threshold, the script type and the child key derivation rules. Electrum acts as the coordinator: it collects this information, creates a transaction and passes it to the devices for signing.
An extended public key is often referred to generically as an xpub. It allows addresses to be derived, but cannot sign transfers. In Electrum, keys for the type of multisig used here have the prefix
Zpub. Back up each complete key exactly as displayed.For P2WSH addresses, the blockchain initially contains a hash of the script; the script itself is revealed when BTC received at that address is spent. This does not replace a configuration backup containing all the extended public keys. If one key and its xpub are lost with no other way to recover them, the other two keys are insufficient to recreate the wallet addresses.
Ethereum: owners and the threshold in the Safe contract
An ordinary Ethereum address has no “two signatures out of three” setting. This requires a smart contract account, such as Safe, which stores the owner addresses and signature threshold. Each hardware wallet controls a separate owner address, while funds are held at the Safe address itself.
You can change the Safe owners by collecting the required signatures, without moving all the assets to another account. Contract deployment and transaction execution incur network fees, and the contract, enabled modules and interface introduce risks alongside those of the devices. This guide uses a standard three-owner setup without additional modules or spending allowances.
What you need before you start
If you use a passphrase, the additional password that determines your wallet keys, choose it before exporting xpubs or selecting Ethereum addresses. Always open the wallet with that same passphrase: any other value, including an empty one, produces different keys. For your first practice run, you can use separate test wallets without passphrases.
Part 1. Set up Bitcoin multisig in Electrum
We will create a native SegWit P2WSH multisig wallet with a 2-of-3 threshold. Saleem Rashid’s 2018 guide explains the same principle, but the screenshots and firmware limitations it describes are outdated. The current Ledger integration registers a wallet policy during signing to define the threshold and participating keys.
In Electrum 4.8.2, the Ledger plugin cannot display multisig addresses on the device, although the Nano X and Flex can do so through other compatible software. Here, we will display the receiving address on the Safe 7 and separately verify every key in the configuration.
Step 1. Download Electrum and verify its signature
gpg --import ThomasV.asc. The procedure and sources for cross-checking are provided on the Electrum download page and in the official signature verification instructions.gpg --verify electrum-4.8.2-setup.exe.asc electrum-4.8.2-setup.exe. For another package, substitute its exact filenames.A checksum can detect a corrupted file, but matching the hash on the same website does not establish the software’s authenticity if that website has been compromised. On Linux, you may also need Ledger and Trezor udev rules so that the application can access the USB devices.
Step 2. Launch Electrum and configure the connection
On its first launch, Electrum configures the connection to the Bitcoin network before you create a wallet. You do not have to select a server manually: automatic connection is sufficient for the initial setup. These opening screens may not appear if the application is already configured.
domain:port:s. Port50002is common, but check the server’s actual settings. To select a server from the list, right-click it and choose Use as server. Check your entry and click Next.Leave Use Proxy disabled unless you already have a configured proxy. The Connect only to a single server mode is intended for your own fully trusted server: Electrum will not cross-check block headers with other servers in this mode. For an ordinary public server, use Auto-connect or Manual server selection.
Once the wallet is created, you can review these settings through Tools → Network → Server or the network icon in the bottom-right corner. If the connection fails, check your internet access and proxy settings. To restore automatic mode, choose Connection mode → Auto-connect. Wait for the initial synchronization to finish, since the balance and history may be incomplete until then. Our guide to running a Bitcoin node with Start9 explains how a wallet, an Electrum server and a full node work together.
Step 3. Prepare the devices for connection
Step 4. Create a 2-of-3 wallet
multisig-ledger-trezor, and click Next. If Electrum has already opened an existing wallet, first choose File → New/Restore to create a separate file.With the same keys, derivation paths and script type, the order in which you add signers does not change the addresses: Electrum sorts the public keys when constructing the multisig script. Still, record the device names so that you know which key belongs to each device.
Step 5. Add the Ledger Nano X key
bc1q.m/48h/0h/0h/2h, which defines how keys for the intended account are derived from the master key. Thehnotation and apostrophes are equivalent:m/48'/0'/0'/2'. This path follows BIP48 for the first native SegWit multisig account on Bitcoin mainnet.The
p2wsh-p2shandp2shoptions produce different addresses. We use P2WSH for the new wallet in this guide. When restoring an existing wallet, reproduce its original script type and derivation path, even if they differ from those shown here.Step 6. Add the Trezor Safe 7 key
m/48h/0h/0h/2h, and P2WSH script type are selected. Confirm the necessary prompts on the device and wait for the wizard to move to the third signer.Step 7. Add the Ledger Flex key
m/48h/0h/0h/2hand approve the export of public data if the device requests it.If a signer is elsewhere, you can add them using an extended public key exported for the agreed derivation path. Verify that key with its owner over an independent communication channel: an xpub from an unknown sender could add someone else’s key to your wallet.
Step 8. Protect the wallet file with a password
A file created using only hardware signers does not contain their private keys. It holds public keys and wallet settings that can reveal addresses and transaction history, so protect it from unauthorized access as well.
Step 9. Save the configuration and a backup
sortedmultikey-sorting rule. After verifying the address in the next step, add the first receiving address as a reference.A configuration without private keys cannot move funds, but it reveals addresses and financial history. Do not share it in public chats or upload it to a third-party website for a “wallet check.” You can also save a descriptor, a text description of how the addresses are constructed, but the recorded parameters and complete public keys are sufficient for basic recovery.
How to match a Zpub to the xpub in a Ledger policy
Electrum and Ledger may display the same extended public key with different prefixes. To compare the full key, also save its equivalent xpub representation in advance, leaving the original Zpub unchanged in your backup.
convert_xkey("your complete Zpub", "standard"), replacing the text in the first pair of quotation marks with the complete Zpub from your configuration. The command changes the encoding while preserving the public key data; it does not require private keys or recovery phrases.Do not replace a Zpub with an xpub in Electrum’s recovery wizard simply to change the prefix: the encoding can affect which script type the software selects. When recreating the wallet in step 12, use the original Zpubs you saved.
Step 10. Verify the address and receive a small amount of BTC
Multisig test, then click Request. You can leave Requested amount blank. Electrum will display the receiving address. If the Addresses tab is hidden, enable it through View → Show Addresses.If you try to display this address on the Nano X or Flex, Electrum will report that the feature is available only for standard wallets with Ledger. Verify the address on the Safe 7 as described above. To display it on a Ledger as well, you can use Sparrow, discussed below.
Step 11. Sign a transfer with two devices
The registered policy lets the Ledger check whether the change belongs to the same multisig wallet. Change is the BTC left over from the amount the wallet uses to fund a transfer: after paying the recipient and the fee, it returns to an address you control. If you approve a policy containing someone else’s keys during registration, the device will check change against that policy. Verify the participating keys beforehand.
Electrum keeps the Ledger policy registration credentials in application memory. After a restart or a new connection, the prompt may appear again, so check the threshold and keys every time against your own configuration.
How to transfer a partially signed transaction
If the devices are stored in different places, you can collect signatures on different computers using the same wallet configuration. A PSBT, or partially signed Bitcoin transaction, stores the information needed for signing along with any signatures already added.
A PSBT does not contain recovery phrases, but it can reveal addresses, amounts and other wallet information. Transfer it over a secure channel and sign the same transaction without changing the recipient or amount. The Nostr Cosigner plugin also supports exchanging transactions between signers; a file transfer is sufficient for the initial setup.
Step 12. Check the configuration, backups and every device pair
Recreating the configuration checks that the public keys and settings were saved correctly. A recovery phrase check confirms that the words were recorded accurately, while test transfers verify that every signer works. Complete all three checks before depositing the main balance.
The procedures are described in the Trezor Safe 7 instructions and the Ledger Recovery Check instructions. For these checks, enter recovery phrases only on the devices.
What to do if a device fails, is lost or its key is compromised
If a device breaks but its backup remains secure, restore the same key on a compatible hardware wallet. If you use a passphrase, open the wallet with it, then export the extended public key for the recorded path and compare it with the configuration. Device failure alone does not mean the key has been compromised.
If a device is lost or stolen, or a recovery phrase may have been exposed, create a new multisig wallet with a new, independent key replacing the missing one. Verify the new configuration and address, then use two available keys from the old wallet to transfer the funds. Restoring a compromised phrase on a new device does not revoke access from anyone who already has it.
If two devices are unavailable, restore at least one of those keys so that you once again have two usable signing keys. The replacement device must support the backup format: BIP39 and SLIP39 are not interchangeable. Recreating the addresses also requires the saved public data for every signer.
Electrum supports software recovery through I already have a seed → Options, where you can select BIP39 seed or SLIP39 seed. In this emergency scenario, reproduce the original passphrase, P2WSH script type and path for each key; SLIP39 Multi-share Backup requires enough shares. Entering a recovery phrase on a computer takes that key outside the protection of the hardware wallet, so replace it after recovering the funds. Use the devices for routine backup checks. Our article on what happens if a wallet manufacturer shuts down covers backup and third-party software compatibility.
Electrum or Sparrow for this wallet?
Electrum remains the main application for this guide. You can use Sparrow as another coordinator for the same standard configuration. It supports Ledger wallet policies and displaying multisig addresses on the device, which is useful for checking addresses on the Nano X and Flex.
You can import a copy of the Electrum file or recreate the wallet from the complete extended public keys, paths, threshold and script type. Before using it with funds, compare several addresses with Electrum to confirm that the configuration is correct. You can then save a descriptor as an additional backup if needed.
Part 2. Set up Ethereum multisig with Safe{Wallet}
Safe{Wallet} is an interface for managing a Safe smart contract account. On Ethereum, this account can hold ETH, ERC-20 tokens such as USDT and USDC, and NFTs. The method described here does not work for BTC or USDT on Tron. On each supported EVM network, separately verify whether the Safe contract is deployed and check its configuration.
In the standard confirmation flow, owners sign a proposal off-chain, so these signatures do not require gas. Network fees are paid when deploying the Safe and executing a transaction. In our example, one of the owners will pay them and will therefore need ETH at their personal address on the same network.
For the first test, we will make a simple transfer of a small amount of ETH, without batch calls or dApp interactions. We will then cover the differences for tokens. If you choose to test on a layer 2 network, use that same network throughout deployment, funding, hash verification and execution.
Step 1. Record the three owners’ Ethereum addresses
The owner addresses control the Safe, but funds are held at the Safe address itself. If you fund an owner’s personal address, spending those funds will depend solely on that owner’s key.
Step 2. Connect a Ledger to Safe{Wallet}
For off-chain signatures, Safe recommends connecting Ledger and Trezor directly. We use that method here because connecting through MetaMask may change how data is signed and displayed. If the browser cannot detect the device, check the cable and USB permissions, and close other applications using the connection.
Step 3. Create a Safe with a 2-of-3 threshold
Step 4. Verify the contract and fund the Safe
getOwners()andgetThreshold()and run these queries. They should return your three recorded addresses and the number 2. Compare these results with the settings in Safe{Wallet}.If you send funds on a network where the Safe has not been deployed, recovering access may require a separate contract deployment, which is not always possible. For the initial setup, use only a verified network and an already deployed account.
Step 5. Create and verify an ETH transfer
toshould contain the recipient,valuethe amount in wei,datathe empty value0x, andoperationthe value0, meaning a normalCALL. One ETH equals10^18wei.nonce, the sequence number of this Safe transaction. If the interface proposes a batch call orDELEGATECALLinstead of the expected simple transfer, go back and find out why the transaction structure has changed.When confirming a Safe proposal, an owner normally signs a structured EIP-712 message containing the terms of the proposed transaction. The device may display its fields, hashes or both. Review all available information; if a fully decoded description is unavailable, verify the hashes using the procedure below.
A hash is calculated from transaction data, so a correctly calculated hash can still represent a malicious call. First check what the transaction will do, then verify its hashes.
How to verify hashes with Safe Utils
to,value,data,operation,nonce,safeTxGas,baseGas,gasPrice,gasTokenandrefundReceiver. Check that they match what you intend to do; do not guess missing values.safeTxHashwith Safe transaction hash. These are different hashes and are not expected to match one another.Perform the independent calculation on another trusted device and check the source of the input data as well: two windows on one computer can both be compromised by the same malware. The procedure is detailed in the Safe Utils documentation and Safe’s hardware wallet verification guide. For local calculations, you can use safe-tx-hashes-util.
Step 6. Collect two signatures and execute the transaction
What changes for USDT, USDC and other tokens?
After a successful ETH test, you can test an ERC-20 token transfer. Fund the Safe on the same network and select the token under Send funds. Create a proposal, collect two confirmations and execute it. Before signing, account for the token transfer differences described below.
For a standard ERC-20 transfer, the
tofield contains the token contract address, while the recipient and token amount are encoded indataas atransfercall. Thevaluefield is usually zero because the call does not send ETH. Check the contract address, recipient and amount, accounting for the token’s decimals, then verify the hashes.If the proposal calls approve instead of the expected transfer, you are granting another address permission to spend tokens. Assess dApp interactions, batch transactions and unfamiliar contracts separately. A successful ETH test does not establish that those operations are safe.
Lessons from the Bybit attack
On February 21, 2025, a substituted transaction was signed while Bybit was using Safe{Wallet}. According to Sygnia’s investigation, malicious changes to web interface resources allowed the transaction contents to be replaced and control over the assets to be taken. Multiple hardware signatures did not prevent a transaction whose actual effect differed from what the signers expected.
Checking the contract call, calculating hashes independently and simulating the outcome where possible can help signers detect such a substitution before approval. Verify every transaction regardless of how many signers are involved.
How to replace a Safe owner or change the threshold
Adding an owner or changing the threshold requires the number of confirmations set by the current threshold. To move to 3-of-5, add and verify the new owners, then set the threshold to three signatures. If you already have fewer keys than the current threshold requires and no alternative recovery method was configured in advance, you cannot lower the threshold.
What to save for Safe recovery
Restore access to the keys of at least two owners and connect the existing Safe on the correct network. You do not need to create a new account: the current owners and threshold are stored in the contract, so there is no need to reconstruct them from xpubs as with Bitcoin.
If the web interface is unavailable, the contract continues to exist. You can interact with it through another compatible interface or the Safe CLI. This requires a separate setup, including verification of the network, contract address, nonce and transaction data. Without recorded addresses and accounts, recovering access is harder even if you still have the recovery phrases.
Can Ledger Enterprise Multisig replace Safe{Wallet}?
Ledger Enterprise Multisig also uses the Safe protocol and offers Clear Signing, which displays supported transactions in a readable form on the device. Its device requirements differ from those for a regular Ledger connection in Safe{Wallet}.
Of the devices used in this guide, the Flex supports signing in Ledger Enterprise Multisig. The Nano X can connect to the service to view balances and requests, but cannot sign its transactions. You therefore cannot collect two signatures with our Ledger devices through it. For this mixed setup including the Safe 7, we use Safe{Wallet}.
Common multisig setup mistakes
When to deposit the main balance
After setup, you should have three independent keys, verified backups and a clear recovery procedure. For Bitcoin, you also need a complete configuration that you have already used to recreate the same addresses. For Safe, you need verified owners, a verified threshold and the address of the deployed contract on the intended network.
Deposit the main balance after successful test transfers, including one with the backup signer. Leave a short recovery guide for yourself or someone you trust, so that you do not have to reconstruct the process from memory years later. For more on backups, see our articles on recovery phrases and how to store them.
Related Posts
How to make money with crypto in 2026: 6 ways and key risks
How to make money with crypto in 2026? There are several workable approaches, but none of them offers guaranteed “quick 10x gains.” Every model has a price: time, risk, or knowledge. If your only goal is to make money without a plan, without understanding the risks, and without discipline, crypto will almost certainly work against …
#Trezor tutorial. Trezor Suite not detecting your device? Here’s how to fix it
Trezor Suite not detecting your device? You connect your Trezor to your computer, open Trezor Suite, and the app says it cannot find the device. There is usually no need to worry: in most cases, this does not mean your Trezor is broken. According to the official Trezor troubleshooting guide, the cable is the most …
How to convert crypto to fiat: methods, risks and taxes
The ways you can convert crypto to fiat in Ukraine are changing quickly. Over the past year, exchanges have closed some fiat payment channels, banks have continued scrutinising risky transactions, and Ukraine’s parliament has moved towards a separate tax framework for crypto assets. If you do not keep up with these changes, you could face …
Claude Duet: what Anthropic’s AI agent can do and who it’s for
Claude Duet can review your work email, draft replies, prepare meeting materials, and let you know when it needs a decision from you. It keeps working in the cloud after you close the app, and its morning review of your inbox and calendar helps identify what needs your attention. Anthropic introduced Duet on October 21, …