# Global architecture

Let’s see the typical end-to-end architecture of a Ledger OS application, in the case of an app for a cryptocurrency:

![End-to-end architecture of a Ledger OS application](/device-app/app_architecture.png)
_End-to-end architecture of a LEdger OS application_

Three pieces of software are required:

- A Ledger OS application, written in C, running on a Ledger device
- The wallet app with business logic and typically a GUI, running on a computer or a phone connected to the Ledger device
- A transaction explorer that interfaces between the front-end and the cryptocurrency daemon, running either locally (in the case of a full node) or remotely (light wallet)

If you’re not developing an app adding support for a cryptocurrency, then you can ignore the 3rd piece. Depending on your use case, the wallet app might be a simple daemon or a command line tool, without a GUI.

The Ledger Manager is the service which centralizes the distribution of [Ledger OS](./ledger-os/introduction) applications on Ledger devices. It is the place where both Ledger’s apps and third party apps are distributed to users.

![The Ledger Manager](/device-app/manager.png)
_The Ledger Manager_
