Forked from Ofek's awesome Bit library: https://github.com/ofek/bit
In the near-term I do not have the bandwidth to support any major increases in scope. If there are features you'd like added, raise an issue for discussion. It may be that you're best to create your own small library that complements bitsv rather than allowing me to be a bottleneck...
Latest Major Release - 0.11.5 (2021-01-24)
BitSV is so easy to use:
>>> import bitsv
>>> my_key = bitsv.Key('YourPrivateKeyGoesHere') # Defaults to "main" network
>>> my_key.get_balance()
10000000 # satoshis
>>> # Can include a long list of tuples as outputs
>>> outputs = [
>>> # Donate to AustEcon! (Currency conversion via api)
>>> ('1PdvVPTzXmo4cSs68HctLUxAdW917UZtC8', 0.10, 'usd'), # $USD 0.10 as bsv
>>> ('1PdvVPTzXmo4cSs68HctLUxAdW917UZtC8', 0.0001, 'bsv')
>>> ]
>>> my_key.send(outputs)
'dec895d1aa0e820984c5748984ba36854163ec3d6847c94e82a921765c5b23e1'
Here's the transaction https://whatsonchain.com/tx/dec895d1aa0e820984c5748984ba36854163ec3d6847c94e82a921765c5b23e1.
>>> import bitsv
>>> my_key = bitsv.Key('YourPrivateKeyGoesHere')
>>> list_of_pushdata = ([bytes.fromhex('6d01'), # encode hex to bytes
'New_Name'.encode('utf-8')]) # encode string to utf-8 encoded bytes
>>> my_key.send_op_return(list_of_pushdata) # default fee = 1 sat/byte
This sets memo.sv name (linked to this bitcoin address) to "New_Name" (as per https://memo.sv/protocol)
>>> from bitsv import Fullnode
>>> fullnode = FullNode(
conf_dir='/home/username/.bitcoin/regtest.conf',
rpcuser='user',
rpcpassword='password',
network='regtest')
Possible use cases may include:
- Rapid transaction broadcasting ~ 200tx/sec):
- Regtesting of app in AzurePipelines or Travis CI for example.
- Learning / reproducing "too-long-mempool-chain" type errors without waiting a long time for confirmations.
The fullnode object has a complete internal list of all JSON-RPC methods added to dict for code completion and methods return appropriate error messages:
[]
For more detailed examples of using the Fullnode class, see README
BitSV is distributed on PyPI
as a universal wheel and is available on Linux/macOS
and Windows and supports Python 3.5+ and PyPy3.5-v5.7.1+. pip
>= 8.1.2 is required.
$ pip install bitsv # pip3 if pip is Python 2 on your system.
Docs are hosted by Github Pages and are automatically built and published by Travis after every successful commit to BitSV's master branch.