witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
January 31, 2023, 05:51:51 AM Last edit: October 02, 2025, 06:49:52 AM by witcher_sense Merited by ABCbits (20), Symmetrick (14), Welsh (12), NotATether (10), vapourminer (8), dkbit98 (5), Halab (4), NeuroticFish (3), mhanbostanci (3), DdmrDdmr (3), GazetaBitcoin (3), RickDeckard (2), n0nce (2), mocacinno (1), A-Bolt (1), Porfirii (1), PX-Z (1), Rizzrack (1), Financisto (1) |
|
IntroductionA lightweight fully open-source CLI tool for signing and verification of bitcoin messages. Bitcoin message is the most straightforward and natural way to prove ownership over a given address without revealing any confidential information. This tool closely follows specification described in BIP137: "...While there was no BIP written for how to digitally sign messages with Bitcoin private keys with P2PKH addresses it is a fairly well understood process, however with the introduction of Segwit (both in the form of P2SH and bech32) addresses, it is unclear how to distinguish a P2PKH, P2SH, or bech32 address from one another. This BIP proposes a standard signature format that will allow clients to distinguish between the different address formats."
Please note that: "since this format includes P2PKH keys, it is backwards compatible, but keep in mind some software has checks for ranges of headers and will report the newer segwit header types as errors."More info: https://github.com/bitcoin/bips/blob/master/bip-0137.mediawikiWallets that fully support BIP137 type of signatures: 1) Trezor 2) Sparrow Wallet 3) Coldcard? 4) ... This tool is basically an attempt to expand the use of this standard. Installation1)To install with pip, run: pip install bitcoin-message-tool You can create a virtual environment for this application and run it from there, for example using Poetry. Create a new folder (bmt is short for Bitcoin Message Tool or you can choose whatever you want): Create a new virtual environment: Download the application from PyPi via this command: poetry add bitcoin-message-tool To run it from the terminal use this command: python3 -m bitcoin_message_tool When you run the app without arguments, you will see a help message. 2) Alternatively, you can download the source code directly from GitHub via this command: git clone https://github.com/shadowy-pycoder/bitcoin_message_tool.git
or you can fork the repo and than clone the forked version Install requirements via this command: pip install -r /path/to/requirements.txt To run an application from the forked or cloned repo, you can simply use the following: python3 /path/to/bmt.py -h How to use Bitcoin Message ToolThe following doctest should give a clear picture about how to sign a nd verify messages with this CLI tool: Basic usage: python -m bitcoin_message_tool -h
or
python bmt.py -h usage: python3 bmt.py [-h] {sign,verify} ...
Bitcoin message signing/verification tool
positional arguments: {sign,verify}
options: -h, --help show this help message and exit
Message signing: python bmt.py sign -h usage: python3 bmt.py sign [-h] -p -a {p2pkh,p2wpkh-p2sh,p2wpkh} -m [MESSAGE ...] [-d] [-v]
options: -h, --help show this help message and exit
Sign messsage: -p, --privkey private key in wallet import format (WIF) -a {p2pkh,p2wpkh-p2sh,p2wpkh}, --addr_type {p2pkh,p2wpkh-p2sh,p2wpkh} type of bitcoin address -m [MESSAGE ...], --message [MESSAGE ...] Message to sign -d, --deterministic sign deterministtically (RFC6979) -v, --verbose print prettified message Example: Non-deterministic signature for compressed private key and p2pkh address $python bmt.py sign -p -a p2pkh -m ECDSA is the most fun I have ever experienced
PrivateKey(WIF): <insert private key here> Please note that private key won't show up on the terminal.
Output: Bitcoin address: 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL Message: ECDSA is the most fun I have ever experienced Signature: IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A= The same output with -v/--verbose flag: -----BEGIN BITCOIN SIGNED MESSAGE----- ECDSA is the most fun I have ever experienced -----BEGIN BITCOIN SIGNATURE----- 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A= -----END BITCOIN SIGNATURE-----
Message verification: python bmt.py verify -h usage: python3 bmt.py verify [-h] -a ADDRESS -m [MESSAGE ...] -s SIGNATURE [-v] [-r]
options: -h, --help show this help message and exit
Verify messsage: -a ADDRESS, --address ADDRESS specify bitcoin address -m [MESSAGE ...], --message [MESSAGE ...] Message to verify -s SIGNATURE, --signature SIGNATURE bitcoin signature in base64 format -v, --verbose print full message -r, --recpub recover public key Example: Message verification in verbose mode python bmt.py verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \ > -m ECDSA is the most fun I have ever experienced \ > -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \ > -v
Output: True Message verified to be from 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
More examples and source code can be found here: https://github.com/shadowy-pycoder/bitcoin_message_toolTests with Sparrow WalletLet's verify a SegWit signature created with real wallet:  Result:  Let's verify a SegWit signature created by this tool:  Result: Translations:- Română: Bitcoin Message Tool – semnare și verificare în mod comandă, translation by GazetaBitcoin
- Pidgin: Bitcoin Message Tool - command-line signer & verifier, translation by Mia Chloe
- Укpaїнcькa: Bitcoin Message Tool - CLI для пiдпиcy тa вepифiкaцiї, translation by DrBeer
- Pyccкий: Bitcoin Message Tool — CLI для пoдпиcи и вepификaции, translation by DrBeer
- French: Bitcoin Message Tool - signer et vérifier des messages en ligne de commande, translation by paid2
- Urdu: بٹ کوائن میسج ٹول - کمانڈ لائن دستخط کنندہ او, translation by Adiljutt156
- Español: Bitcoin Message Tool - líneas de comando para firma y verificación , translation by Porfirii
- Indonesian: Bitcoin Message Tool - command-line signer & verifier, translation by Husna QA
- Arabic: أداة رسالة البيتكوين - أداة التوقيع والتحق, translation by Nalain420
- Turkish: Bitcoin Mesaj Aracı - Komut Satırı İmzalayıcı ve Doğrulayıcı, translation by mela65
- Bangla: বিটকয়েন মেসেজ টুল - কমান্ড লাইন সাইনার ও ভের&, translation by DYING_S0UL
|
|
|
|
NotATether
Legendary
Offline
Activity: 2170
Merit: 9108
Trêvoid █ No KYC-AML Crypto Swaps
|
 |
January 31, 2023, 10:28:13 AM |
|
Really awesome stuff you made there. In the case of Segwit addresses and BIP137, you can use this draft BIP I made a while ago ( https://notatether.com/notabips/bip-notatether-messageverify/) that assigns some integer values for P2WPKH messages (39-42 for P2WPKH and even 43-46 for P2TR). It's unfortunate that it was never considered for numbering though (Luke didn't see the need for it).
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
January 31, 2023, 01:31:15 PM Merited by Welsh (2), ABCbits (1) |
|
Really awesome stuff you made there. In the case of Segwit addresses and BIP137, you can use this draft BIP I made a while ago ( https://notatether.com/notabips/bip-notatether-messageverify/) that assigns some integer values for P2WPKH messages (39-42 for P2WPKH and even 43-46 for P2TR). It's unfortunate that it was never considered for numbering though (Luke didn't see the need for it). This tool actually recognizes Taproot headers and doesn't necessarily consider them "invalid". Here is the code snippet: def verify_message(address: str, message: str, signature: str, /) -> tuple[bool, str, str]: ... if header < 27 or header > 46: raise SignatureError('Header byte out of range:', header) ... uncompressed = False addr_type = 'p2pkh' if header >= 43: header -= 16 addr_type = '' ... if addr_type: addr, _ = derive_address(pubkey, addr_type) else: raise SignatureError('Unknown address type') ...
When headers are within 42-46 range, addr_type variable is assigned to an empty string instead of 'p2tr' because derive_address function has no idea how to handle this type of addresses. Honestly, I don't know much about Taproot addresses, but I think that implementing it requires additional non-ECDSA functions for signature signing and verification.
|
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
February 02, 2023, 02:23:27 PM |
|
Added experimental support for Electrum signatures. In order to sign and verify messages recognizable by Electrum wallet, specify a new flag: Some examples: Message signing: First, we create the signature in Bitcoin Message Tool:  Second, check if Electrum understands what we feed it:  Message verification: First we sign our message in Electrum wallet:  Check if we can verify it:  In all examples, I specified -e flag, otherwise, neither I nor Electrum would understand each other. Please note, however, Electrum will verify BIP137 signatures (without the -e flag), but it can't create them (we can't verify them without the -e flag specified). This is for Segwit only: legacy addresses should work with or without the -e flag. More information can be found here: https://github.com/spesmilo/electrum/pull/7668
|
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
August 14, 2023, 11:48:08 AM |
|
Really awesome stuff you made there. In the case of Segwit addresses and BIP137, you can use this draft BIP I made a while ago ( https://notatether.com/notabips/bip-notatether-messageverify/) that assigns some integer values for P2WPKH messages (39-42 for P2WPKH and even 43-46 for P2TR). It's unfortunate that it was never considered for numbering though (Luke didn't see the need for it). Since people on GitHub started requesting to add Taproot support in the bitcoin message tool, I am considering implementing the algorithm described in your proposal. But I ran into two problems: the first one is that the link you provided doesn't work anymore, and the second one, which is more serious, is that I completely unfamiliar with the Taproot algorithm, especially with the parts that describe how it deals with address creation, signature verification, and signature signing. Could you explain in very layman's terms how your algorithm is different from standard Legacy/Segwit ones?
|
|
|
|
NotATether
Legendary
Offline
Activity: 2170
Merit: 9108
Trêvoid █ No KYC-AML Crypto Swaps
|
 |
August 15, 2023, 08:32:19 AM Last edit: August 15, 2023, 08:49:37 AM by NotATether |
|
Really awesome stuff you made there. In the case of Segwit addresses and BIP137, you can use this draft BIP I made a while ago ( https://notatether.com/notabips/bip-notatether-messageverify/) that assigns some integer values for P2WPKH messages (39-42 for P2WPKH and even 43-46 for P2TR). It's unfortunate that it was never considered for numbering though (Luke didn't see the need for it). Since people on GitHub started requesting to add Taproot support in the bitcoin message tool, I am considering implementing the algorithm described in your proposal. But I ran into two problems: the first one is that the link you provided doesn't work anymore, and the second one, which is more serious, is that I completely unfamiliar with the Taproot algorithm, especially with the parts that describe how it deals with address creation, signature verification, and signature signing. Could you explain in very layman's terms how your algorithm is different from standard Legacy/Segwit ones? Ah shit, looks like my website is down again since yesterday, so I'm going to have to diagnose that pronto. Edit: A plugin crashed, got rid of it and it works now. As for your second question: Message signing is only "officially" defined for Legacy address types, as it was added by Satoshi himself and there is not even a BIP for it. It basically works by doing a standard ECDSA with the private key and the message setting a value based on whether the address is compressed legacy or uncompressed legacy - this value is stored as bytes before the R and S values. In the case of Taproot, it is using Schnorr algorithm, not ECDSA. So all that is necessary to do is make a change of algorithm, and define new values for indicating Taproot (and segwit) addresses, and that's pretty much what this BIP does.
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
August 15, 2023, 03:18:21 PM |
|
In the case of Taproot, it is using Schnorr algorithm, not ECDSA. So all that is necessary to do is make a change of algorithm, and define new values for indicating Taproot (and segwit) addresses, and that's pretty much what this BIP does.
I am reading your proposal and also https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki but still fail to understand what such notations like BIP0340/challenge, BIP0340/aux, BIP0340/nonce actually mean. How are they calculated or where should I take them from? Also, what is tagged hash in layman terms? Just for reference, here is a python implementation of bech32m addresses: https://github.com/sipa/bech32/blob/master/ref/python/segwit_addr.pySomeone published it on PyPi: https://pypi.org/project/bech32m/
|
|
|
|
|
Financisto
|
 |
March 26, 2024, 04:30:44 AM Last edit: March 28, 2024, 04:40:51 PM by Financisto Merited by vapourminer (1) |
|
Is it possible (in the near future) to provide a single AppImage file (or single binary file, or single executable file, etc) as a Github-release? P.S. Your project reminded me of this HTML/Javascript Brainwallet (WarpWallet's fork) turned into a single CLI executable file: https://github.com/moncho/warpwalletProviding that option would be great for UX! Last but not least: your CLI BTC msg tool is awesome! Congratulations and keep it evolving! Cheers!
|
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
July 14, 2024, 03:35:29 PM Last edit: July 14, 2024, 03:46:55 PM by witcher_sense Merited by vapourminer (1), Financisto (1) |
|
Is it possible (in the near future) to provide a single AppImage file (or single binary file, or single executable file, etc) as a Github-release? P.S. Your project reminded me of this HTML/Javascript Brainwallet (WarpWallet's fork) turned into a single CLI executable file: https://github.com/moncho/warpwalletProviding that option would be great for UX! Last but not least: your CLI BTC msg tool is awesome! Congratulations and keep it evolving! Cheers! Hello, sorry for the late reply and thank you for kind words and valuable feedback! I have good news for you because i managed to reimplement my CLI application in Golang, here is the link to GitHub page: https://github.com/shadowy-pycoder/go-bitcoin-message-toolIt almost the same as Python implementation except that it works much faster, contains less bugs (I finally added some tests to check if it works correctly) and offers some additional features. It also allows you to generate single Bitcoin wallets (by wallet I mean a standard private and public key pair, legacy, nested segwit and native segwit addresses. It takes around 6 secs for my 4 CPU notebook to generate 10000 wallets, which I think is a decent perfomance, especially considering the fact that I use standard library for big numbers arithmetics. Installation process as simple as running a single command (assuming you have Golang installed on your computer, instructions can be found here https://go.dev/doc/install) To install the command line tool you have to run this: go install github.com/shadowy-pycoder/go-bitcoin-message-tool/cmd/bmt@latest
This will compile an executable program for your operating system and allow you to sign, verify messages and create wallets just by running a single command like bmt or bmt.exeAlternatively, you can clone GitHub repo and build directly from there, like this: git clone https://github.com/shadowy-pycoder/go-bitcoin-message-tool.git or go build -o ./bin/ ./cmd/bmt/
Run the application by running this command: Full instructions on how to use the app you can find here: https://github.com/shadowy-pycoder/go-bitcoin-message-tool/blob/master/README.mdP.S. Forgot to mention that you should not use this tool for any serious stuff, it is created just for fun and cryptography education. So do not put your coins on any generated wallets.
|
|
|
|
NotATether
Legendary
Offline
Activity: 2170
Merit: 9108
Trêvoid █ No KYC-AML Crypto Swaps
|
 |
July 14, 2024, 03:44:16 PM |
|
Installation process as simple as running a single command (assuming you have Golang installed on your computer, instructions can be found here https://go.dev/doc/install) To install the command line tool you have to run this: go install github.com/shadowy-pycoder/go-bitcoin-message-tool/cmd/bmt@latest
This will compile an executable program for your operating system and allow you to sign, verify messages and create wallets just by running a single command like bmt or bmt.exe~ Full instructions on how to use the app you can find here: https://github.com/shadowy-pycoder/go-bitcoin-message-tool/blob/master/README.mdIf you want, I can create an AppImage of that for you.
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
July 16, 2024, 06:37:42 AM |
|
If you want, I can create an AppImage of that for you.
Why not? The only thing that I need to mention is that the master branch won't compile for Windows systems (unfortunately). I think I fixed it in development one but havent tested it yet.
|
|
|
|
Porfirii
Legendary
Offline
Activity: 2352
Merit: 3244
The Alliance Of Bitcointalk Translators - ENG>SPA
|
 |
September 07, 2024, 10:51:52 AM |
|
Congratulations for this topic witcher_sense. It has raised our awareness and, with your permission, the members of the AoBT would like to translate and post it in different local boards for greater reach and visibility for non-English speakers. Please, let us know if you want us to meet any special requirements before posting the mentioned translations.
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
GazetaBitcoin
Legendary
Offline
Activity: 2268
Merit: 9013
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
|
 |
September 07, 2024, 10:53:57 AM |
|
Hello witcher_sense, I hope this is good news  This topic also drew the attention of AOBTers and we will start to translate it in multiple languages. Similar to the other topic, you can see the progress and new translations here. The Romanian translation is already done. Cheers! [Later edit: ooops, Porf was faster than me with 2'07"]
|
| bustabit | ██████▄█▀ ███▄███▀ ██▀██▄▄▄ ▄███▀▀▀ ▀█▄█▄▄▄ █▀██▀▀ █▄▐▌▄█ ▀████▀ ██▀▀███▄ ██▄▄█████▄ █▀██████▄██ ██████████▀ ████▀███▀▀▄ | THE ORIGINAL CRASH GAME .....S I N C E 2 0 1 4..... | ▀█▄██████ ▀███▄███ ▄▄▄██▀██ ▀▀▀███▄ ▄▄▄█▄█▀ ▀▀██▀█ █▄▐▌▄█ ▀████▀ ▄██▄█▀██ ▄███▄██▄██ ██▄██████▀█ ▀██████████ ▄▀▀███▀████ | █ █ █ █ █ █ █ █ ▀ | HOUSE EDGE 1% | █ █ █ █ █ █ █ █ ▀ | WAGERED BTC200M+ | █ █ █ █ █ █ █ █ ▀ | MAX PROFIT BTC5+ | █ █ █ █ █ █ █ █ ▀ | PLAY NOW |
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
September 11, 2024, 08:14:14 AM |
|
Hello witcher_sense, I hope this is good news  This topic also drew the attention of AOBTers and we will start to translate it in multiple languages. Similar to the other topic, you can see the progress and new translations here. The Romanian translation is already done. Cheers! [Later edit: ooops, Porf was faster than me with 2'07"] Thank you, guys, added all translation to the OP. 
|
|
|
|
GazetaBitcoin
Legendary
Offline
Activity: 2268
Merit: 9013
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
|
 |
October 01, 2024, 08:35:33 AM |
|
Thank you, guys, added all translation to the OP.  Thank you for adding the translations to OP  At same time, there is one more translation available for your topic. It is made by Nalain420, for Arabic language. The translation can be found here: أداة رسالة البيتكوين - أداة التوقيع والتحق.
|
| bustabit | ██████▄█▀ ███▄███▀ ██▀██▄▄▄ ▄███▀▀▀ ▀█▄█▄▄▄ █▀██▀▀ █▄▐▌▄█ ▀████▀ ██▀▀███▄ ██▄▄█████▄ █▀██████▄██ ██████████▀ ████▀███▀▀▄ | THE ORIGINAL CRASH GAME .....S I N C E 2 0 1 4..... | ▀█▄██████ ▀███▄███ ▄▄▄██▀██ ▀▀▀███▄ ▄▄▄█▄█▀ ▀▀██▀█ █▄▐▌▄█ ▀████▀ ▄██▄█▀██ ▄███▄██▄██ ██▄██████▀█ ▀██████████ ▄▀▀███▀████ | █ █ █ █ █ █ █ █ ▀ | HOUSE EDGE 1% | █ █ █ █ █ █ █ █ ▀ | WAGERED BTC200M+ | █ █ █ █ █ █ █ █ ▀ | MAX PROFIT BTC5+ | █ █ █ █ █ █ █ █ ▀ | PLAY NOW |
|
|
|
|
DYING_S0UL
|
 |
October 09, 2024, 05:00:50 AM |
|
Introduction [...snip...] The following doctest should give a clear picture about how to sign a nd verify messages with this CLI tool:
Isn't this a type or an extra space (and)? Noticed it when I was translating this topic! -DS
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
GazetaBitcoin
Legendary
Offline
Activity: 2268
Merit: 9013
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
|
 |
October 12, 2024, 05:31:10 PM Last edit: October 12, 2024, 06:42:42 PM by GazetaBitcoin |
|
Dear witcher_sense, another AOBTer finished a tenth translation for your topic: Bitcoin Mesaj Aracı - Komut Satırı İmzalayıcı ve Doğrulayıcı. It is in Turkish language and it was done by mela65. Can you add it to OP too, please? Later edit: and one more translation has been done meanwhile -- বিটকয়েন মেসেজ টুল - কমান্ড লাইন সাইনার ও ভেরিফায়ার. This one is done by DYING_S0UL, in Bangla language.
|
| bustabit | ██████▄█▀ ███▄███▀ ██▀██▄▄▄ ▄███▀▀▀ ▀█▄█▄▄▄ █▀██▀▀ █▄▐▌▄█ ▀████▀ ██▀▀███▄ ██▄▄█████▄ █▀██████▄██ ██████████▀ ████▀███▀▀▄ | THE ORIGINAL CRASH GAME .....S I N C E 2 0 1 4..... | ▀█▄██████ ▀███▄███ ▄▄▄██▀██ ▀▀▀███▄ ▄▄▄█▄█▀ ▀▀██▀█ █▄▐▌▄█ ▀████▀ ▄██▄█▀██ ▄███▄██▄██ ██▄██████▀█ ▀██████████ ▄▀▀███▀████ | █ █ █ █ █ █ █ █ ▀ | HOUSE EDGE 1% | █ █ █ █ █ █ █ █ ▀ | WAGERED BTC200M+ | █ █ █ █ █ █ █ █ ▀ | MAX PROFIT BTC5+ | █ █ █ █ █ █ █ █ ▀ | PLAY NOW |
|
|
|
GazetaBitcoin
Legendary
Offline
Activity: 2268
Merit: 9013
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
|
 |
December 09, 2024, 08:27:53 AM |
|
Hey witcher_sense, I am coming back to your thread with some more good news  An AOBTer just made one more translation for your topic and this may be, perhaps, the most exotic one, as it was don in Hindi language!. Please find it here - Bitcoin Message Tool - कमांड-लाइन साइनर और वेरिफायर. And please add it to OP as well, if you find it suitable 
|
| bustabit | ██████▄█▀ ███▄███▀ ██▀██▄▄▄ ▄███▀▀▀ ▀█▄█▄▄▄ █▀██▀▀ █▄▐▌▄█ ▀████▀ ██▀▀███▄ ██▄▄█████▄ █▀██████▄██ ██████████▀ ████▀███▀▀▄ | THE ORIGINAL CRASH GAME .....S I N C E 2 0 1 4..... | ▀█▄██████ ▀███▄███ ▄▄▄██▀██ ▀▀▀███▄ ▄▄▄█▄█▀ ▀▀██▀█ █▄▐▌▄█ ▀████▀ ▄██▄█▀██ ▄███▄██▄██ ██▄██████▀█ ▀██████████ ▄▀▀███▀████ | █ █ █ █ █ █ █ █ ▀ | HOUSE EDGE 1% | █ █ █ █ █ █ █ █ ▀ | WAGERED BTC200M+ | █ █ █ █ █ █ █ █ ▀ | MAX PROFIT BTC5+ | █ █ █ █ █ █ █ █ ▀ | PLAY NOW |
|
|
|
witcher_sense (OP)
Legendary
Offline
Activity: 2506
Merit: 4434
🔐BitcoinMessage.Tools🔑
|
 |
October 02, 2025, 06:50:45 AM |
|
Hey witcher_sense, I am coming back to your thread with some more good news  An AOBTer just made one more translation for your topic and this may be, perhaps, the most exotic one, as it was don in Hindi language!. Please find it here - Bitcoin Message Tool - कमांड-लाइन साइनर और वेरिफायर. And please add it to OP as well, if you find it suitable  Thank you, GazetaBitcoin! Added translation to the OP.
|
|
|
|
Ferib
Copper Member
Newbie
Offline
Activity: 24
Merit: 10
|
 |
October 06, 2025, 11:51:55 AM |
|
Very nice, I see Trezor support but no Ledger? Also, would it be possible to support signing Nostr events too? imo would be pretty interesting to have as you apps only purpose is to signing messages. The Nostr address is very similar to bech32 and can be computed from the btc pubkey like so https://gist.github.com/ferib/71cfeb41ce6cc82ae28c520e8e27d18dIn theory I would like to sign the below message and then add "sig" field with the actual signature. { "id": "3360b34e4fcab4a9a268966df18c0357f4b4d33ff50b01edde6d9c8c7a773283", "kind": 1, "pubkey": "50dbc4dfd2313112fa6d1ac3effed7d1428b3c8dcc7357c0b84bac8f356a1894", "created_at": 1757633350, "tags": [], "content": "Hello world, I am bc1qyx3dh9qzummc3fjtcgm6ak9a4rlfcy5zm7t6mn!", }
(NOTE: the "id" is generated, you can see it here https://github.com/nbd-wtf/nostr-tools/blob/9c0ade1329ad61f41894a8668baafa0ff604bb3b/pure.ts#L48) Once the message is signed you can push it into a relay of choise, e.g. wss://nostr.wine/ EVENT_JSON='{"id":"3360b34e4fcab4a9a268966df18c0357f4b4d33ff50b01edde6d9c8c7a773283","kind":1,"pubkey":"50dbc4dfd2313112fa6d1ac3effed7d1428b3c8dcc7357c0b84bac8f356a1894","created_at":1757633350,"tags":[],"content":"Hello world, I am bc1qyx3dh9qzummc3fjtcgm6ak9a4rlfcy5zm7t6mn!","sig":"92ae8ae6dbadf543a4faa4e52152a04df96c9644d9a5c42682b123e0b9c99d4c2bca7792a41cf9a19862bec91a7ee10d6e6ffa81363f223ad8036dfaf9e46873"}' printf '["EVENT", %s]\n' "$EVENT_JSON" | websocat -t wss://nostr.wine/
|
|
|
|
|
|