Unable – Earlybirds Invest https://earlybirdsinvest.com Latest Crypto News Sun, 17 Aug 2025 16:47:05 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.7 https://i0.wp.com/earlybirdsinvest.com/wp-content/uploads/2024/12/cropped-New-Project-2024-12-17T235703.455.png?fit=32%2C32&ssl=1 Unable – Earlybirds Invest https://earlybirdsinvest.com 32 32 240146708 Unable to confirm signature of downloaded file https://earlybirdsinvest.com/unable-to-confirm-signature-of-downloaded-file/ https://earlybirdsinvest.com/unable-to-confirm-signature-of-downloaded-file/#respond Sun, 17 Aug 2025 16:47:05 +0000 https://earlybirdsinvest.com/unable-to-confirm-signature-of-downloaded-file/

Now we’ll try to set up the node using bitcoin. I followed the instructions to download the file. I would like to check the release signature before installing. First done:

someone@somewhere:~/Downloads$ gpg --recv-keys 01EA5486DE18A882D4C2684590C8019E36C2E964
gpg: key 90C8019E36C2E964: public key "Wladimir J. van der Laan (Bitcoin Core binary release signing key) <(email protected)>" imported
gpg: Total number processed: 1
gpg:               imported: 1

That seemed okay. I’d like to confirm that it was signed after this SHA256SUMS.asc This is the file I downloaded before, but I’ll get it.

someone@somewhere:~/Downloads$ gpg --verify SHA256SUMS.asc 
gpg: no signed data
gpg: can't hash datafile: No data

What am I doing wrong?

]]>
https://earlybirdsinvest.com/unable-to-confirm-signature-of-downloaded-file/feed/ 0 53679
Unable to get TapRoot address using Bitcoinlib https://earlybirdsinvest.com/unable-to-get-taproot-address-using-bitcoinlib/ https://earlybirdsinvest.com/unable-to-get-taproot-address-using-bitcoinlib/#respond Sat, 19 Jul 2025 00:18:49 +0000 https://earlybirdsinvest.com/unable-to-get-taproot-address-using-bitcoinlib/

I’ve tried several methods to get the Taproot address from the private key using Bitcoinlib, but I’ve continued to get a different address than what you get with a Taproot wallet, such as Unisat or OKX wallet.

Then, after many attempts, I found the command Address.parse And I tried to use it to get all the parameters of the address to replicate it.

Surprisingly, even if you create a class with exactly the same parameters and of course the same private key, the derived addresses will be different.

from bitcoinlib.keys import Key, Address

# keys are for testing purposes
private_key_hex = '25eee8288d42567475d1453843ce57b16b6ba5b6c0661cb2a439fff44c4d455d'
private_key_wif="KxVSwjuqNb6qe3KTLsHG5nYA3WFEqrjyKnGbwgHAreiWsqrwffuh"

k = Key(private_key_wif)
#k.info()
public_key_hex = '02fdf741bc2b1efe52873d748ca438798ad0133b25c388bc50423aed26df8ffbd7'
public_key_hex_uncompressed = '04fdf741bc2b1efe52873d748ca438798ad0133b25c388bc50423aed26df8ffbd7db6b1b700bd2475709f586d7a0105d29b0e4a3017b259e01bc32b220342ab33a'

addr = Address.parse('bc1pfkde37d8chuqa6tgwvp7rwmtl7vvd20ql6g5433xxpdah30t7nushrsrlu')
print(addr.as_dict())

testAddr = Address(
    data = public_key_hex,
    hashed_data = None,
    prefix = 'bc',
    script_type="p2tr",
    compressed = None,
    encoding = 'bech32',
    witness_type="taproot",
    witver = 1,
    depth = None,
    change = None,
    address_index = None,
    network = 'bitcoin',
    network_overrides = None
)
print(testAddr)

I’m not sure if the problem is that it doesn’t have a Bith32M encoding.

If anyone knows how to solve this problem or a workaround, they’ll be really appreciated!

]]>
https://earlybirdsinvest.com/unable-to-get-taproot-address-using-bitcoinlib/feed/ 0 48421
Unable to generate address after importing Taproot Multisig descriptor https://earlybirdsinvest.com/unable-to-generate-address-after-importing-taproot-multisig-descriptor/ https://earlybirdsinvest.com/unable-to-generate-address-after-importing-taproot-multisig-descriptor/#respond Mon, 10 Feb 2025 22:58:00 +0000 https://earlybirdsinvest.com/unable-to-generate-address-after-importing-taproot-multisig-descriptor/

There are three wallets to use to create a Taproot Multisig wallet. All of my work is based on this https://github.com/bitcoin/bitcoin/blob/master/doc/multisig-tutorial.md. The external and internal Xpubs for each are as follows:

Wallet 1 (External + Internal Xpubs)

(11776e3b/86h/1h/0h)tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/0/*
(11776e3b/86h/1h/0h)tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/1/*

Wallet 2 (External + Internal Xpubs)

(fe5187e5/86h/1h/0h)tpubDCqr5GVKeptzMG5QKLu1aQKXFXgF6kMy9dYDQ6Nap6emZ3iziMCeVX1pPjEzA7nTmyZS9NP2KjUsGtEs8jNqFcUTpKxAwXPB3yfbee4RthM/0/*
(fe5187e5/86h/1h/0h)tpubDCqr5GVKeptzMG5QKLu1aQKXFXgF6kMy9dYDQ6Nap6emZ3iziMCeVX1pPjEzA7nTmyZS9NP2KjUsGtEs8jNqFcUTpKxAwXPB3yfbee4RthM/1/*

Wallet 3 (External + Internal Xpubs)

(9f5cbc68/86h/1h/0h)tpubDDQbi15GQjXYxhAysxdEC6VsSFacJ6hgDAJ7oQy4wUs9sfwMQWtcLqLx7GUbBfWyVwUYMEEJtWmxFXmpmjQL8X4cRdgAJ7BcaazuCYq4iCp/0/*
(9f5cbc68/86h/1h/0h)tpubDDQbi15GQjXYxhAysxdEC6VsSFacJ6hgDAJ7oQy4wUs9sfwMQWtcLqLx7GUbBfWyVwUYMEEJtWmxFXmpmjQL8X4cRdgAJ7BcaazuCYq4iCp/1/*

Here is my descriptor:

external_desc="tr(tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/1/*,sortedmulti_a(2,tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/0/*,tpubDCqr5GVKeptzMG5QKLu1aQKXFXgF6kMy9dYDQ6Nap6emZ3iziMCeVX1pPjEzA7nTmyZS9NP2KjUsGtEs8jNqFcUTpKxAwXPB3yfbee4RthM/0/*,tpubDDQbi15GQjXYxhAysxdEC6VsSFacJ6hgDAJ7oQy4wUs9sfwMQWtcLqLx7GUbBfWyVwUYMEEJtWmxFXmpmjQL8X4cRdgAJ7BcaazuCYq4iCp/0/*))#546p4cqh"

For the first discussion of tr Uses and uses the internal Xpub of wallet 1 sortedmulti_a To configure 2-3 using an external one. I’ll call getdescriptorinfo Instructions:

 ./build/src/bitcoin-cli -signet getdescriptorinfo $external_desc
{
  "descriptor": "tr(tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/1/*,sortedmulti_a(2,tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/0/*,tpubDCqr5GVKeptzMG5QKLu1aQKXFXgF6kMy9dYDQ6Nap6emZ3iziMCeVX1pPjEzA7nTmyZS9NP2KjUsGtEs8jNqFcUTpKxAwXPB3yfbee4RthM/0/*,tpubDDQbi15GQjXYxhAysxdEC6VsSFacJ6hgDAJ7oQy4wUs9sfwMQWtcLqLx7GUbBfWyVwUYMEEJtWmxFXmpmjQL8X4cRdgAJ7BcaazuCYq4iCp/0/*))#546p4cqh",
  "checksum": "546p4cqh",
  "isrange": true,
  "issolvable": true,
  "hasprivatekeys": false
}

It then uses that descriptor to construct the descriptor that is used to import JSON into your wallet. This is what I used to create the JSON:

external_desc_sum=$(./build/src/bitcoin-cli -signet getdescriptorinfo $external_desc | jq '.descriptor')
multisig_ext_desc="({\"desc\": $external_desc_sum, \"timestamp\": \"now\"})"

After that I call it importdescriptors New blank wallet way:

./build/src/bitcoin-cli -signet -named createwallet wallet_name="multi_tr" disable_private_keys=true blank=true
./build/src/bitcoin-cli -signet -rpcwallet="multi_tr" importdescriptors "$multisig_ext_desc"
./build/src/bitcoin-cli -signet -rpcwallet="multi_tr" getwalletinfo

The following is the response for the import descriptor:

{
  "name": "multi_tr"
}
(
  {
    "success": true,
    "warnings": (
      "Range not given, using default keypool range"
    )
  }
)

The output from Get Wallet Info is as follows:

{
  "walletname": "multi_tr",
  "walletversion": 169900,
  "format": "sqlite",
  "balance": 0.00000000,
  "unconfirmed_balance": 0.00000000,
  "immature_balance": 0.00000000,
  "txcount": 0,
  "keypoolsize": 0,
  "keypoolsize_hd_internal": 0,
  "paytxfee": 0.00000000,
  "private_keys_enabled": false,
  "avoid_reuse": false,
  "scanning": false,
  "descriptors": true,
  "external_signer": false,
  "blank": true,
  "birthtime": 1739107662,
  "lastprocessedblock": {
    "hash": "0000005ba71046c3e13011955cf5a65c09fc7e945030a3d623dbfef8e7b3dce6",
    "height": 234655
  }
}

After seeing this output I was excited and wanted to generate a new address to fund a multi-sig wallet, but I got an error.

./build/src/bitcoin-cli  -signet -rpcwallet="multi_tr" getnewaddress
error code: -4
error message:
Error: This wallet has no available keys

After searching for a replacement I found it deriveaddresses The method worked in my use case and was able to get some addresses.

./build/src/bitcoin-cli  -signet deriveaddresses "tr(tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/1/*,sortedmulti_a(2,tpubDCTp9moNmiVHK9KS6j6HEyU9duvomZrE87wTNQMkcZktDu89f3yJFATEQovpsT8KwUDWhut5YYd3zNsUYuv6sGHLozsub1AHPoyL7uGW2LT/0/*,tpubDCqr5GVKeptzMG5QKLu1aQKXFXgF6kMy9dYDQ6Nap6emZ3iziMCeVX1pPjEzA7nTmyZS9NP2KjUsGtEs8jNqFcUTpKxAwXPB3yfbee4RthM/0/*,tpubDDQbi15GQjXYxhAysxdEC6VsSFacJ6hgDAJ7oQy4wUs9sfwMQWtcLqLx7GUbBfWyVwUYMEEJtWmxFXmpmjQL8X4cRdgAJ7BcaazuCYq4iCp/0/*))#546p4cqh" "(0,2)"
(
  "tb1pg0p5p2vfqn3stjrrz0ga33m4wudcxmsl4qsuv4csnq5lxfnws3zss5xcvh",
  "tb1p4z6n9hlt2rs9arlaxwkcgpp79803rmle6wty946zwce74u4wnmas4r8etx",
  "tb1pk3nj9xt2aempeys63etmw3zfkj8pya0sr2lcl2spf6xqtjev8zfqkfzg5p"
)

My question is:

  • Why the first way generatenewaddress Is it not working?
  • is deriveaddresses What is the recommended method for general use? If so, I think you need to save the range of use to generate a new address each time (as using the same range will generate the same address). So if you use the range (0,0), you must use the next time (1,1).

thank you

]]>
https://earlybirdsinvest.com/unable-to-generate-address-after-importing-taproot-multisig-descriptor/feed/ 0 18699