Bitcoin Core 31.1 exports
| Field | Value |
|---|---|
| Program | Bitcoin Core v31.1.0 (getnetworkinfo version 310100, /Satoshi:31.1.0/); the generator refuses any other version |
| Generator | tools/gen-interop-core.sh <empty directory>, which runs tools/gen-interop-core.py |
| Network | regtest, its own datadir, RPC port 39443, P2P port 39444, stopped afterwards |
| Keys | The BIP-84 and BIP-86 test key (abandon x11 about, the key the conformance contexts use), and BIP-32 test vectors 1 and 2 as the other two cosigners |
| Reproducible | Fixed keys and fixed timestamps; two runs wrote byte-identical files |
| Licence | Generated by this project; MIT, like the rest of this repository |
Each file is a Core RPC result, written as Core returned it. Core on regtest
writes tpub keys and bcrt1 addresses; nullroute ignores an extended key's
version bytes, and the tests derive on regtest to compare.
| File | SHA-256 | What Core was asked | nullroute |
|---|---|---|---|
bitcoin-core-31.1/listdescriptors-bip84-bip86.json |
4bb57021598cb0e195ce0e9362fea5ff7038b0bbc6d8761f4fa8cc5b0784a8f9 |
listdescriptors for a wallet holding the test key as wpkh at m/84'/0'/0' and tr at m/86'/0'/0', receive and change |
Reads four descriptors identical to Core's, checksums included, with the branch from internal. Extracts 73c5da0a and the account keys BIP-84 and BIP-86 publish. Derives Core's addresses on regtest and the BIPs' on mainnet |
bitcoin-core-31.1/listdescriptors-2of3.json |
9178095b76bc4af175323c4a97b89ca43a97b46498c91a3d8caac5573ffec6c7 |
listdescriptors for cosigner A's wallet in a 2-of-3 wsh(sortedmulti) quorum, with B and C's account keys exported by their own Core wallets |
Reads both branches, named 2of3: 2-of-3, sorted, fingerprints 73c5da0a, 3442193e and bd16bee5 at m/48'/0'/0'/2'. Derives Core's addresses |
bitcoin-core-31.1/importdescriptors-2of3.json |
8518d8a10046033ba149764689a509c001478e3f5edee762415c307c772d9e95 |
The descriptors array of the file above, the shape importdescriptors takes; the generator imported it into a fresh watch-only wallet and Core accepted it |
Reads it as core-importdescriptors, the same descriptors, receive then change |
bitcoin-core-31.1/getdescriptorinfo.json |
f3a49eb5875ce7418df4bc329bca4e3ac28b453ebf66f940563803505c1ac063 |
getdescriptorinfo for each descriptor above and for the BIP-389 /<0;1>/* form of each receive descriptor |
Computes Core's checksum for each multipath form |
bitcoin-core-31.1/deriveaddresses.json |
a8b09a4d8bc436d0f8eac98840dc09d40ce8ceafa51f7c42372f3fd7ff73e80e |
deriveaddresses for the same descriptors, indices 0 to 2 |
Derives the same addresses, receive and change for the multipath forms |
bitcoin-core-31.1/deriveaddresses-sparrow.json |
91ba200ae6bf4f64ca39a5cd87d749bf2d5fa81bffe6ae8862e59f7bbfc159da |
deriveaddresses for every descriptor in the Sparrow fixtures nullroute reads, read by the generator's own small readers, keys re-versioned to tpub |
Derives the same addresses from its own reading of each file |
Before writing anything, the generator checks that Core's regtest addresses for the converted test key carry the witness programs BIP-84 and BIP-86 publish, so the conversion is known to be the BIP key.
Rendered from spec/interop/README.md, the same bytes that ship with the code. SHA-256 b13c292915c8fb50b9d62c7c64e284864faa181ac8982a113e8f90bbd41e7b56