lily-wallet icon indicating copy to clipboard operation
lily-wallet copied to clipboard

Unable to load existing wallet configuration from Caravan

Open Bosch-0 opened this issue 5 years ago • 2 comments

I downloaded my .json file wallet configuration from caravan and went attempting to load it into Lily I am prompted to enter a password (no password exists) - unsure if this is a viable way to load a wallet but would be great if this was possible.

Bosch-0 avatar Aug 19 '20 05:08 Bosch-0

Interesting use case. It would nice to be able to add a vault to Lily from a Caravan config (we support creating Caravan configs from Lily but not the other way around).

The only issue with this is that Caravan doesn't keep track of device fingerprints which we need to sign transactions using HWI.

KayBeSee avatar Sep 11 '20 22:09 KayBeSee

Just got off a zoom call with Karl from Unchained Capital. It looks like they use fingerprints in the Caravan export file now, so this issue is unblocked.

I have to go back and look at the Caravan file exported from Unchained's platform, but would be nice to allow "Import from file" option in "..." menu to recognize a Caravan file and import correctly.

Gotchas:

  • doesn't use native segwit derivation path / address type
  • passes "blinded" derivation path for unchained key (will need to replace with m/45'/0'/0')

Nice to haves:

  • Unchained's trefoil app still doesn't recognize change addresses or rotate receive addresses, so blocking that functionality would be ideal

KayBeSee avatar Jul 27 '22 15:07 KayBeSee

do we have testvectors for caravan..?

Overtorment avatar Oct 12 '22 09:10 Overtorment

What do you mean by testvectors?

Do you mean tests for lilyConfigToCaravan and caravanToLilyConfig functions?

KayBeSee avatar Oct 13 '22 04:10 KayBeSee

actual json files from caravan would be best

Overtorment avatar Oct 13 '22 19:10 Overtorment

Here is one with the xpubs redacted:

{
  "name": "Vault #1",
  "addressType": "P2SH",
  "network": "mainnet",
  "quorum": {
    "requiredSigners": 2,
    "totalSigners": 3
  },
  "startingAddressIndex": 0,
  "extendedPublicKeys": [
    {
      "name": "io",
      "xpub": "xpub420xxx69",
      "bip32Path": "m/45'/0/0/0",
      "xfp": "xxx"
    },
    {
      "name": "bluewater",
      "xpub": "xpub420xxx69",
      "bip32Path": "m/45'/0/0/0",
      "xfp": "xxx"
    },
    {
      "name": "Unknown",
      "xpub": "xpub420xxx69",
      "bip32Path": "Unknown",
      "xfp": "xxx"
    }
  ]
}

KayBeSee avatar Oct 14 '22 05:10 KayBeSee

i took the liberty to fill xpubs:

{
  "name": "Vault #1",
  "addressType": "P2WSH",
  "network": "mainnet",
  "quorum": {
    "requiredSigners": 2,
    "totalSigners": 3
  },
  "startingAddressIndex": 0,
  "extendedPublicKeys": [
    {
      "name": "io",
      "xpub": "xpub6EJoguJn6okK6ymxkU53BZgjf4kqrL19uvTwqVnPRaV8qYvx1RhGtyKZxLhzY4YLCYtvB6DsGk1uR3GFBMvwgc5qz19WAxm2nSXZcoyNftY",
      "bip32Path": "m/48'/0'/0'/2'",
      "xfp": "A3909080"
    },
    {
      "name": "bluewater",
      "xpub": "xpub6FL52qF9cn2nL7T8gv6gStR8GcezKF4LgY53VLbi5sqRjc4PpBuYFp3nfep884hkuF9dC7KZ11mkthE1NVzbX98QmoJQqBFxQbHnpJ5vQKB",
      "bip32Path": "m/48'/0'/0'/2'",
      "xfp": "7AB71DF0"
    },
    {
      "name": "Unknown",
      "xpub": "xpub6ERjK6ubp5p7UUByXGadKvHcqEUMxvWPr7DkzqHz7GnnZEqdR9ffE3Y1DffYqRjJzeGWL1st1qH4kEaZCzjVnJoZ2PJUcnThi48D71zd6sJ",
      "bip32Path": "Unknown",
      "xfp": "F11B9FF2"
    }
  ]
}

wallets must agree that zero-index address on external hierarchy is bc1qtysquqsjqjfqvhd6l2h470hdgwhcahs4nq2ca49cyxftwjnjt9ssh8emel

https://github.com/BlueWallet/BlueWallet/pull/5129

Overtorment avatar Oct 20 '22 15:10 Overtorment