Skip to the content
nullroute
Browse the docs

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