Sebelumnya pernah ada pembahasan jika ingin mengetahui (
dumpprivkey) atau meng-import private key (
importprivkey) di Bitcoin Core hanya bisa dilakukan di Legacy Wallet, sementara pada Descriptor Wallet, kita tidak diijinkan untuk menggunakan argumen tersebut.
Bitcoin core memiliki sebuah fungsi
migratewallet yang memungkinkan untuk memindahkan Legacy Wallet menjadi Descriptor Wallet, dimana dalam proses ini semua address yang berada di Legacy Wallet juga akan ikut bermigrasi ke Descriptor Wallet. Namun jika yang diinginkan hanyalah memindahkan 1 atau beberapa address saja dari Legacy Wallet ke Descriptor Wallet, maka ini bisa dilakukan dengan menggunakan argumen
importdescriptors dan menjadikan WIF Private Key sebagai salah satu elemen Descriptor.
- Menentukan Output descriptors
- Jika tipe address P2PKH maka Output descriptors yang digunakan adalah pkh
- Jika tipe address P2WPKH maka Output descriptors yang digunakan adalah wpkh
- Jika tipe address P2SH maka Output descriptors yang digunakan adalah sh
- Untuk detail Output descriptors lainnya bisa dilihat disini https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md
- Mencari "checksum" descriptor menggunakan argumen getdescriptorinfo
Contoh :
* 14egK3Y1MZqFQtvmGE1QA71tdxGFqe8zXq yang merupakan address yang dibuat di Legacy Wallet dengan tipe P2PKH
* Untuk mendapatkan Private Key, gunakan argumen
dumpprivkey "address" yang dilakukan di Console Legacy Wallet.
dumpprivkey 14egK3Y1MZqFQtvmGE1QA71tdxGFqe8zXq
* Private Key dari address tersebut adalah L4ACqeyyGN1QdGdxCm7CYYDPhhcswqMdvfQ74raHU4hHBaKzCfyZ
* Selanjutnya buka Console di wallet apa saja (bisa descriptor wallet atau legacy wallet) untuk mendapatkan checksum descriptor
* Gunakan argumen
getdescriptorinfo "descriptor", dan catat checksum dari informasi yang dihasilkan
getdescriptorinfo "pkh(L4ACqeyyGN1QdGdxCm7CYYDPhhcswqMdvfQ74raHU4hHBaKzCfyZ)"
didapatkan hasil sbb:
"descriptor": "pkh(0347b92d940b647d01ede6e30c9e5e9f33940a9c6fea585c67f706190e6c0411fc)#w4mju2p4",
"checksum": "g6wq9prj",
"isrange": false,
"issolvable": true,
"hasprivatekeys": true
* Setelah checksum diketahui, selanjutnya buka Console di Descriptor Wallet
* Tuliskan semua data informasi yang dibutuhkan untuk melakukan proses
importdescriptorsimportdescriptors '[{"desc":"pkh(L4ACqeyyGN1QdGdxCm7CYYDPhhcswqMdvfQ74raHU4hHBaKzCfyZ)#g6wq9prj","timestamp":"now","label":"test"}]'
* Jika statusnya "success": true , berarti Private Key sudah berhasil diimport ke Descriptor Wallet (untuk memastikan cek Receiving addresses)
Note"timestamp":"now" dipilih agar pada saat import descriptor tidak melakukan proses rescanning. Jika "timestamp" diisi dengan nilai yang spesifik, maka akan dilakukan proses rescanning dimulai dari waktu timestamp yang dipilih.
"label":"test" bisa diganti dengan keinginan masing-masing
Bisa juga menambahkan "requests" lainnya ("range", "next_index", etc) untuk detail lihat disini
https://bitcoincore.org/en/doc/26.0.0/rpc/wallet/importdescriptors/