Can someone please give a brief explanation on these? I'm getting very confused with the differences, and every tutorial article I read uses these terms interchangeably (I'm trying to set up a pruned node...)

  • bitcoin-qt
  • bitcoin-cli
  • bitcoind
  • bitcoin-rpc
  • daemon

Thank you!


All of those things are part of the same program, Bitcoin Core.

bitcoin-qt: The GUI version of Bitcoin Core. Most users will use this as it provides a nice Graphical User Interface that uses the Qt framework. It does all of Bitcoin Core's functionality, including being a full node and handling your private keys and transactions.

bitcoind: The Bitcoin daemon. It is the version of Bitcoin Core which can run in the background. It still does all of the full node and wallet things that bitcoin-qt does but is harder to access. bitcoind is primarily used for machines without a GUI (e.g. headless server). It can be accessed and interacted with using the JSON-RPC protocol.

bitcoin-cli: A tool that you can use to interact with bitcoind. It speaks the JSON-RPC protocol that bitcoind uses and lets you send commands to bitcoind and get the results back.

bitcoin-rpc: The Bitcoin Core RPC server. This is part of bitcoind and bitcoin-qt (it must be set explicitly to be enabled in bitcoin-qt). This is the interface that bitcoin-cli interacts with.

daemon: A daemon is any service which runs in the background. bitcoind is a daemon, and so are many other software which run in the background and have no GUI.

  • Nice descriptions, thank you this clears stuff up.
    – 2523454
    Feb 2 '18 at 17:03

All belongs to same application (bitcoin-core) You can download it from bitcoin.org

bitcoin-qt Qt is a cross-platform application and UI framework for developers using C++. It's is used for UI in Bitcoin-Qt. See http://qt-project.org/.


cli: Command line interface


Bitcoind is a headless daemon, and also bundles a testing tool for the same daemon. It provides a JSON-RPC interface, allowing it to be controlled locally or remotely which makes it useful for integration with other software or in larger payment systems


Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details. A procedure call is also sometimes known as a function call or a subroutine call.

daemon Running Bitcoin in background mode (daemon mode)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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