1.8 KiB
FROST P2TR wallet usage
NOTE: minimal python version is python3.12
To use FROST P2TR wallet you need (example for 2 of 3 FROST signing):
-
Add
txindex=1tobitcoin.conf. This options is need to get non-wallet transactions withgetrawtransaction. This data is need to perform signing of P2TR inputs. -
Set
frost = truein thePOLICYsection ofjoinmarket.cfg:
[POLICY]
...
# Use FROST P2TR SegWit wallet
frost = true
- Create bitcoind watchonly descriptors wallet:
bitcoin-cli createwallet "wallet_name" true true
where true true is:
disable_private_keysDisable the possibility of private keys (only watchonlys are possible in this mode).
blankCreate a blank wallet. A blank wallet has no keys or HD seed.
- Get
hostpubkeyfor wallet by running:
scripts/wallet-tool.py wallet.jmdat hostpubkey
...
021e99d8193b95da10f514556e98882bc2cebfd0ee0711fa71006cbc9e9a135b43
-
Repeat steps 1-4 for other FROST group wallets.
-
Gather hostpubkeys from step 4 and place to the
FROSTsection ofjoinmarket.cfgas thehostpubkeysvalue separated by,. -
Add
t(threshold) value to theFROSTsection ofjoinmarket.cfg:
[FROST]
hostpubkeys = 021e99d8193b95da...,03a2f4ce928da0f5...,02a1e2ee50187f3e...
t = 2
- Run permanent FROST processes with
servefrostcommand onwallet1,wallet2,wallet3:
scripts/wallet-tool.py wallet.jmdat servefrost
- Run
displaycommand onwallet1
scripts/wallet-tool.py wallet.jmdat display
The process of DKG sessions will start to generate pubkeys for the wallet addresses. This can take several minutes.
-
Repeat step 9 to generate pubkeys for
wallet2,wallet3. -
Test FROST signing with
testfrostcommand
scripts/wallet-tool.py wallet.jmdat testfrost