{"id":18464957,"url":"https://github.com/shadowy-pycoder/go-bitcoin-message-tool","last_synced_at":"2026-02-19T14:31:22.085Z","repository":{"id":246892539,"uuid":"822967408","full_name":"shadowy-pycoder/go-bitcoin-message-tool","owner":"shadowy-pycoder","description":"Bitcoin message signing/verification tool written in Go","archived":false,"fork":false,"pushed_at":"2024-08-06T14:32:58.000Z","size":93,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-11T22:02:05.667Z","etag":null,"topics":["bitcoin","blockchain","cryptocurrency-tool","golang"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/shadowy-pycoder/go-bitcoin-message-tool/bmt","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shadowy-pycoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-02T07:15:32.000Z","updated_at":"2025-05-20T17:02:30.000Z","dependencies_parsed_at":"2024-08-06T16:54:29.309Z","dependency_job_id":null,"html_url":"https://github.com/shadowy-pycoder/go-bitcoin-message-tool","commit_stats":null,"previous_names":["shadowy-pycoder/go-bitcoin-message-tool"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/shadowy-pycoder/go-bitcoin-message-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowy-pycoder%2Fgo-bitcoin-message-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowy-pycoder%2Fgo-bitcoin-message-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowy-pycoder%2Fgo-bitcoin-message-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowy-pycoder%2Fgo-bitcoin-message-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadowy-pycoder","download_url":"https://codeload.github.com/shadowy-pycoder/go-bitcoin-message-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowy-pycoder%2Fgo-bitcoin-message-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29618236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","blockchain","cryptocurrency-tool","golang"],"created_at":"2024-11-06T09:11:37.668Z","updated_at":"2026-02-19T14:31:22.065Z","avatar_url":"https://github.com/shadowy-pycoder.png","language":"Go","readme":"# The [Bitcoin Message Tool](https://github.com/shadowy-pycoder/bitcoin_message_tool) in Go\n\nA lightweight 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.\n\nThis tool closely follows specification described in [BIP137](https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki)\n\n## Installation\n\n```shell\ngo install github.com/shadowy-pycoder/go-bitcoin-message-tool/cmd/bmt@latest\n```\nThis will install the `bmt` binary to your `$GOPATH/bin` directory.\n\n## Usage\n\n### General\n```shell\nbmt -h\n\n██████╗ ███╗   ███╗████████╗\n██╔══██╗████╗ ████║╚══██╔══╝\n██████╔╝██╔████╔██║   ██║   \n██╔══██╗██║╚██╔╝██║   ██║   \n██████╔╝██║ ╚═╝ ██║   ██║   \n╚═════╝ ╚═╝     ╚═╝   ╚═╝ \n\nBitcoin Message Tool by shadowy-pycoder \n\nGitHub: https://github.com/shadowy-pycoder\n\nUsage: bmt [OPTIONS] COMMAND\nOptions:\n\n  -h    show this help message and exit\n\nCommands:\n\n  sign         Create bitcoin message \n  verify       Verify bitcoin message \n  create       Create wallet (private key, public key, addresses)\n``` \n\n### Message signing\n```shell\nUsage bmt sign [-h] -p -a {legacy, nested, segwit} -m [MESSAGE ...] [-d] [-e]\nOptions:\n\n  -a value\n        type of bitcoin address (legacy, nested, segwit)\n  -d    sign deterministically (RFC6979)\n  -e    create electrum-like signature\n  -h    show this help message and exit\n  -m string\n        [MESSAGE ...] message to sign\n  -p    private key in wallet import format (WIF)\n\nExamples:\n\nDeterministic signature for compressed private key and legacy address\n\nbmt sign -p -a legacy -d -m \"ECDSA is the most fun I have ever experienced\"\nPrivateKey (WIF): L3V9AFB763LKWWsMh8CyosSG8QV8KDTjYeXqkt4WX5Xyz2aNqLAY\n-----BEGIN BITCOIN SIGNED MESSAGE-----\nECDSA is the most fun I have ever experienced\n-----BEGIN BITCOIN SIGNATURE-----\n16wrm6zJek6REbxbJSLsBHehn3Lj1vo57t\n\nH3x5bM2MpXK9MyLLbIGWQjZQNTP6lfuIjmPqMrU7YZ5CCm5bS9L+zCtrfIOJaloDb0mf9QBSEDIs4UCd/jou1VI=\n-----END BITCOIN SIGNATURE-----\n```\n\n### Message verification\n```shell\nUsage bmt verify [-h] [-f | -a ADDRESS -m [MESSAGE ...] -s SIGNATURE] [-e] [-v] [-r]\nOptions:\n\n  -a string\n        ADDRESS bitcoin address\n  -e    verify electrum-like signature\n  -f    verify message in RFC2440-like format\n  -h    show this help message and exit\n  -m string\n        [MESSAGE ...] message to verify\n  -r    recover public key\n  -s value\n        SIGNATURE bitcoin signature in base64 format\n  -v    show full message\n\nExamples:\n\nMessage verification in verbose mode\n\nbmt verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \\\n-m \"ECDSA is the most fun I have ever experienced\" \\\n-s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \\\n-v\ntrue\nmessage verified to be from 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL\n\nDisplay a recovered public key\n\nbmt verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \\\n-m \"ECDSA is the most fun I have ever experienced\" \\\n-s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \\\n-r\ntrue\n024aeaf55040fa16de37303d13ca1dde85f4ca9baa36e2963a27a1c0c1165fe2b1\n\nVerify message in RFC2440-like format\n\nbmt verify -f -v -r   \nInsert message in RFC2440-like format (or Ctrl+C to quit):\n-----BEGIN BITCOIN SIGNED MESSAGE-----\nECDSA is the most fun I have ever experienced\n-----BEGIN BITCOIN SIGNATURE-----\n16wrm6zJek6REbxbJSLsBHehn3Lj1vo57t\n\nH3x5bM2MpXK9MyLLbIGWQjZQNTP6lfuIjmPqMrU7YZ5CCm5bS9L+zCtrfIOJaloDb0mf9QBSEDIs4UCd/jou1VI=\n-----END BITCOIN SIGNATURE-----\ntrue\nmessage verified to be from 16wrm6zJek6REbxbJSLsBHehn3Lj1vo57t\n02700317e20cefbcd8a9e2f294ff2585bc0b8dc981bfe68f72c42497d1b5239988\n```\n\n### Wallet creation\n```shell\nUsage bmt create [-h] [-n {1...1000000}] [-path]\nOptions:\n\n  -h    show this help message and exit\n  -n value\n        number of wallets to create [1...1000000] (default 1)\n  -path string\n        path to a file to write created wallets (if ommited prints to stdout)\n\nExamples:\n\nCreate 100 key pairs with addresses and write to wallets.txt\n\nbmt create -n 100 -path=./wallets.txt\n\nCreate a wallet and print to console (you can redirect output to a file)\n\nbmt create -n 1\nPrivate Key (HEX): 850cece14ffefdb864f6007718a5243dae9194841617c7d6d77b67482d40d856\nPrivate Key (WIF): L1gLtHEKG4FbbxQDzth3ksCZ4jTSjRvcU7K2KDeDE368pG8MjkFg\nPublic Key (Raw): (X=691ab7d2b2e1b41a8df334a5471a3abd7a93c8822b2abf3de64c552147dc33b8, Y=b1eed621c6b9e790a901ca30eb55ee95d591c3e6dc2e6aa30f2b9f5c525e7e32)\nPublic Key (HEX Compressed): 02691ab7d2b2e1b41a8df334a5471a3abd7a93c8822b2abf3de64c552147dc33b8\nLegacy Address: 1N3kZRUrEioGxXQbSyCWuBwmoFp4T62i93\nNested SegWit Address: 3KWsrxLMHPU1v8riptj33zCsWD8bf6jfLF\nNative SegWit Address: bc1qum0at29ayuq2ndk39z4zwf4zdpxv5ker570ape\nTaproot Address: bc1p5utaw0g77graev5yw575c3jnzh8j88ezzw39lgr250ghppwpyccsvjkvyp\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowy-pycoder%2Fgo-bitcoin-message-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowy-pycoder%2Fgo-bitcoin-message-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowy-pycoder%2Fgo-bitcoin-message-tool/lists"}