How to recover xcp funds sent by error to a personal Trezor hardware wallet

Unfortunately the current software available to manage the trezor makes it a bit user-unfriendly to sign arbitrary transactions – the MyTrezor webwallet doesn’t even give the user the option and Electrum can be finicky with which transactions it will actually allow the user to pull in (it likes its loadable transactions to be created in Electrum as well, transactions created elsewhere aren’t really officially supported).

I know you sent your funds by error, but I actually store some counterparty assets on my trezor deliberately in order to take advantage of its security :slight_smile: . Counterparty is not officially supported by the trezor team, but as you probably know any bitcoin address can also be a counterparty address

I just pushed a script that I use to send counterparty funds from my trezor wallet up at https://gist.github.com/sorce/396fe44739392756abac8c2e213bb11e. Only OP_RETURN encoded transactions are supported by the script at the moment.

I made it (a little) user friendly, so you should just configure lines 40-53 to your specific environment / need. You need access to a bitcoin and counterparty node. You’ll also need to know the node path for the address that is controlling the counterparty asset you want to send out (e.g. 44'/0'/0'/0/1) which you can find displayed in the MyTrezor wallet.

Script should be python2/3 compatible and you’ll need the trezor and requests libraries installed. It is relaltively simple, so I recommend decoding the transactions that are output to ensure they look correct before broadcasting.

1 Like