1. I don't want to have to have bitcoin-qt running.
  2. I want the control and error handling capabilities that come when something is running as a service.
  3. I want bitcoind to start when windows starts in the event of a server downage


I want to service main and testnet, which I think won't be an issue since afaik bitcoind listens on both ports. I'm just mentioning this for more information.

1 Answer 1



  1. Download NSSM
  2. Comment out #daemon=1 from bitcoin.conf with comment #incompatible with windows service
  3. Shut down bitcoin-qt, bitcoind, bitcoin-cli to eliminate any confusion
  4. nssm install BitcoinCore "C:\Program Files\Bitcoin\daemon\bitcoind.exe" -datadir=C:\Documents\Data\Bitcoin (use your own path of course)
  5. nssm set BitcoinCore DisplayName Bitcoin Core
  6. nssm set BitcoinCore Description Bitcoin node with a JSON-RPC server
  7. enter image description here
  8. enter image description here


  1. You should be able to see 8333 connections in netstat
  2. You will see bitcoind in your task list under Details
  3. If you go to Service(s), it will take you to this service.
  4. bitcoin-qt still works even in testnet mode
  5. bitcoin-cli still works even in -testnet
  6. Your app still works even in testnet mode

Running mainnet and Testnet both

Repeat the steps for install, but on step 4, use

nssm install BitcoinCoreTestnet "C:\Program Files\Bitcoin\daemon\bitcoind.exe" -testnet=1 -datadir=C:\Documents\Data\Bitcoin

You will then be able to take requests for mainnet on port 8332 and testnet on port 18332

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.