Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/powermobileweb/bitcoinlib
Bitcoin Core RPC compatible, battle-tested .NET library and RPC wrapper for Bitcoin and Altcoins
https://github.com/powermobileweb/bitcoinlib
bitcoin bitcoin-api bitcoin-core bitcoin-payment bitcoind bitcoinlib c-sharp cryptean crypto-library cryptocurren cryptocurrency cryptocurrency-exchanges dash dogecoin dotnet exchange exchange-api litecoin mit-license smartcash
Last synced: about 2 months ago
JSON representation
Bitcoin Core RPC compatible, battle-tested .NET library and RPC wrapper for Bitcoin and Altcoins
- Host: GitHub
- URL: https://github.com/powermobileweb/bitcoinlib
- Owner: powermobileweb
- License: mit
- Created: 2018-08-23T19:42:36.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-08-23T19:56:31.000Z (over 6 years ago)
- Last Synced: 2024-12-20T18:54:17.676Z (about 2 months ago)
- Topics: bitcoin, bitcoin-api, bitcoin-core, bitcoin-payment, bitcoind, bitcoinlib, c-sharp, cryptean, crypto-library, cryptocurren, cryptocurrency, cryptocurrency-exchanges, dash, dogecoin, dotnet, exchange, exchange-api, litecoin, mit-license, smartcash
- Language: C#
- Size: 60.5 KB
- Stars: 8
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BitcoinLib
**.NET Bitcoin & Altcoins library**
## Features
- Compatible with [Bitcoin Core](https://bitcoin.org/en/download) RPC API.
- Strongly-typed structures for complex RPC requests and responses.
- Implicit JSON casting for all RPC messages.
- Extended methods for every-day scenarios where the built-in methods fall short.
- Exposure of all [RPC API's functionality](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list) as well as the extended methods through a single interface.
- Custom RPC exceptions.
- Supports all Bitcoin clones.
- Can operate on unlimited daemons with a single library reference.
- [Bitcoin](http://en.wikipedia.org/wiki/Bitcoin), [Litecoin](http://en.wikipedia.org/wiki/Litecoin), [Dogecoin](http://en.wikipedia.org/wiki/Dogecoin), SmartCash, Dash and other Altcoins included.
- Each coin instance can be fully parametrized at run-time and implement its own constants.
- Demo client included.
- Disconnected raw RPC connector included for quick'n'dirty debugging.
- Handles and relays RPC internal server errors along with their error code.
- Can work without a `.config` file.
- Fully compatible with [Mono](http://www.mono-project.com/).
- [Test Network (testnet)](https://bitcoin.org/en/developer-examples#testnet) and [Regression Test Mode (regtest)](https://bitcoin.org/en/developer-examples#regtest-mode) ready.
- Fully configurable.## Donations
This library took a significant amount of time and effort to build and requires continuous maintenance in order to keep up with changes introduced with every new Bitcoin-Core release. Keep it up by donating at: [15Nb3RhMd13zp5Pc7yngUon83nFtEZUyBA](bitcoin:15Nb3RhMd13zp5Pc7yngUon83nFtEZUyBA?label=BitcoinLib)
## Support
Premium Support is available by our team of experts at: [[email protected]](mailto:[email protected]).
## License
See [LICENSE](LICENSE).
## NuGet packages
BitcoinLib is available on NuGet:
* [BitcoinLib](https://www.nuget.org/packages/BitcoinLib/)
## Versioning
From version 1.4.0, BitcoinLib follows [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html).
## Building from source
To build BitcoinLib from source, you will need either the
[.NET Core SDK or Visual Studio](https://www.microsoft.com/net/download/).### Linux-specific
If you are using Linux you will also need Mono installed
(in order to run Paket). The full install sequence (for Ubuntu)
will be something like [this](https://github.com/powermobileteam/fsharp-hedgehog/pull/153#issuecomment-364325504).### Building & running tests
With Visual Studio you can build BitcoinLib and run the tests
from inside the IDE, otherwise with the `dotnet` command-line
tool you can execute:```sh
dotnet build src/BitcoinLib.sln
```The first time you run it, this will use Paket to restore all
the packages, and then build the code.## Instructions for Bitcoin
- Locate your `bitcoin.conf` file (in Windows it's under: `%AppData%\Roaming\Bitcoin`, if it's not there just go ahead and create it) and add these lines:
```
rpcuser = MyRpcUsername
rpcpassword = MyRpcPassword
server=1
txindex=1
```
- Edit the `app.config` file in the Console test client to best fit your needs. Make sure you also update the `bitcoin.conf` file when you alter the `Bitcoin_RpcUsername` and `Bitcoin_RpcPassword` parameters.## Instructions for Litecoin and other Bitcoin clones
- Perform the same steps as those mentioned above for Bitcoin.
- Litecoin configuration file is: `litecoin.conf` under: `%AppData%\Roaming\Litecoin` and its daemon is: `litecoind`.
- Each coin can be initialized by its own interface specification:
- `IBitcoinService BitcoinService = new BitcoinService();`
- `ILitecoinService LitecoinService = new LitecoinService();`
- Any bitcoin clone can be adopted without any further installation steps with the use of the generic `ICryptocoinService`:
- `ICryptocoinService cryptocoinService = new CryptocoinService("daemonUrl", "rpcUsername", "rpcPassword", "walletPassword");`
- Use `(ICryptocoinService).Parameters` to fully configure each coin pointer at run-time.## Configuration
Sample configuration:
```xml
```