{"id":21625080,"url":"https://github.com/cevin/btcd","last_synced_at":"2025-04-11T12:34:22.361Z","repository":{"id":196324353,"uuid":"694459087","full_name":"cevin/btcd","owner":"cevin","description":"Offline Bitcoin transaction processor , simple self-hosted Bitcoin payment support (create and parse address, create and sign offline transaction)","archived":false,"fork":false,"pushed_at":"2024-01-19T07:06:37.000Z","size":37,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T08:51:19.741Z","etag":null,"topics":["bitcoin","bitcoin-api","bitcoin-offline","btc","rawtransaction"],"latest_commit_sha":null,"homepage":"","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/cevin.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":"2023-09-21T03:25:47.000Z","updated_at":"2024-05-07T05:35:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"b986161c-08ec-43c8-9a9b-f0b7902c70e1","html_url":"https://github.com/cevin/btcd","commit_stats":null,"previous_names":["cevin/btcd"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevin%2Fbtcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevin%2Fbtcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevin%2Fbtcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevin%2Fbtcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cevin","download_url":"https://codeload.github.com/cevin/btcd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248402304,"owners_count":21097328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","bitcoin-api","bitcoin-offline","btc","rawtransaction"],"created_at":"2024-11-25T01:07:48.822Z","updated_at":"2025-04-11T12:34:22.342Z","avatar_url":"https://github.com/cevin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"English | [简体中文](https://github.com/cevin/btcd/blob/main/README_zh.md)\n\n# Offline Bitcoin transaction processor\n\nSimple self-hosted Bitcoin payment support\n\n# Usage\n\n## Start\n\n`./btcd -addr localhost:8000`\n\n## Address\n\n### Create Address\n\n#### Usual address\n\n`GET /address/new` `POST /address/new`\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"address\": \"18JS3qcfWmmGQiwuvWQhc19jU3ML71zAmj\",\n  \"bech32_address\": \"bc1q2q2de9qwewgfzwve8scxdlgw5c57e456fdtf5z\",\n  \"wif\": \"L2ihBrcpk2bwJnrbBd9kv6yCFymewj1oNpuDNKWYwaBFEHR9qCQZ\",\n  \"private_key_hex\": \"a418caa27fe90edf145de85389bc0521a9af750ff9f64a2e5815820d10755009\",\n  \"public_key_hex\": \"030f9849b7ba1a8e935663ab68e4fee6ac53f5ff853cf76fd8c4e921958b7bd2f9\"\n}\n```\n\n#### MultiSig address\n\n```text\nGET /address/new-multi-sig?public_key_hexes=031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a,02623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d6,023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\u0026required=2\n```\n\n```text\nPOST /address/new-multi-sig\n\n# json\n{\n    \"required\": 2,\n    \"public_key_hexes\": \"031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a,02623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d6,023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\"\n}\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"address\": \"34P2BVSiDrHNHmmediJzPnp3rcztKPAytS\",\n  \"script\": \"5221023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f2102623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d621031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a53ae\",\n  \"asm\": \"2 023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f 02623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d6 031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a 3 OP_CHECKMULTISIG\",\n  \"type\": \"multisig\",\n  \"reqSigs\": 2,\n  \"addresses\": [\n    \"1NDcMyNeyZmLRTkAiAgDUvhy9GLU7S2npd\",\n    \"1LNXg6moCRSDPvAwTEaRfSA2TxrjqJQk9J\",\n    \"1PAfPcvnwMJ8Lok14u1UYGyPawxzNZmLrv\"\n  ]\n}\n```\n\n\n#### Parse Address\n\n##### Compressed Hex Public Key\n\n`GET /address/parse?public_key_hex=023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f`\n\n```text\nPOST /address/parse\n\n# json\n{\"public_key_hex\":\"023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\"}\n\n# form\npublic_key_hex=023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\n```\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"address\": \"1NDcMyNeyZmLRTkAiAgDUvhy9GLU7S2npd\",\n  \"public_key_hex\": \"023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\"\n}\n```\n\n##### WIF\n\n`GET /address/parse?wif=L4G8o9MCkkQnL48yw1GnkQ6SzDZeDVn3GennEHHVqB4aqWjtBymJ`\n\n```text\nPOST /address/parse\n\n# json\n{\"wif\":\"L4G8o9MCkkQnL48yw1GnkQ6SzDZeDVn3GennEHHVqB4aqWjtBymJ\"}\n\n# form\nwif=L4G8o9MCkkQnL48yw1GnkQ6SzDZeDVn3GennEHHVqB4aqWjtBymJ\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"address\": \"1NDcMyNeyZmLRTkAiAgDUvhy9GLU7S2npd\",\n  \"bech32_address\": \"bc1qaz7jd0lg23ppfjkme8lhdesacykln2j06aww2u\",\n  \"wif\": \"L4G8o9MCkkQnL48yw1GnkQ6SzDZeDVn3GennEHHVqB4aqWjtBymJ\",\n  \"private_key_hex\": \"d21be41dc8e073e02d7ad36ca6f13c952752a28bc81b1c1140bd323e9fb7d933\",\n  \"public_key_hex\": \"023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f\"\n}\n```\n\n##### Script (MultiSig)\n\n```text\nGET /address/parse?script=5221023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f2102623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d621031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a53ae\n```\n\n```text\nPOST /address/parse\n\n# json\n{\n    \"script\": \"5221023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f2102623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d621031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a53ae\"\n}\n\n# form\nscript=5221023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f2102623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d621031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a53ae\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"address\": \"34P2BVSiDrHNHmmediJzPnp3rcztKPAytS\",\n  \"script\": \"5221023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f2102623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d621031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a53ae\",\n  \"asm\": \"2 023b95f449bbe5b01e9f791a19266cc9f94d98e09488bde3afa4a75f823efd751f 02623db1f69a896b1f6bf54ab786773ce5f9385b58eb8eed58696fc7a4111d22d6 031af2a6177e1179cd119657112aab53725155ee305a4199a722c8b3097782d21a 3 OP_CHECKMULTISIG\",\n  \"type\": \"multisig\",\n  \"reqSigs\": 2,\n  \"addresses\": [\n    \"1NDcMyNeyZmLRTkAiAgDUvhy9GLU7S2npd\",\n    \"1LNXg6moCRSDPvAwTEaRfSA2TxrjqJQk9J\",\n    \"1PAfPcvnwMJ8Lok14u1UYGyPawxzNZmLrv\"\n  ]\n}\n```\n\n## Transaction\n\n### Decode raw transaction\n\n`GET /transaction/decode?tx=0100000001fe75a438b72fdc302b80cc216d66d5e3bbb0359bce3bb4cecf743f5fda1f4eb101000000fdfd000048304502210096b617a5b2bd676ee8d3f8d8d91bf60c599e16382d1e12a61a1f9562c35b2cb102204379706a55c07bb45d20336159f80ebe9786938e34b9309e49ed422e6d2a44470147304402201550a8bb0c28107098289fe6fe64488bdee46800d28bfbb0b0a1e1b2d64b9fb4022004684015095b999185b3da1a23d239452ad73b199a032f71978760f8ae42313f014c6952210265e6f7fb614a369c9230912a3bb09c33c5c5be2e1bcfc2293ecaed46708e0b5c2103f546edf7b434b50aa0115c1c82a0f9a96505d9eff55d2fe3b848c4b51c06b6432102908375f301c7ea583f7e113939eab1164abda4ac27898b1cf78abf1c82f02da953aeffffffff01f8a70000000000001976a914bd63bf79e39f4cd52361c092c3fba9264662285688ac00000000`\n\n```text\nPOST /transaction/decode\n\n# json\n{\n    \"tx\":\"0100000001fe75a438b72fdc302b80cc216d66d5e3bbb0359bce3bb4cecf743f5fda1f4eb101000000fdfd000048304502210096b617a5b2bd676ee8d3f8d8d91bf60c599e16382d1e12a61a1f9562c35b2cb102204379706a55c07bb45d20336159f80ebe9786938e34b9309e49ed422e6d2a44470147304402201550a8bb0c28107098289fe6fe64488bdee46800d28bfbb0b0a1e1b2d64b9fb4022004684015095b999185b3da1a23d239452ad73b199a032f71978760f8ae42313f014c6952210265e6f7fb614a369c9230912a3bb09c33c5c5be2e1bcfc2293ecaed46708e0b5c2103f546edf7b434b50aa0115c1c82a0f9a96505d9eff55d2fe3b848c4b51c06b6432102908375f301c7ea583f7e113939eab1164abda4ac27898b1cf78abf1c82f02da953aeffffffff01f8a70000000000001976a914bd63bf79e39f4cd52361c092c3fba9264662285688ac00000000\"\n}\n\n# form\ntx=0100000001fe75a438b72fdc302b80cc216d66d5e3bbb0359bce3bb4cecf743f5fda1f4eb101000000fdfd000048304502210096b617a5b2bd676ee8d3f8d8d91bf60c599e16382d1e12a61a1f9562c35b2cb102204379706a55c07bb45d20336159f80ebe9786938e34b9309e49ed422e6d2a44470147304402201550a8bb0c28107098289fe6fe64488bdee46800d28bfbb0b0a1e1b2d64b9fb4022004684015095b999185b3da1a23d239452ad73b199a032f71978760f8ae42313f014c6952210265e6f7fb614a369c9230912a3bb09c33c5c5be2e1bcfc2293ecaed46708e0b5c2103f546edf7b434b50aa0115c1c82a0f9a96505d9eff55d2fe3b848c4b51c06b6432102908375f301c7ea583f7e113939eab1164abda4ac27898b1cf78abf1c82f02da953aeffffffff01f8a70000000000001976a914bd63bf79e39f4cd52361c092c3fba9264662285688ac00000000\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"transaction\": {\n    \"txid\": \"c7d1582d4cf85fbd10732002c5bb06068d4b86cfd5cca151ef88104c6702435a\",\n    \"size\": 340,\n    \"vsize\": 340,\n    \"weight\": 0,\n    \"version\": 1,\n    \"locktime\": 0,\n    \"vin\": [\n      {\n        \"txid\": \"b14e1fda5f3f74cfceb43bce9b35b0bbe3d5666d21cc802b30dc2fb738a475fe\",\n        \"vout\": 1,\n        \"scriptSig\": {\n          \"asm\": \"0 304502210096b617a5b2bd676ee8d3f8d8d91bf60c599e16382d1e12a61a1f9562c35b2cb102204379706a55c07bb45d20336159f80ebe9786938e34b9309e49ed422e6d2a444701 304402201550a8bb0c28107098289fe6fe64488bdee46800d28bfbb0b0a1e1b2d64b9fb4022004684015095b999185b3da1a23d239452ad73b199a032f71978760f8ae42313f01 52210265e6f7fb614a369c9230912a3bb09c33c5c5be2e1bcfc2293ecaed46708e0b5c2103f546edf7b434b50aa0115c1c82a0f9a96505d9eff55d2fe3b848c4b51c06b6432102908375f301c7ea583f7e113939eab1164abda4ac27898b1cf78abf1c82f02da953ae\",\n          \"hex\": \"0048304502210096b617a5b2bd676ee8d3f8d8d91bf60c599e16382d1e12a61a1f9562c35b2cb102204379706a55c07bb45d20336159f80ebe9786938e34b9309e49ed422e6d2a44470147304402201550a8bb0c28107098289fe6fe64488bdee46800d28bfbb0b0a1e1b2d64b9fb4022004684015095b999185b3da1a23d239452ad73b199a032f71978760f8ae42313f014c6952210265e6f7fb614a369c9230912a3bb09c33c5c5be2e1bcfc2293ecaed46708e0b5c2103f546edf7b434b50aa0115c1c82a0f9a96505d9eff55d2fe3b848c4b51c06b6432102908375f301c7ea583f7e113939eab1164abda4ac27898b1cf78abf1c82f02da953ae\"\n        },\n        \"sequence\": 4294967295\n      }\n    ],\n    \"vout\": [\n      {\n        \"value\": 0.00043,\n        \"n\": 0,\n        \"scriptPubKey\": {\n          \"asm\": \"OP_DUP OP_HASH160 bd63bf79e39f4cd52361c092c3fba92646622856 OP_EQUALVERIFY OP_CHECKSIG\",\n          \"hex\": \"76a914bd63bf79e39f4cd52361c092c3fba9264662285688ac\",\n          \"reqSigs\": 1,\n          \"type\": \"pubkeyhash\",\n          \"addresses\": [\n            \"1JGQCsBmRqksmJArpEqVKSJyao3SZuZru3\"\n          ]\n        }\n      }\n    ]\n  }\n}\n```\n\n### Create raw transaction\n\n\u003e Get unspent txs can use https://blockchain.info/unspent?active=$address\n\n\u003e total unspent - total send = transaction fee\n\u003e \n\u003e Or you can send the excess to your own bitcoin address and the rest as a transaction fee\n\n```text\nPOST /transaction/create\n\n# json\n{\n    \"txin\": [\n        {\n            \"txid\": \"transaction hash id\",\n            \"vout\": int, # input vout\n        }\n    ],\n    \"pay_to_addresses\": [\n        {\n            \"address\": \"any bitcoin address\",\n            \"amount\": int (satoshi)\n        }\n    ]\n}\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"raw\": \"unsigned hex-encoded raw transaction\"\n}\n```\n\n### Sign raw transaction\n\nMultiSig transactions require multiple times signature with multiple private keys.\n\nAs long as a SegWIt transaction is included in the Inputs, then all Inputs must include the corresponding income amount of the Input.\n\n```text\nPOST /transaction/sign\n\n# json\n{\n    \"raw\": \"unsigned hex-encoded raw transaction\",\n    \"txin\": [\n        {\n            \"txid\": \"transaction hash id\",\n            \"wif\": \"WIF private key\",\n            \"redeem-script\": \"multisig redeem script\",\n            \"segwit\": bool,\n            \"amount\": int (satoshi) (optional, when segwit transaction required)\n        }\n    ]\n}\n```\n\nResponse\n\n```json\n{\n    \"code\": 200,\n    \"raw\": \"signed hex-encoded raw transaction\"\n}\n```\n\n### Create and signing transaction\n\n`POST /transaction/create-and-sign`\n\n```text\n{\n    \"txin\": [\n        {\n            \"txid\": \"transaction hash id\",\n            \"vout\": int, # input vout\n            \"wif\": \"WIF private key\",\n            \"redeem-script\": \"multisig redeem script\",\n            \"segwit\": bool,\n            \"amount\": int (satoshi) (optional, when segwit transaction required)\n        }\n    ],\n    \"pay_to_addresses\": [\n        {\n            \"address\": \"any Bitcoin address\",\n            \"amount\": int (satoshi)\n        }\n    ]\n}\n```\n\nResponse\n\n```json\n{\n  \"code\": 200,\n  \"raw\": \"signed hex-encoded raw transaction\" \n}\n```\n\n\n## Broadcast transaction\n\nTransactions that have been signed can be broadcast to the Bitcoin network through an online broadcast service.\n\nhttps://coinb.in/#broadcast\n\nhttps://explorer.btc.com/tools/tx/publish\n\n\n---\n\nDonate\n\nBitcoin: 1DMHiyzcjNzuYhWCbB4tx3wKfcvid1qgC4","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcevin%2Fbtcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcevin%2Fbtcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcevin%2Fbtcd/lists"}