{ "info": { "author": "tompin", "author_email": "tompin@tuta.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# README\n\n[![Build Status](https://travis-ci.org/tompin/multicrypto.svg?branch=master)](https://travis-ci.org/tompin/multicrypto)\n[![Coverage Status](https://coveralls.io/repos/github/tompin/multicrypto/badge.svg?branch=master)](https://coveralls.io/github/tompin/multicrypto?branch=master)\n[![Latest Version](https://pypip.in/version/multicrypto/badge.svg)](https://pypi.python.org/pypi/multicrypto/)\n[![Python Version](https://img.shields.io/pypi/pyversions/multicrypto.svg)](https://www.python.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Bitcoin donation](https://img.balancebadge.io/btc/1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG.svg?label=Donations&color=ffb121)](https://blockchain.info/address/1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG)\n \nHighly experimental, pure python tool for cryptocurrencies.\n\n## INSTALLATION\n\n### Additional packages needed on Ubuntu\n```bash\nsudo apt-get install build-essential python3-setuptools python3-wheel python3-dev python3-pip\n```\n\nIf you don't have Python 3, install it by following instructions from python.org. \nSupported Python versions are 3.5, 3.6, 3.7. Then Run:\n```bash\npip3 install multicrypto\n```\n\nThe package contains below commands:\n 1. `sweepaddress` - combines many inputs into one\n 2. `sendcrypto` - creates raw transaction and send it to insight explorer api\n 3. `checkaddress` - checks address balance using insight explorer api\n 4. `transaddress` - translates address to different coin format (resulting address will have the same private key) \n 5. `transprivkey` - translates WIF private key to different coin format\n 6. `genaddress` - generates vanity address for given coin\n 7. `signmessage`- signs message using ECDSA\n 8. `verifymessage` - verify ECDSA signed message \n\n## USAGE\nBefore running any commands it is advised to disable shell history. For example on linux it should \nbe enough to run:\n```bash\nunset HISTFILE\n```\n### Run\n\n 1. Combining many small inputs to larger ones.\n ```bash\n sweepaddress --coin_symbol= --address=
--private_key= --minimum_input_threshold= --maximum_input_threshold=\n ```\n After mining some currency for longer period we could end up with address having a lot of small inputs. \n In such case it is very likely it will be not possible to send the funds in one transaction and it could\n be difficult to cope with. Let say for Zen Cash we have private key of the address which inputs \n we want to combine, but we want only combine inputs which are smaller than 0.1 ZEN:\n ```bash\n sweepaddress -c ZEN -p KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp --maximum_input_threshold==10000000\n ```\n This will create appropriate number of transactions (by default one transaction for each 200 inputs, you can \n override this value by setting parameter --batch_size, but setting it too high will result in too big transaction error),\n transaction fee will be set to default 0.00001 ZEN (you can override it using --fee parameter) and the\n funds will be sent back to original address (you can override the output address using --address parameter).\n\n 2. Sending funds:\n ```bash\n sendcrypto --coin_symbol= --satoshis= --address=
--private_key= --minimum_input_threshold= --maximum_input_threshold=\n ```\n Sending (P2PKH) 0.25 BTC to address 1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG with default fee 10000 satoshis\n and only using inputs containing not more than 100000 satoshis:\n ```bash\n sendcrypto -c BTC -s 25000000 -x 100000 -a 1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG -p KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp\n ```\n\n Sending (P2PSH) 0.0019 BTC on testnet to address 2NDN55zZ6BtStckQWnhGJejBdM5EaGcNn7h with fee 5000 satoshis\n (notice that both input address 2NAMu8JCTLXtTv2LRQktByt1EoKaJaVmDAj and unlocking script 5106519351935387\n must be provided):\n ```bash\n sendcrypto -a 2NDN55zZ6BtStckQWnhGJejBdM5EaGcNn7h -c TBTC -i 2NAMu8JCTLXtTv2LRQktByt1EoKaJaVmDAj -u 5106519351935387 -s 190000 -f 5000\n ```\n 3. Listing address inputs with total amount:\n ```bash\n checkaddress --coin_symbol= --address=
--minimum_input_threshold= --maximum_input_threshold=\n ``` \n For example:\n ```bash\n checkaddress -c BTC -a 14YK4mzJGo5NKkNnmVJeuEAQftLt795Gec\n ```\n 4. Translating address between coins:\n ```bash\n transaddress --address=
--input_symbol= --output_symbol=\n ```\n For example to translate Bitcoin address 1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG to Hush address we enter:\n ```bash\n transaddress -a 1BTC1NNjeiAmFqe2n1QJjkEa4aMyAhkpKG -i BTC -o HUSH\n ```\n 5. Translating private key in wif format between coins\n ```bash\n transprivkey --private_key= --output_symbol=\n ```\n For example to translate Bitcoin private key KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp\n to Hush private key we enter:\n ```bash\n transprivkey -p KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp -o HUSH\n ```\n 6. Generating address with given pattern and corresponding private key:\n ```bash\n genaddress --pattern= --symbol= --output_dir=\n ```\n For example if we want to create address with prefix t1aaaa for Hush coin and save corresponding\n QR codes to /home/john directory we enter:\n ```bash\n genaddress -p t1aaaa -s Hush -d /home/john\n ```\n To generate Bitcoin segwit address starting with 3BTC we enter:\n ```bash\n genaddress -p 3BTC -s BTC -w\n ```\n7. Signing message proving ownership of an address:\n ```bash\n signmessage --coin_symbol= --private_key= --message=\n ```\n For example proving ownership of BTC address 1HCfFoucNXgYLvpcN2X4TwmUXJjGUMJ2hi:\n ```bash\n signmessage -c BTC -p KzReaUKzSaGarrhFhjNMweTrpUx4gqX1KCMFSWJx9374kYNHpmSu -m \"Hello World!\"\n ```\n will return: `H7Ul0s8Za640duU2MhsifCX1H3Ma2NKRtLvtLYye6mFpZTW0fgXbM//bXq1yeXLHphXi8BUjtBsBHy0zrZjCYsQ=`\n\n8. Verifying if signed message was created using private key of given address:\n ```bash\n verifymessage --coin_symbol= --address=
--message= --signed_message=\n ```\n For example verifying if `H7Ul0s8Za640duU2MhsifCX1H3Ma2NKRtLvtLYye6mFpZTW0fgXbM//bXq1yeXLHphXi8BUjtBsBHy0zrZjCYsQ=`\n is signed `Hello World!` message by owner of BTC address 1HCfFoucNXgYLvpcN2X4TwmUXJjGUMJ2hi we run:\n ```bash\n verifymessage -c BTC -a 1HCfFoucNXgYLvpcN2X4TwmUXJjGUMJ2hi -m \"Hello World!\" -s H7Ul0s8Za640duU2MhsifCX1H3Ma2NKRtLvtLYye6mFpZTW0fgXbM//bXq1yeXLHphXi8BUjtBsBHy0zrZjCYsQ=\n ```\n\n### Supported coins\n| Coin | Symbol | Address generation | P2PKH transactions | P2SH transactions |\n| --- | --- | --- | --- | --- |\n| Bitcoin | BTC | Yes | Yes | Yes |\n| Bitcoin Gold | BTG | Yes | No | No |\n| Bitcoin Hush | BTCH | Yes | No | No |\n| Bitcoin Private | BTCP | Yes | Yes | Yes |\n| BitcoinZ | BTCZ | Yes | Yes | Yes |\n| Bitstar | BITS | Yes | No | No |\n| Buck | BUCK | Yes | No | No |\n| Crave | CRAVE | Yes | No | No |\n| Dash | DASH | Yes | Yes | Yes |\n| Diamond | DMD | Yes | No | No |\n| Dogecoin | DOGE | Yes | No | No |\n| Elite | 1337 | Yes | No | No |\n| Hush | HUSH | Yes | Yes | Yes |\n| Komodo | KMD | Yes | Yes | Yes |\n| Litecoin | LTC | Yes | Yes | Yes |\n| Mooncoin | MOON | Yes | No | No |\n| Qtum | QTUM | Yes | No | No |\n| Safecoin | SAFE | Yes | Yes | Yes |\n| Snow Gem | SNG | Yes | Yes | Yes |\n| Sirius | SIRX | Yes | No | No |\n| Smartcash | SMART | Yes | No | No |\n| Unify | UNIFY | Yes | No | No |\n| Unobtanium | UNO | Yes | No | No |\n| Vertcoin | VTC | Yes | No | No |\n| Zcash | ZEC | Yes | Yes | Yes |\n| Zclassic | ZCL | Yes | Yes | Yes |\n| Zeitcoin | ZEIT | Yes | No | No |\n| ZenCash | ZEN | Yes | Yes | Yes |\n| Zero | ZERO | Yes | Yes | Yes |\n| Zoin | ZOIN | Yes | No | No |\n\n## Tests\nInstall pytest, pytest-cov and tox packages:\n```bash\n pip3 install -r requirements_dev.txt\n```\nRun tests and check report htmlcov/index.html:\n```bash\n python3 -m pytest --cov=./ --cov-report=html\n```\nTo run tests on various python versions run:\n```bash\ntox\n```\n\n## Adding new coin\n1. Add new entry in `settings.py`. Prefix bytes are usually defined in chainparams.cpp or \nbase58.h files.\n Exemplary for Zen we have:\n```bash\n'ZEN': {'name': 'zen cash', 'address_prefix_bytes': b'\\x20\\x89', 'secret_prefix_bytes': b'\\x80'}\n```\n2. Update this readme with new supported coin and add appropriate tests\n3. Create pull request\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tompin/multicrypto", "keywords": "cryptocurrency", "license": "http://opensource.org/licenses/MIT", "maintainer": "", "maintainer_email": "", "name": "multicrypto", "package_url": "https://pypi.org/project/multicrypto/", "platform": "", "project_url": "https://pypi.org/project/multicrypto/", "project_urls": { "Homepage": "https://github.com/tompin/multicrypto" }, "release_url": "https://pypi.org/project/multicrypto/0.1.13/", "requires_dist": null, "requires_python": "", "summary": "Tool for translating and creating custom addresses for various cryptocurrencies", "version": "0.1.13" }, "last_serial": 4733366, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "138aa2889d6201dcc63566939aaa410c", "sha256": "6e302026b775afd926990dde664b9f79c9ecfe1a18ab8eaed204922c0cb863af" }, "downloads": -1, "filename": "multicrypto-0.1.10.tar.gz", "has_sig": false, "md5_digest": "138aa2889d6201dcc63566939aaa410c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17010, "upload_time": "2018-06-30T16:01:00", "url": "https://files.pythonhosted.org/packages/8f/e3/aef90ad861f4ed331a16e973d9f1ecb6e77344e6d41240ee78c9b72a4bd3/multicrypto-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "55179b0b22d7bee4ba5ff0081a5167d3", "sha256": "4b8904450af45840b605e22092b436799f8c31c400017556f1bff708ad3c9da6" }, "downloads": -1, "filename": "multicrypto-0.1.11.tar.gz", "has_sig": false, "md5_digest": "55179b0b22d7bee4ba5ff0081a5167d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17216, "upload_time": "2018-08-03T10:07:45", "url": "https://files.pythonhosted.org/packages/f0/0b/cba7f508c77176adffc6f74da1871e376c38f66ff64bd10d2d121aea3a5c/multicrypto-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "348c5e671f0c24da8d14524536aef740", "sha256": "65ffb9718e9fc97cb10569001d40610312a7365ea4056470fb791676dc7b1ee1" }, "downloads": -1, "filename": "multicrypto-0.1.12.tar.gz", "has_sig": false, "md5_digest": "348c5e671f0c24da8d14524536aef740", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24686, "upload_time": "2019-01-22T21:52:12", "url": "https://files.pythonhosted.org/packages/f6/61/58f90b0ebb02d6fbc44f4af077448a74c8a4513ca4266d5bc1834eb9b035/multicrypto-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "1cb4236e6c37010995f9f25d9df98ee8", "sha256": "dc0fe40c61c272e67a7eeb83250cca2be3225c9cfd99d1fe8886e93b4e5d178d" }, "downloads": -1, "filename": "multicrypto-0.1.13.tar.gz", "has_sig": false, "md5_digest": "1cb4236e6c37010995f9f25d9df98ee8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24688, "upload_time": "2019-01-23T22:59:34", "url": "https://files.pythonhosted.org/packages/8b/bb/97b76fd7a5e2f0b0ebb745075c07715ed53281c56dc7fc00e7c2491266d3/multicrypto-0.1.13.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "47364f1842fdeb5960a071c8cc797811", "sha256": "75058cffd2b0af7b9b17251a10bf509e6145a2768d2cedff8c7292abe9850d74" }, "downloads": -1, "filename": "multicrypto-0.1.4.tar.gz", "has_sig": false, "md5_digest": "47364f1842fdeb5960a071c8cc797811", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7997, "upload_time": "2018-04-14T19:04:10", "url": "https://files.pythonhosted.org/packages/fd/9a/5b22f88c68d027a2a2a59e2d1c15a6cd7a49240411f665e1f3fd09b2b892/multicrypto-0.1.4.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ec65c0581ae633fcdad680b507d43784", "sha256": "9086ec506e7954327a9a541817b32180f1c3f633f23423674054ce67fac7e73e" }, "downloads": -1, "filename": "multicrypto-0.1.6.tar.gz", "has_sig": false, "md5_digest": "ec65c0581ae633fcdad680b507d43784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13449, "upload_time": "2018-06-15T22:03:32", "url": "https://files.pythonhosted.org/packages/bc/a8/3e8947ffa973f1bd8df3685f0111d1d918c59a48a0e2fa1095a7d1d48d92/multicrypto-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "55850f8d4599514f56704413e8c7d599", "sha256": "06f21fc3001e0a42436e4bac7744548992b7fed4c7ab83b5719a3a2f63d8b695" }, "downloads": -1, "filename": "multicrypto-0.1.7.tar.gz", "has_sig": false, "md5_digest": "55850f8d4599514f56704413e8c7d599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13748, "upload_time": "2018-06-16T11:58:32", "url": "https://files.pythonhosted.org/packages/95/84/07fb187e668ae793589dedfad3a86af1dd0a458d1461da971c4aac0c1f6a/multicrypto-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1dfbdf208cdccf4fd25545ef2568d514", "sha256": "27458f5ea5315615bab6e4b0f85df98626c867e2f549e0da5f4fffcf042c3b03" }, "downloads": -1, "filename": "multicrypto-0.1.8.tar.gz", "has_sig": false, "md5_digest": "1dfbdf208cdccf4fd25545ef2568d514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15796, "upload_time": "2018-06-19T15:08:22", "url": "https://files.pythonhosted.org/packages/9c/bf/3a7c5bbb81cc3fce5ea897a6ac664a1ae72529a7427dc15f1c8f5f550174/multicrypto-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "f0cb393d9134ed59b0d65e76726a6c55", "sha256": "5345369fc243acbc8f7b647c2d081d5a20c5a8d538dab076aaa9bc364a872fd9" }, "downloads": -1, "filename": "multicrypto-0.1.9.tar.gz", "has_sig": false, "md5_digest": "f0cb393d9134ed59b0d65e76726a6c55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16415, "upload_time": "2018-06-29T07:01:45", "url": "https://files.pythonhosted.org/packages/f4/48/0b74a7cba22fced2b232626918afe9026a3d5ce4a8e7b0e2d44df4ba5038/multicrypto-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1cb4236e6c37010995f9f25d9df98ee8", "sha256": "dc0fe40c61c272e67a7eeb83250cca2be3225c9cfd99d1fe8886e93b4e5d178d" }, "downloads": -1, "filename": "multicrypto-0.1.13.tar.gz", "has_sig": false, "md5_digest": "1cb4236e6c37010995f9f25d9df98ee8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24688, "upload_time": "2019-01-23T22:59:34", "url": "https://files.pythonhosted.org/packages/8b/bb/97b76fd7a5e2f0b0ebb745075c07715ed53281c56dc7fc00e7c2491266d3/multicrypto-0.1.13.tar.gz" } ] }