If I want to create a client only, C# desktop application, what are my options for working with Bitcoin?

  • I could try to port BitcoinJ, which seems like a lot of overhead in terms of initial effort and keeping the project up to date.
  • I could try to create a local Bitcoin process which runs a tiny BitcoinJ-based server, and talk to it from C#.

Neither of these seem appealing.

  • I could use the Blockchain API.
  • I could set up my own server and run the wallets on the server.

Neither of these seem appealing either.

Anyone know of an easier way to run a Bitcoin client without a full blockchain using C#? I would ideally like users to retain control over their wallets, with the client code finding incoming payments and facilitating the sending of coins.

  • 1
    Why is it important that it be written in C#? Commented Apr 2, 2014 at 12:56
  • 2
    For LoB desktop apps, C#/WPF is the weapon of choice. You would need a reason to deviate from that. Java sucks for desktop apps, C++ is hopelessly unproductive for desktop apps. HTML5+JS might be an option, but that would be a bit limiting.
    – Avram
    Commented Apr 3, 2014 at 0:41
  • Well, having a bunch of existing code in another language would seem like a pretty good reason to me. But what do I know? Commented Apr 3, 2014 at 0:43
  • 1
    Possibly, but it would be a little bit like the tail wagging the dog.
    – Avram
    Commented Apr 3, 2014 at 0:44
  • @Avram as the author of BitcoinLib (github.com/GeorgeKimionis/BitcoinLib) I was contacted by another C# developer who wants to do exactly the same thing as you, you will find my e-mail in my GitHub profile page so please drop me a line there, I can bring you guys in touch and maybe you could team up and build this thing together.
    – user11221
    Commented Apr 8, 2014 at 22:25

2 Answers 2


Have you guys see this recent GitHub? I too have been poking around looking for a standalone library.


I have it downloaded, just trying to fix dependencies so I can compile. Looks promising.


NBitcoin supports connection to the bitcoin network.

NBitcoin Github : https://github.com/NicolasDorier/NBitcoin

NBitcoin Nuget : https://www.nuget.org/packages/NBitcoin/

Intro : http://www.codeproject.com/Articles/768412/NBitcoin-The-most-complete-Bitcoin-port-Part-Crypt

Stealth Payment, and BIP38 : http://www.codeproject.com/Articles/775226/NBitcoin-Cryptography-Part

How to build transaction : http://www.codeproject.com/Articles/835098/NBitcoin-Build-Them-All

Using the NBitcoin Indexer : http://www.codeproject.com/Articles/819567/NBitcoin-Indexer-A-scalable-and-fault-tolerant-blo

How to Scan the blockchain : http://www.codeproject.com/Articles/784519/NBitcoin-How-to-scan-the-Blockchain (You can ignore the ScanState part)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.