{"id":18259947,"url":"https://github.com/austecon/bitsv","last_synced_at":"2025-04-10T03:50:40.544Z","repository":{"id":34052027,"uuid":"167746495","full_name":"AustEcon/bitsv","owner":"AustEcon","description":"BitSV: Bitcoin made easy. Documentation:","archived":false,"fork":false,"pushed_at":"2022-05-05T20:38:43.000Z","size":1193,"stargazers_count":98,"open_issues_count":11,"forks_count":27,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-03T02:11:46.691Z","etag":null,"topics":["bitcoin","bitcoinsv","bsv","crypto","python3","sv"],"latest_commit_sha":null,"homepage":"https://AustEcon.github.io/bitsv","language":"Python","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/AustEcon.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-26T22:35:59.000Z","updated_at":"2024-11-11T14:42:19.000Z","dependencies_parsed_at":"2022-08-08T12:00:12.258Z","dependency_job_id":null,"html_url":"https://github.com/AustEcon/bitsv","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustEcon%2Fbitsv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustEcon%2Fbitsv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustEcon%2Fbitsv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustEcon%2Fbitsv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AustEcon","download_url":"https://codeload.github.com/AustEcon/bitsv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154999,"owners_count":21056542,"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","bitcoinsv","bsv","crypto","python3","sv"],"created_at":"2024-11-05T10:41:10.860Z","updated_at":"2025-04-10T03:50:40.521Z","avatar_url":"https://github.com/AustEcon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"BitSV: Bitcoin SV made easy.\n============================\n\nForked from Ofek's awesome Bit library: https://github.com/ofek/bit\n\n\n[![PyPI version](https://img.shields.io/pypi/v/bitsv.svg?style=flat-square)](https://pypi.org/project/bitsv)\n[![build status](https://img.shields.io/travis/AustEcon/bitsv.svg?branch=master\u0026style=flat-square)](https://travis-ci.org/AustEcon/bitsv)\n[![code cov](https://img.shields.io/codecov/c/github/AustEcon/bitsv.svg?style=flat-square)](https://codecov.io/gh/austecon/bitsv)\n[![Python versions](https://img.shields.io/pypi/pyversions/bitsv.svg?style=flat-square)](https://pypi.org/project/bitsv)\n[![Python versions](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License)\n\nNoticeboard:\n------------\nIn the near-term I do not have the bandwidth to support any major increases in scope. If there are\nfeatures you'd like added, raise an issue for discussion. It may be that you're best to create your \nown small library that complements bitsv rather than allowing me to be a bottleneck...\n\nLatest Major Release - [0.11.5](https://github.com/AustEcon/bitsv/blob/master/HISTORY.rst) (2021-01-24)\n\n- Added WhatsOnChain API for mainnet and testnet\n- Unspent data type: removed 'script' (scriptpubkey) attribute (unavailable from WhatsOnChain and Satoshi.io APIs and is unused in the codebase).\n- Transaction, TxOutput, TxInput data types: removed unnecessary 'cruft' like 'amount_in', 'amount_out' and 'fee' (also to facilitate use of WhatsOnChain etc. and reduce maintenance overheads).\n- MatterCloud now activated via **'MATTERCLOUD_API_KEY' environment variable** which makes it the highest priority API in the list for main, test, stn. Otherwise WhatsOnChain is used by default.\n- 0.11.1 Fixed an off-by-one bug for generating pushdata op_codes for data-carrier 'op_return' txs - c/o [gitzhou](https://github.com/gitzhou).\n- 0.11.2 NetworkAPI.broadcast_tx() now returns the txid instead of null.\n- 0.11.3 Make 'prepare_transaction' a @classmethod as it should not require a private key (breaking change as function signature now requires the 'network' as a positional argument)\n- 0.11.5 Update bchsvexplorer.com to bsvbook.guarda.co c/o [xloem](https://github.com/xloem) and [kcentrifugal](https://github.com/kcentrifugal)\n- 0.11.5 Extend test coverage to py38 and py39\n\nPlanned improvements\n--------------------\n\n- Improved coverage of testing modules (currently at 84%).\n- Work on the bsvbip32 library for hierarchical deterministic keys:\n  https://github.com/AustEcon/bsvbip32. Plan for each node to access\n  bitsv functionality so that building apps can be a breeze!\n  (competing implementations welcome. That's partly why modularity is a good idea!)\n\n----------------------------\n\nExamples\n--------\n\n**BitSV is so easy to use:**\n\n1. Simple payment:\n\n```\n    \u003e\u003e\u003e import bitsv\n    \u003e\u003e\u003e my_key = bitsv.Key('YourPrivateKeyGoesHere')  # Defaults to \"main\" network\n    \u003e\u003e\u003e my_key.get_balance()\n    10000000  # satoshis\n    \u003e\u003e\u003e # Can include a long list of tuples as outputs\n    \u003e\u003e\u003e outputs = [\n    \u003e\u003e\u003e     # Donate to AustEcon! (Currency conversion via api)\n    \u003e\u003e\u003e     ('1PdvVPTzXmo4cSs68HctLUxAdW917UZtC8', 0.10, 'usd'),  # $USD 0.10 as bsv\n    \u003e\u003e\u003e     ('1PdvVPTzXmo4cSs68HctLUxAdW917UZtC8', 0.0001, 'bsv')\n    \u003e\u003e\u003e ]\n    \u003e\u003e\u003e my_key.send(outputs)\n    'dec895d1aa0e820984c5748984ba36854163ec3d6847c94e82a921765c5b23e1'\n```\n\nHere's the transaction https://whatsonchain.com/tx/dec895d1aa0e820984c5748984ba36854163ec3d6847c94e82a921765c5b23e1.\n\n2. OP_RETURN - 100kb size limit now supported:\n\n```\n    \u003e\u003e\u003e import bitsv\n    \u003e\u003e\u003e my_key = bitsv.Key('YourPrivateKeyGoesHere')\n    \u003e\u003e\u003e list_of_pushdata = ([bytes.fromhex('6d01'),  # encode hex to bytes\n                             'New_Name'.encode('utf-8')])  # encode string to utf-8 encoded bytes\n    \u003e\u003e\u003e my_key.send_op_return(list_of_pushdata)  # default fee = 1 sat/byte\n```\n\nThis sets memo.sv name (linked to this bitcoin address) to \"New_Name\" (as per https://memo.sv/protocol)\n\n3. Connect to a local 'fullnode' via JSON-RPC:\n\n```\n    \u003e\u003e\u003e from bitsv import Fullnode\n    \u003e\u003e\u003e fullnode = FullNode(\n            conf_dir='/home/username/.bitcoin/regtest.conf',\n            rpcuser='user',\n            rpcpassword='password',\n            network='regtest')\n```\n\nPossible use cases may include:\n\n    - Rapid transaction broadcasting ~ 200tx/sec):\n    - Regtesting of app in AzurePipelines or Travis CI for example.\n    - Learning / reproducing \"too-long-mempool-chain\" type errors without waiting a long time for confirmations.\n\nThe fullnode object has a complete internal list of all JSON-RPC methods added to __dict__ for code completion and methods return appropriate\nerror messages:\n\n[![Node autocomplete](images/obj_dict.png)]\n\nFor more detailed examples of using the Fullnode class, see [README](https://github.com/AustEcon/bitsv/blob/master/bitsv/network/services/README.rst)\n\nFeatures\n--------\n\n- Python's fastest available implementation (100x faster than closest library)\n- 100kb OP_RETURN transactions made very simple\n- Fully supports 21 different currencies via exchange rate API\n- First class support for storing data in the blockchain\n- Compressed public keys by default\n- Multiple representations of private keys; WIF, PEM, DER, etc.\n- Standard P2PKH transactions\n\nInstallation\n------------\n\nBitSV is distributed on `PyPI` as a universal wheel and is available on Linux/macOS\nand Windows and supports Python 3.5+ and PyPy3.5-v5.7.1+. ``pip`` \u003e= 8.1.2 is required.\n\n\n    $ pip install bitsv  # pip3 if pip is Python 2 on your system.\n\nDocumentation\n-------------\nDocs are hosted by Github Pages and are automatically built and published by Travis after every successful commit to BitSV's master branch.\n\n\nCredits\n-------\n\n- [ofek](https://github.com/ofek/bit)\n- [teran-mckinney](https://github.com/sporestack/bitcash)\n- [joshua Smith](https://github.com/joshua-s)\n- [xloem](https://github.com/xloem)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustecon%2Fbitsv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faustecon%2Fbitsv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustecon%2Fbitsv/lists"}