Estimated reading time: 2 minutes
User profile
If you are new to developing Ledger embedded apps
Please read this section entirely.
If you already understand BOLOS and Personal Security Devices (PSDs)
You can skip the first paragraph and go to Things to do.
Development phases

Things to know
BOLOS is the operating system behind all Ledger personal security devices. It provides a lightweight, open-source framework for developers to build source code portable applications that run in a secure environment.
Learn about the BOLOS platform
Personal Security Devices (Learn - PSDs)
Ledger Personal Security Devices allows users to store cryptographic secrets and sign transactions securely and conveniently. It is important to understand how they work before coding an embedded application.
Learn about the personal security devices
Things to do
Joining Discord is not required to code your embedded application, but it will be easier to meet with our team and discuss the specifics of your project. Join us on the Ledger’s Discord server and introduce your project in the #nano-app channel.
Process & Requirements
Make sure you understand the Process and follow the Requirements starting here. The Guidelines will also help you on certain technical topics.
Set up the BOLOS development environment
In order to build or compile BOLOS applications for Ledger devices, the appropriate environment must be set up. This environment consists in an SDK and two compilers. The environment is all set in a Docker image.
Code
Embedded applications are coded in C on the Blockchain Open Ledger Operating System (BOLOS).
To develop an embedded application you will need to:
- Have Linux (or a VM running Linux)
- Set up the BOLOS environment (consisting of the Nano S, X or S Plus SDK, and two compilers)
- Either get a physical device or use the Speculos emulator
Other languages are possible (no details here).
Contribute
If you want to improve the documentation you can use the comment box at the bottom of each page, or open a pull request on our repository