EDIT: Please see my next post in this thread, in which I corrected some mistakes from this post!Yep, this is the first address of my wallet.
Cool, I did not know one can export this watch-only wallet data directly as well. But it seems to be a bit more complicated than I thought this way.
The translation map is this:
NORMALCHARS = '0123 4567 89ab cdef'
EASY16CHARS = 'asdf ghjk wert uion'
so your export translates to
817d 9216 ee19 0036 ba
749d 0e7a 9da0 451b 23e2 cb23 26b9 baeb 8446
b0dc 4a3a 0cb7 d2a9 bc45 1e2d 28c7 3388 191f
7e9b 5347 b656 7083 4921 84af 95bb 8e3e 3db0
745b f145 bb9b fbd0 4447 b6e2 cfc7 2408 2056
The green part is the x-coord of the root public key, the red part is the chaincode. The blocks after them are checksums. I do not know yet what the root ID is for. But half the key does not help, you have to calculate the y-part... I will look into it tomorrow, or maybe someone else can elaborate quicker, it is too late in the night now here for me
EDIT: Okay, the root ID simply contains the wallet id + checksum. Anyway, you have to calculate the y-coord from the x-coord via elliptic curve math (in the bitcoin-php-lib with BitcoinLib::decompress_public_key()) but you need the parity byte for that, which I do not see in this backup data. But I will look into it tomorrow again.
EDIT2: Okay, powered by such a generous tip I found the part which is encoding the root data
:
---PART 1: Root Data ID (9 bytes)---
- Compressed pub key's "sign byte" flag (mask 0x80) + root data format
version (mask 0x7F) (1 byte)
- Wallet ID (6 bytes)
- Checksum of the initial byte + the wallet ID (2 bytes)
---PART 2: Root Data (64 bytes)---
- Compressed public key minus the first ("sign") byte (32 bytes)
- Chain code (32 bytes)
So the parity is encoded in the MSB of the first byte, which in your case is 0x81 = 10000001b, so the sign is +. So your compressed public root key translates to
!03! 749d 0e7a 9da0 451b 23e2 cb23 26b9 baeb 8446 b0dc 4a3a 0cb7 d2a9 bc45 1e2d 28c7
Using
$rootpubkey = BitcoinLib::decompress_public_key("03749d0e7a9da0451b23e2cb2326b9baeb8446b0dc4a3a0cb7d2a9bc451e2d28c7");
$rootpubkey = $rootpubkey['public_key'];
$chaincode = "7e9b5347b6567083492184af95bb8e3e3db0745bf145bb9bfbd04447b6e2cfc7";
returns the following first 10 adresses in your wallet:
14nTEtvpN7yBUZDcDnvYfBkGMpQmp4hQn6
1EYZpyfyxK3JxQ5j3FL6KgaWvh7SHUdXhZ
1ELXudaLkrmodPneh8pitP9u2GK6Ve2HVb
1PWBwGEgfRE6FamVcXrZLvAThXL6RsoaGx
1PR3YJgsN3PLzX2P1LXJnduRqYndHAe3VE
1JJEWaUczztUJk3hZnpTnvszCUVas2hhDq
13HzTASPY8VeXMGZm7snZ6WDX11NdEoxD1
1Q7k6GcF3QEixbitxK9Lg2B2Tu3P8WhVAx
1BWjEgG7f15huoiV677iCVH7ehZWXmqqMG
1BwP4d1e9CXYMRetVZqPeVysaK7WgrE84g
Is this correct?
Good night