Skip to content

Recovering funds stuck on a Trezor or Electrum address

Adam edited this page Mar 18, 2024 · 16 revisions

Using Send All to recover tokens stuck on a Trezor/Ledger/Electrum Address

The Omni protocol has a special send type called 'Send All' Which will sweep any and all tokens of a given ecosystem (Production or Test ecosystems) from one address to another specified address. Since Electrum has support for Recovering Trezor hardware wallet seeds we can use Electrum to create this special transaction which will recover/sweep all the stuck funds to an address of your choosing.

Note: Electrum may be able to use recovery seeds from other wallets but at the time of this writing only Trezor and Ledger are known. Please Proceed with caution

Determine the type of wallet you are recovering from:

Trezor/Ledger/Electrum 2FA/Other via recovery phrase/word/seed

If your funds are on a Trezor/Ledger address or you have a recovery phrase/word/seed

In order to recover funds from your Trezor/Ledger you will need to use electrum. It has support for hardware wallets.

  • Create a new electrum wallet
  • Select Standard wallet
  • Choose the option to Use a hardware device or I already have a seed
    • Use a hardware device : make sure your hardware wallet is connected/unlocked/open on Bitcoin app.
      • Follow the instructions to connect the device and confirm the details.
      • Note if you have issues linking the hardware wallet directly to Electrum please use the I already have a seed option
    • I already have a seed : Enter your hardware wallets 12 or 24 word recovery phrase and click next
  • On the Script type and Derivation path menu
    • For the script type:
      • legacy : If the address you are recovering from starts with a 1
      • p2sh-segwit : If the address you are recovering from starts with a 3
    • For the Derivation Path:
      • You should be able to leave/use the standard derivation path however please double check with your specific hardware wallet settings to ensure you did not setup something special/different.
  • Once you have completed one of the steps above make sure the address you are recovering from is visible/displayed in Electrum Addresses window.

If your funds are on an Electrum 2FA address. Multisig Special Preparation Step (Some Electrum Addresses that start with 3)

Electrum wallets that use 2FA or a third party Multisig signing service will automatically 'append' an address onto your transaction before sending it. This disrupts the normal flow of Omni protocol transactions and will cause your funds to be sent somewhere undesired so you must take the following special preparation steps to ensure funds are not sent somewhere unexpected and permanently lost.

  • Create a new electrum 2FA wallet and choose the option to recover it from your recovery seed. It should ask you to disable 2fa and have the master keys in the restored wallet. This is what you want. Once created make sure the address you are recovering from is displayed.

Recover Tokens using Electrum

IMPORTANT! IMPORTANT! IMPORTANT! If your Electrum wallet is 2FA/Multisig/uses a third party signing service you MUST perform the 'Electrum 2FA/Multisig Special Preparation Step' first otherwise your funds could be permanently lost.

  • Prerequisite: The following recovery method utilizes the Omni Protocol 'sendall' transaction which may not be supported by some exchanges. Unless you know what you are doing you should create (or login) to your Omniwallet.org account and use an address that was created by or imported with a private key into your Omniwallet for the recovery destination below. (These addresses are displayed in your Omniwallet account with a 'padlock' next to them)

  • Make sure you have about 0.001 BTC on the address you need to recover/send the tokens from (Important, it has to be on the same address your the tokens are on otherwise it will not work)

  • If you do not have an "Addresses" Tab displayed in your Electrum window goto the menu "View->Addresses" to enable the address tab.

  • On the Addresses tab, "Freeze" EVERY Address that has a BTC balance EXCEPT the Address you are recovering from (right click the address and choose freeze)

  • Go to electrum Tools menu and open the preferences.

    • Go to the 'Units' tab and change Base Units to 'BTC' . You can revert all these settings later if you want.
  • Go to 'View' and enable 'Console'

    • Click on the 'Console' tab to activate and then click on the message to acknowledge and hide it and reveal the console interface
    • In the console window enter the command wallet.use_change=False
      • Note: This setting will automatically reset after electrum is closed/reopened but you can immediately revert this with the command wallet.use_change=True after the recovery process is complete.
  • Go to the 'Send' Tab and click on the Screwdriver & Wrench Icon in the top right corder and enable the 'Pay To Many' option.

    • On the Send tab Carefully Paste in the following two lines
      • Ensure the OP_RETURN line is not changed/modified
      • Ensure you replace Your-Omni-Protocol-Enabled-Recovery-Destination-address with your actual recovery destination address:
script(OP_RETURN 6f6d6e690000000401), 0
Your-Omni-Protocol-Enabled-Recovery-Destination-address, 0.00000546
  **Note:** The minimum amount of BTC required to be sent to Your-Omni-Protocol-Enabled-Recovery-Destination-address in a recovery transaction is 0.00000546, 
  however if you wish to send more BTC to this address along with the recovered funds you may increase this accordingly. However this value should never be set lower than 0.00000546 BTC
  • Click the 'Pay' button and Adjust the fee's tab for desired confirmation speed (~5 blocks should be good) then click 'Preview'
  • Review the transaction for the following key points (example image displayed below)
    • Under Inputs:
      • TheAddressYourTokensAreStuckOn will be highlighted and displayed (there may be more than 1 inputs for that address, that is ok)
    • Under Outputs
      • First, you should see SCRIPT 6f6d6e690000000401 0. displayed
      • Next, you should see YouOmniEnabledRecover/DestiantionAddresshere 0.00000546 displayed
      • Last, you may see TheAddressYourTokensAreStuckOnDisplayedHere some#ofBTC displayed
        • This last field is a change output and optional depending on how much BTC your address has/spends creating this tx
      • WARNING If you see ANY OTHER ADDRESS except TheAddressYourTokensAreStuckOnDisplayedHere under the YouOmniEnabledRecover/DestiantionAddresshere immediately STOP and contact us for further assistance. Failure to stop could cause your funds to be sent somewhere unrecoverable. WARNING
    • Electrum Preview
  • If everything checks out so far, click the 'Sign' Button
    • Now Rerun/Recheck Everything you just did from the previous step after the transaction has been 'signed'
      • WARNING This is the last chance to check. If you see ANY OTHER ADDRESS except TheAddressYourTokensAreStuckOnDisplayedHere under the YouOmniEnabledRecover/DestiantionAddresshere immediately STOP and contact us for further assistance. Failure to stop could cause your funds to be sent somewhere unrecoverable. WARNING
  • (Optional) If you are uncomfortable or unsure of anything you have done then BEFORE broadcasting the final tx contact the Omni Foundation support team for additional assistance/review
    • Include a screenshot of the final signed tx, as well as confirming what address your funds are stuck on and what address you wish to recover/send them to
  • If everything still checks out click 'Broadcast' to complete the process
Clone this wiki locally