How to move/sweep your Bitcoin Core bitcoins safely and air-gapped to your new fancy cold storage? I have stored my bitcoins on Bitcoin Core in a few P2PKH addresses with many UTXOs. I would like to have a plan, how these bitcoins can be moved air-gapped to a more up-to-date setup (not discussed here).
I have not touched this computer (OFFLINE) for many years and I am afraid to connect it to the internet.
I assume that I need to have access to the lastest UTXO set and then create air-gapped transactions. But how exactly can this be done?
Is it possible to setup a Bitcoin Core on another online computer (ONLINE) and import the addresses using &quot;importaddress&quot;?

Is it (and how) possible to create an unsigned transaction on this ONLINE computer including all UTXOs of one of the imported (watch-only) addresses?

And then move this unsigned transaction to the old offline computer (OFFLINE) with the old wallet.dat file and sign the transaction?
Is this possible or is there another way to do this air-gapped?
Has anyone documented all the necessary steps?
Thanks for your help!
-A frightened hodler
Yes, it's possible using descriptors and PSBTs.
How to spend/sweep p2pkh UTXOs air-gapped using Bitcoin Core's GUI and  PSBTs.
Here are the required steps, most of them have to be entered into Bitcoin Core's console.
OFFLINE

export the descriptor of the p2pkh address:  getaddressinfo ADDRESS

copy the &quot;desc&quot;: &quot;pkh([....&quot;, output to the ONLINE computer


ONLINE

optional: create a new wallet in Bitcoin Core
import the descriptor from above into Bitcoin Core:  importmulti '[{ &quot;desc&quot;: &quot;pkh([....&quot;, &quot;timestamp&quot;:0, &quot;label&quot;:&quot;import&quot;, &quot;watchonly&quot;:true }]'
optional: check that the following is now &quot;solvable&quot;:  getaddressinfo ADDRESS
now create the unsigned PSBT using Bitcoin Core's GUI
copy the unsigned PSBT (YOUR-PSBT) to the OFFLINE computer

OFFLINE

if needed unlock your wallet walletpassphrase &quot;YOUR_WALLET-PASSWORD&quot; 600
optional: check the PSBT  decodepsbt YOUR-PSBT and  analyzepsbt YOUR-PSBT
sign your PSBT: walletprocesspsbt YOUR-PSBT
finalize your PSBT: finalizepsbt OUTPUT-FROM-WALLETPROCESSPSBT-ABOVE
copy the hex output from above to your ONLINE computer

ONLINE

send the raw transaction using sendrawtransaction HEX-FROM-ABOVE
optional: copy the raw transaction into an block explorer like blockstream.info instead

Done!
Feedback is welcome!