{ "info": { "author": "off-the-grid-inc", "author_email": "accounts@off-the-grid.io", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3.6" ], "description": "# Bunkr Wallet\n\nBunkr Wallet is a simple bitcoin wallet application built on top of Bunkr. In utilizing Bunkr our wallet shifts the paradigm of cryptocurrency wallet security: private keys are distributedly stored in Bunkr and transaction signatures are securely generated without ever recomposing a bitcoin private key on *any* device. The wallet is a bare bones proof of concept with a simple cli.\n\nDisclaimer: This wallet is in beta and under development. Demo the wallet with testnet coins, and never publish generated transactions without decoding and looking them over first!\n\nNotes: \n- Private keys are stored across a distributed set of machines as Bunkr secrets and never touch your local machine (after creation).\n- In order to create a wallet or send funds from a wallet, the Bunkr Daemon must be running in the background.\n- Bunkr Wallet is *not* an HD (heirarchical deterministic) wallet as wallet addresses are in no way correlated or derived from a master seed. One can add more addresses to the wallet keyring at any time.\n- A wallet stores all public wallet information in a simple json file. It stores addresses, public keys, and reference to Bunkr secrets (for communicating with the private key distributed across remote servers). While your private keys will still be safe and secure in your Bunkr, losing the wallet json file can make it a pain to recover the wallet.\n\n## Installation\n\nInstall Bunkr Wallet (and all underlying requirements) with:\n\n```\n$ pip install bunkrwallet\n```\n\nVerify installation with\n\n```\n$ bunkr-wallet\nUsage: bunkr-wallet [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n check-balance\n get-address\n list-wallets\n new-wallet\n transaction\n```\n\n## Usage\n\nBunkr Wallet can be used with the `bunkr-wallet` commnad line interface. For now the possible commands are very simple:\n\n1. `list-wallets` (list names of existing bunkr wallets)\n2. `new-wallet` (create a bunkr wallet) args: `--name `\n3. `check-balance` (check the balance of a bunkr wallet) args: `--wallet `\n4. `get-address` (get a receiving address for a bunkr wallet) args: `--wallet `\n5. `transaction` (send bitcoin from a bunkr wallet) args: `--wallet --address --amount <# satoshi> --fee <# satoshi>`\n\nMost notably, when signing transactions, the wallet communicates with Bunkr to sign without ever recomposing the private key on any device.\n\n## Tutorial: create and use a testnet wallet from the command line\n\nIn this tutorial we will create a testnet bitcoin wallet, and use it to receive and send bitcoin.\n\n### Requirements\n\n1. Bunkr binary ([download here](https://github.com/off-the-grid-inc/bunkr/releases))\n2. Bunkr Daemon Running ([see here](https://github.com/off-the-grid-inc/bunkr#-bunkr-cli-configuration-))\n3. Python bunkrwallet (`pip install bunkrwallet`)\n\n#### Step 1: Create a testnet wallet\n\n```\n$ bunkr-wallet new-wallet --name myTestWallet --testnet\nCreating new wallet...\nWallet created\n```\n\n### Step 2: Get an address for receiving tBTC\n\n```\n$ bunkr-wallet get-address --wallet myTestWallet\nReceive address:\nnfeVwF1taoNGJpT2ozRpuqpYqp37t42SMy\n```\n\n### Step 3: Receive testnet bitcoins (for free, from a faucet)\n\nTestnet bitcoins can be found at a testnet faucet such as: https://coinfaucet.eu/en/btc-testnet/\n(Input the testnet address printed from Step 2 and click \"Get Bitcoins!\")\n\nYou can see the transaction has succeeded (you may have to wait a few minutes for transaction to have at least one confirmation):\n```\n$ bunkr-wallet check-balance --wallet myTestWallet\nBalance:\nmyTestWallet current balance: 0.03142 BTC\n```\n\n### Step 4: Send testnet bitcoin\n\n```\n$ bunkr-wallet transaction --wallet myTestWallet --address --amount <# satoshi to send> --fee <# satoshi as fee>\nTransaction hex:\n0100000001a82a36b753ba281b9ef86423648cbddbf3c6890d6f7ccd122af46b9b86937845000000006b483045022100f4e7a6d3b64357ef054ddb0644b81347c85622f05ea7c8471d65447d4bc36f5902207e867f6c138ec9ff5aba0cebcf0b59a3075afa6820614562374751ba30eafeef01210325f5fcee27815e9e273322862cf1d9b7bb5604c403010292a56f59c3c45dfd55ffffffff02e8030000000000001976a914344a0f48ca150ec2b903817660b9b68b13a6702688ac2b8c2f00000000001976a9143bb42f5f9586e5f2a33dfd3a0b40d2bd016731d588ac00000000\n```\n\n## BunkrWallet Docs\n\nBunkr wallet can also be controlled through a python console directly, and has extended functionality than the simple command line interface.\n\n### BunkrWallet class methods\n\n```>>> bw = BunkrWallet()```\n\nCreates an instance of the BunkrWallet.\n\nOptional parameters (don't change these unless you know what you are doing):\n\n- `directory_name` is the name of the BunkrWallet directory (where all wallet files are stored). Default to `.BunkrWallet`\n- `bunkr_address` is the socket address of the bunkr daemon. Defaults to `/tmp/bunkr_daemon.sock`\n- `bunkr_path` is the path to your local bunkr directory. Defaults to `~/.bunkr`\n\n#### create_wallet\n\n```>>> w = bw.create_wallet(\"your-wallet-name\")```\n\nCreates a wallet instance and the file `your-wallet-name.json` in the BunkrWallet directory.\n\nOptional parameter\n\n- `testnet` is a boolean flag for either bitcoin testnet or mainnet (defaults to False, i.e. mainnet)\n\n#### list_wallets\n\n```\n>>> bw.list_wallets()\n['your-wallet-name', 'your-other-wallet-name', ...]\n```\n\nLists all the wallet names in the BunkrWallet directory.\n\n#### get_wallet\n\n`>>> w = bw.get_wallet(\"your-wallet-name\")`\n\nGets Wallet instance with the name \"your-wallet-name\" from the BunkrWallet.\n\n### Wallet class methods\n\n#### show_balance\n\n`>>> w.show_balance()`\n\nPrints the total balance of the wallet.\n\n#### show_fresh_address\n\n`>>> w.show_fresh_address()`\n\nShows an unused address on the wallet keyring. Use this method to get an address for receiving bitcoin. If there are no fresh addresses left in the wallet it will raise an error (to overcome this error see add_addresses)\n\n#### send\n\n`>>> w.send([{\"address\":
, \"value\": )`\n\nReturns the signed transaction hex of a new bitcoin transaction. It is left to the user to publish the transaction.\n\n#### add_addresses\n\n`>>> w.add_addresses()`\n\nAdds an amount of addresses to the wallet keyring.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "bunkrwallet", "package_url": "https://pypi.org/project/bunkrwallet/", "platform": "", "project_url": "https://pypi.org/project/bunkrwallet/", "project_urls": null, "release_url": "https://pypi.org/project/bunkrwallet/0.3.1/", "requires_dist": [ "ecdsa (>=0.13.2)", "python-bitcoinlib (>=0.10.1)", "requests (>=2.22.0)", "punkr (>=1.0)" ], "requires_python": "", "summary": "Lite bitcoin bunkr-wallet working on top of Bunkr secrets", "version": "0.3.1", "yanked": false, "yanked_reason": null }, "last_serial": 6053608, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "4b1c7cd6af0316bad54a5621ccd2344e", "sha256": "115ffc0c50aeb7f9da944dec823583ae5f30851e3e5fdddc64886a3043b538dd" }, "downloads": -1, "filename": "bunkrwallet-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b1c7cd6af0316bad54a5621ccd2344e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10487, "upload_time": "2019-08-05T08:13:37", "upload_time_iso_8601": "2019-08-05T08:13:37.695919Z", "url": "https://files.pythonhosted.org/packages/95/65/40151bdb5ab1452ae7814666df1968e300aa83b600f604420703145d92e7/bunkrwallet-0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "301fdc7de30e16901ed52591a3c8be0a", "sha256": "c3ed9ac694b84d6e007a2455dc283af5b453cc2fdd327c4db875772c001f47e5" }, "downloads": -1, "filename": "bunkrwallet-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "301fdc7de30e16901ed52591a3c8be0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11072, "upload_time": "2019-08-07T07:16:16", "upload_time_iso_8601": "2019-08-07T07:16:16.252314Z", "url": "https://files.pythonhosted.org/packages/1e/f7/b5875515b6e998f357799b92be5d96c6a1e49d39ce50859edd1a79caf3d2/bunkrwallet-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "06e8e5fec6e388ad5258123712bcc3ce", "sha256": "9dd26b0983c3aa049fe7977c9abb713870d86ea8c7380bc09d4cf14beb295933" }, "downloads": -1, "filename": "bunkrwallet-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "06e8e5fec6e388ad5258123712bcc3ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11076, "upload_time": "2019-08-07T07:25:19", "upload_time_iso_8601": "2019-08-07T07:25:19.118591Z", "url": "https://files.pythonhosted.org/packages/28/f6/d89a59105b91b09d2a1c784ead74c43b78a06b8f427937db185683e651dd/bunkrwallet-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "366a4a6f52bb5f6d9b66d8e1e0239019", "sha256": "13079ba3313d704f4ff7a10a7950f67c9aefc2c42d2aac007f2124252f72f51e" }, "downloads": -1, "filename": "bunkrwallet-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "366a4a6f52bb5f6d9b66d8e1e0239019", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11339, "upload_time": "2019-10-02T10:46:07", "upload_time_iso_8601": "2019-10-02T10:46:07.882792Z", "url": "https://files.pythonhosted.org/packages/0a/6b/2788a03bd7a5f825e187592ba9c6461b4c133ac13cc523557f49c14da1a8/bunkrwallet-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fd865bbe99467b39b40429b90b588043", "sha256": "f280e421578451066878dcc935bcc6f383e6a5bdead3461770df3291aafce090" }, "downloads": -1, "filename": "bunkrwallet-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fd865bbe99467b39b40429b90b588043", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12735, "upload_time": "2019-10-30T15:39:54", "upload_time_iso_8601": "2019-10-30T15:39:54.843102Z", "url": "https://files.pythonhosted.org/packages/4f/98/2794ce2356a4b0e71e8cd5ba330e0dcb56860c83f0ff31df10f2ea5eafbe/bunkrwallet-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c9f0dd018271ce1c33ac10d64ade560e", "sha256": "4f42271cc40c721fb59b11d36654033b2e6230fb5ac08810bdde0bff9af93a0f" }, "downloads": -1, "filename": "bunkrwallet-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c9f0dd018271ce1c33ac10d64ade560e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12852, "upload_time": "2019-10-30T16:29:52", "upload_time_iso_8601": "2019-10-30T16:29:52.028746Z", "url": "https://files.pythonhosted.org/packages/71/ae/adca8a97884407b9bcde0f969fe0cf908ac10ba62d9f2239d9fb85d54511/bunkrwallet-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c9f0dd018271ce1c33ac10d64ade560e", "sha256": "4f42271cc40c721fb59b11d36654033b2e6230fb5ac08810bdde0bff9af93a0f" }, "downloads": -1, "filename": "bunkrwallet-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c9f0dd018271ce1c33ac10d64ade560e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12852, "upload_time": "2019-10-30T16:29:52", "upload_time_iso_8601": "2019-10-30T16:29:52.028746Z", "url": "https://files.pythonhosted.org/packages/71/ae/adca8a97884407b9bcde0f969fe0cf908ac10ba62d9f2239d9fb85d54511/bunkrwallet-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }