I should better explain my use case:
I would like to create my own seed by using dice throws. When I have a 99 digit base 6 number, I want to type that into Bitcoin Core on an offline machine/live os. Then I want to take the XPUB that is created, and transfer it to an online machine running Bitcoin Core as "watch only". Then I can create new receiving addresses on the online machine, which I will also use to create PSBTs.
I don't mind using a simple script or two if absolutely necessary, but I prefer to only use Bitcoin Core for security reasons.
It seems this is simply not going to be possible. From Bitcoin Core v23:
the legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the futureI will not be able to update my version of Bitcoin Core beyond v23. I will have to use "legacy" wallet types only for my use-case.
- createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup external_signer )
descriptors will have to be set to false.
Then I can use:
- sethdseed ( newkeypool "seed" )
I will set newkeypool to true, and the "seed" is the WIF private address that is generated by the python script provided by BlackHatCoiner.
After that I can use:
- getnewaddress on offline machine, then save this to text file and import into bitcoin core on online machine using
importaddress "address" ( "label" rescan p2sh )
And then, when I am ready to spend:
- estimatesmartfee/createpsbt on server (to build a transaction with current fees)
- save the transaction in a text file, take to offline machine
- walletprocesspsbt on offline machine, save to text file and take to online machine
- broadcast transaction
Is this generally correct?
This way I have a paper copy of my original seed (a random 99 digit number in base 6), I have an offline machine and electronic copies of an encrypted wallet.dat file with private keys, and I have an online machine which never sees private keys but allows access to the bitcoin network.