How to use Bitcoin Core GUI to create Safe?
Prepare Bitcoin Core GUI wallet
Download and install the Bitcoin Core GUI from https://bitcoincore.org/en/download/ or update it to version 25.0 and up.
Or you can try to use Bitcoin Core CLI to create Mixin Safe?
Open Bitcoin Core user Interface
Create Mixin Safe
Login to Safe Dashboard, and click "New Safe" to create one.
Name the Safe and select Bitcoin Network
Select Bitcoin Core as the Owner's wallet
It requires generating two wallets on Bitcoin Core when you select Bitcoin Core as the Owner's Safe:
Key wallet that manages keys;
Script wallet for multi-signature transactions and managing UTXOs.
3.1 Create a key wallet
3.2 Open the built-in console
3.3 Generate key wallet address
Input getnewaddress safe legacy on the built-in console to generate the address
Parameter safe: address label
Parameter legacy: it must be in a legacy format; otherwise, the parameter signmessage will not be available.
3.4 Get the public key
Input getaddressinfo 1LAng6tNUobkNmD86KpuHg41j9o1R8ocwS on the built-in console to get the public key, and 1LAng6tNUobkNmD86KpuHg41j9o1R8ocwS is the address generated from the step 3.3.
3.5 Copy-paste the pubkey to the Safe Dashboard, and tap the Next button to save:
Set up members
Add a family member, friend, or coworker you trust as a member and set up a reasonable threshold.
Preview and create the Safe
Active the Safe
6.1 Decode Safe
Copy the script data on step 1 from the Safe Dashboard and decode the data with the command decodescript :
6.2 Create script wallet
Please note that it's necessary to tick the "Disable Private Keys", "Make Blank Wallet ", and "Descriptor Wallet" options.
6.3 Import descriptors to the script wallet
Please switch the console to Script wallet, and take the desc under segwit in the data decoded in step 6.1 and import it into the script wallet as a descriptor in the format '[{"desc": "xxx", "timestamp": "now", "internal":false}]':
importdescriptors '[{"desc":"wsh(thresh(2,pk(03b08eeab9826f10b68569ff9af26ea350675e9d5cf9274c1990cfe5d7cf2b186c),s:pk(0261300cb233f092c6c2f787139624b88ea4c774e779b3a257b36a2fcf186a09a7),sj:and_v(v:pk(026e37ea6e1e9a018753e3289387306d8d605351803497021c1a7cf7e6c0a8dab6),n:older(432))))#p6vc2x03","timestamp":"now","internal":false}]'
[
{
"success": true
}
]
6.4 Sign data
Switch the wallet to the Key wallet in built-in console, and sign the data copied from step 3 on the Safe Dashboard i the following format:
signmessage 1Gz4GoSjNV8MxLFt8bE8JTfqJp6b2bXhvZ APPROVE:c09c6f5f-4461-46a2-a172-4cd970aab955:bc1qpuecw70lwz5jxway09qtjymw7lm0t36jfdymkqddv6a2m8vgvnwqfnt0pq
IOs73u6gnEy9hIIH6zpEXLtaQncAUYkCk6hV8LQxwdxvQz3jOLbEDXJpo669P6sXQVHHpmnlbDbt22HHdgigeYs=
Please note that the parameter after signmessage is the key wallet address.
6.5 Active the safe
Copy the 6.4 Signed data to the step 5 input box and tap the Activate button:
Wait about 30 seconds for the Safe to be activated successfully; you can check if the Safe deposit address is the same as the script wallet address:
$ getaddressesbylabel ""
{
"bc1qpuecw70lwz5jxway09qtjymw7lm0t36jfdymkqddv6a2m8vgvnwqfnt0pq": {
"purpose": "receive"
}
}
Then you can deposit BTC to the Safe's address.
FAQ
importdescriptors is not available for non-descriptor wallets (code -4)
It's necessary to tick the "Descriptor wallet" when creating the script wallet.
Error: Cannot obtain a lock on data directory /User/xxx/Library/Application Support/Bitcoin.Bitcoin Core is probably already running.
Perhaps the Bitcoin client is running in the background. Try typing . /bitcoin-cli stop in the terminal before opening the Bitcoin Core GUI.
Updated on: 29/02/2024