Trezor Connect on Android – Custom Derivation & Multisig?

Hello everyone,

I’m planning to build a simple Android app that leverages Trezor Connect to sign transactions created elsewhere, and I’d love your advice on whether it’s feasible and what limitations I should watch out for.

What I’d like to do:

  1. Create a PSBT in another wallet (e.g. Electrum in watch-only mode).
  2. Transfer that PSBT to my Android phone.
  3. Use my app to call Trezor Connect and have the user confirm & sign the PSBT on their Trezor device.
  4. Return the signed PSBT back to the originating wallet for broadcast.

My specific questions:

  • Custom derivation paths: My Electrum watch-only wallet uses a non-standard path (e.g. m/84'/0'/3111') that Trezor Suite doesn’t display by default. Can Trezor Connect be instructed to use arbitrary BIP-32 paths so that it will derive and sign with that account index?
  • Multisig scenarios: If I have a partially signed multisig PSBT (all but one signature), can Trezor Connect complete the final signature without disturbing the existing ones? Or does it require that it’s a single-signature PSBT, or that it controls all keys for the script?

I’ve reviewed the Trezor Connect docs and examples, but I haven’t found a clear guide on these two points. Any pointers to samples, workarounds, or confirmation of feasibility would be hugely appreciated!

Thanks in advance for any help or pointers.

yes
but 3111' is outside the allowable account range (which only goes to 100'), so you’ll have to lower the Safety Checks setting on your Trezor to be able to use it

is it multisig (single address that requires M out of N signatures), or multi-party (multiple different addresses, each controlled by a different key)?

If it is multisig (one of the kinds supported by Trezor), then you can sign it easily.

If it is multi-party, you might run into trouble. You will have to collect the other signatures first and provide them together with their respective inputs as EXTERNAL script type, and they must be valid signatures. So if you want to do multi-party with two Trezors, each will refuse to sign before the other.
(and if it’s specifically Trezors, you can use the GetOwnershipProof call to get a SLIP-19 proof of ownership, which you can include as an alternative to a valid signature)