{"id":20855620,"url":"https://github.com/keyfuse/thresh-wallet","last_synced_at":"2026-02-15T18:33:47.509Z","repository":{"id":68861243,"uuid":"195503629","full_name":"keyfuse/thresh-wallet","owner":"keyfuse","description":" A keyless Bitcoin/Libra wallet service powered by Secure Two-Party ECDSA/Ed25519 and Zero Knowledge, Wallet Rebuilt for Security","archived":false,"fork":false,"pushed_at":"2019-08-17T06:47:13.000Z","size":970,"stargazers_count":21,"open_issues_count":3,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-04T22:26:03.690Z","etag":null,"topics":["bitcoin","ecdsa","ed25519","keyless","libra","schnorr","threshold","two-party-ecdsa","two-party-ed25519","wallet","zero-knowledge"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keyfuse.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":"2019-07-06T05:58:39.000Z","updated_at":"2024-04-19T16:03:19.000Z","dependencies_parsed_at":"2023-05-02T11:50:17.993Z","dependency_job_id":null,"html_url":"https://github.com/keyfuse/thresh-wallet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/keyfuse/thresh-wallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyfuse%2Fthresh-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyfuse%2Fthresh-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyfuse%2Fthresh-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyfuse%2Fthresh-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keyfuse","download_url":"https://codeload.github.com/keyfuse/thresh-wallet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyfuse%2Fthresh-wallet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: 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","ecdsa","ed25519","keyless","libra","schnorr","threshold","two-party-ecdsa","two-party-ed25519","wallet","zero-knowledge"],"created_at":"2024-11-18T04:19:34.187Z","updated_at":"2026-02-15T18:33:47.490Z","avatar_url":"https://github.com/keyfuse.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# thresh-wallet\n\nA cross-platform keyless Bitcoin wallet service powered by Breakthrough Cryptography.\n\n[![Build Status](https://travis-ci.org/keyfuse/thresh-wallet.png)](https://travis-ci.org/keyfuse/thresh-wallet) [![Go Report Card](https://goreportcard.com/badge/github.com/keyfuse/thresh-wallet)](https://goreportcard.com/report/github.com/keyfuse/thresh-wallet)\n\n\n## What is a keyless thresh wallet?\n\nNo private keys to worry about.\n\nThe wallet security is **distributed** between your device and the server.\n\nThe server knows **absolutely** no information related to your private key.\n\n## Platforms\n\n- iOS\n- OSX\n- Linux\n- Android\n\n## How to Build\n\nTo build thresh-wallet from the source code you need to have a working Go environment with [version 1.12 or greater installed](https://golang.org/doc/install).\n\n#### Building\n\n```\n$ git clone https://github.com/keyfuse/thresh-wallet\n$ cd thresh-wallet\n$ export GOPATH=`pwd`\n$ make build\n```\n\n#### IOS Library\n\n```\n$ make buildosx\n```\n\n#### Android Library\n\n```\n$ make buildandroid\n```\n\n## Try the Demo\n\n####  Server\n```\n./bin/threshwallet-server -c conf/server.json.sample  -vcode off\n```\n\n####  Client\n\n```\n./bin/threshwallet-client -uid=xx@xx.com -apiurl=http://localhost:9099\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n|     commands     |                 usage                  |                               example                               |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| help             | help                                   | help                                                                |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| dumpkey          | dumpkey                                | help                                                                |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| gettoken         | gettoken \u003cvcode\u003e                       | gettoken 666888                                                     |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| checkwallet      | checkwallet                            | checkwallet                                                         |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| createwallet     | createwallet                           | createwallet                                                        |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| backupwallet     | backupwallet                           | backupwallet                                                        |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| recoverwallet    | recoverwallet                          | recoverwallet                                                       |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| getbalance       | getbalance                             | getbalance                                                          |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| gettxs           | gettxs                                 | gettxs                                                              |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| getaddresses     | getaddresses                           | getaddresses                                                        |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| getnewaddress    | getnewaddress                          | getnewaddress                                                       |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| getsendfees      | getsendfees \u003caddress\u003e \u003cvalue\u003e          | getsendfees tb1qsdp08c4uua6ya865mmxvsqeqlv3gzp2lv5jtsw 10000        |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| sendtoaddress    | sendtoaddress \u003caddress\u003e \u003cvalue\u003e \u003cfees\u003e | sendtoaddress tb1qsdp08c4uua6ya865mmxvsqeqlv3gzp2lv5jtsw 10000 1000 |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n| sendalltoaddress | sendalltoaddress \u003caddress\u003e             | sendalltoaddress tb1qsdp08c4uua6ya865mmxvsqeqlv3gzp2lv5jtsw         |\n+------------------+----------------------------------------+---------------------------------------------------------------------+\n(14 rows)\n\nthreshwallet@testnet\u003e gettoken xx\n+--------+\n| status |\n+--------+\n| OK     |\n+--------+\n(1 rows)\nthreshwallet@testnet\u003e checkwallet\n+-------------+---------------+\n| user_exists | backup_exists |\n+-------------+---------------+\n| false       | false         |\n+-------------+---------------+\n(1 rows)\nthreshwallet@testnet\u003e createwallet\n+--------+\n| status |\n+--------+\n| OK     |\n+--------+\n(1 rows)\nthreshwallet@testnet\u003e checkwallet\n+-------------+---------------+\n| user_exists | backup_exists |\n+-------------+---------------+\n| true        | false         |\n+-------------+---------------+\n(1 rows)\nthreshwallet@testnet\u003e backupwallet\n+--------+\n| status |\n+--------+\n| OK     |\n+--------+\n(1 rows)\nthreshwallet@testnet\u003e checkwallet\n+-------------+---------------+\n| user_exists | backup_exists |\n+-------------+---------------+\n| true        | true          |\n+-------------+---------------+\n(1 rows)\nthreshwallet@testnet\u003e getnewaddress\n+--------------------------------------------+---------+\n|                  address                   | postion |\n+--------------------------------------------+---------+\n| tb1qzg2p5je5z82elv3k08lzpyjcwv9830he0qt4c7 |       0 |\n+--------------------------------------------+---------+\n(1 rows)\nthreshwallet@testnet\u003e getbalance\n+-----------------+\n| current_balance |\n+-----------------+\n|               0 |\n+-----------------+\n(1 rows)\nthreshwallet@testnet\u003e getbalance\n+-----------------+\n| current_balance |\n+-----------------+\n|         1000000 |\n+-----------------+\n(1 rows)\nthreshwallet@testnet\u003e getnewaddress\n+--------------------------------------------+---------+\n|                  address                   | postion |\n+--------------------------------------------+---------+\n| tb1qx0ehpa5a7ld2mhv99nkvzpsx343ap7aqhmtca0 |       1 |\n+--------------------------------------------+---------+\n(1 rows)\nthreshwallet@testnet\u003e sendalltoaddress tb1qx0ehpa5a7ld2mhv99nkvzpsx343ap7aqhmtca0\n+--------------------------------------------+------------+-----------+------------------------------------------------------------------+\n|                 toaddress                  | value(sat) | fees(sat) |                               txid                               |\n+--------------------------------------------+------------+-----------+------------------------------------------------------------------+\n| tb1qx0ehpa5a7ld2mhv99nkvzpsx343ap7aqhmtca0 |     999775 |       225 | 1d73d5e424b3fce1b7d5fb221e069a52929276cd1eaec8d6ed1a4295a17149c4 |\n+--------------------------------------------+------------+-----------+------------------------------------------------------------------+\n(1 rows)\nthreshwallet@testnet\u003e getbalance\n+-----------------+\n| current_balance |\n+-----------------+\n|          999775 |\n+-----------------+\n(1 rows)\nthreshwallet@testnet\u003e\n```\n\n## Can I trust this code?\n*Don't trust. Verify.*\n\n## License\n\nthresh-wallet is released under the GPLv3 License.\n\n\n## References\n\n[1] Y. Lindell. [Fast Secure Two-Party ECDSA Signing](https://eprint.iacr.org/2017/552.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyfuse%2Fthresh-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeyfuse%2Fthresh-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyfuse%2Fthresh-wallet/lists"}