lily-wallet
lily-wallet copied to clipboard
Unable to load existing wallet configuration from Caravan
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.
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.
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
do we have testvectors for caravan..?
What do you mean by testvectors?
Do you mean tests for lilyConfigToCaravan and caravanToLilyConfig functions?
actual json files from caravan would be best
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"
}
]
}
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