Bitcoinlib
Bitcoin Core RPC compatible, battle-tested .NET library and RPC wrapper for Bitcoin and Altcoins
- 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. - ... The project is written primarily in C#, distributed under the MIT License license, first published in 2014. Key topics include: bitcoin, bitcoin-api, bitcoin-core, bitcoin-payment, bitcoind.
BitcoinLib
.NET Bitcoin & Altcoins library
Features
- Compatible with Bitcoin Core 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 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, Litecoin, 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
.configfile. - Fully compatible with Mono.
- Test Network (testnet) and Regression Test Mode (regtest) ready.
- Fully configurable.
Support
Premium Support is available by our team of experts at: support@cryptean.com.
License
See LICENSE.
NuGet packages
BitcoinLib is available on NuGet:
Versioning
From version 1.4.0, BitcoinLib follows Semantic Versioning 2.0.0.
Building from source
To build BitcoinLib from source, you will need either the
.NET Core SDK or Visual Studio.
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:
shdotnet build
Instructions for Bitcoin
- Locate your
bitcoin.conffile (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.configfile in the Console test client to best fit your needs. Make sure you also update thebitcoin.conffile when you alter theBitcoin_RpcUsernameandBitcoin_RpcPasswordparameters.
Instructions for Litecoin and other Bitcoin clones
- Perform the same steps as those mentioned above for Bitcoin.
- Litecoin configuration file is:
litecoin.confunder:%AppData%\Roaming\Litecoinand 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).Parametersto fully configure each coin pointer at run-time.
Configuration
Sample configuration:
xml<?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <!-- BitcoinLib settings start --> <!-- Shared RPC settings start --> <add key="RpcRequestTimeoutInSeconds" value="10" /> <!-- Shared RPC settings end --> <!-- Bitcoin settings start --> <add key="Bitcoin_DaemonUrl" value="http://localhost:8332" /> <add key="Bitcoin_DaemonUrl_Testnet" value="http://localhost:18332" /> <add key="Bitcoin_WalletPassword" value="MyWalletPassword" /> <add key="Bitcoin_RpcUsername" value="MyRpcUsername" /> <add key="Bitcoin_RpcPassword" value="MyRpcPassword" /> <!-- Bitcoin settings end --> <!-- BitcoinLib settings end --> </appSettings> </configuration>
Bitcoin Core resources
Contributors
Showing top 12 contributors by commit count.
