---
agent_config:
  entry_point:
    label: Agent Instructions
    url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/CLAUDE.md
    role: orchestrator
  instruction_files:
    - label: Embedded Constraints
      url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/EMBEDDED.instructions.md
      scope: "*.c, *.h, *.rs"
    - label: C Rules
      url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/C.instructions.md
      scope: "*.c, *.h"
    - label: Rust Rules
      url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/RUST.instructions.md
      scope: "*.rs"
    - label: Test Rules
      url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/TEST.instructions.md
      scope: "*.py"
    - label: Review Checklist
      url: https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/REVIEW.instructions.md
      scope: "*"
---

## Agent Instructions

**Entry point:** [Agent Instructions](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/CLAUDE.md) (orchestrator)

### Instruction Files

- [Embedded Constraints](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/EMBEDDED.instructions.md) — scope: `*.c, *.h, *.rs`
- [C Rules](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/C.instructions.md) — scope: `*.c, *.h`
- [Rust Rules](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/RUST.instructions.md) — scope: `*.rs`
- [Test Rules](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/TEST.instructions.md) — scope: `*.py`
- [Review Checklist](https://raw.githubusercontent.com/LedgerHQ/ledger-app-ai-instructions/master/instructions/REVIEW.instructions.md) — scope: `*`

# Getting started

In this section of the Developer Portal, you will find the resources to build, test, and submit Rust and C apps, Ethereum plugins, and Cloned coins apps, compatible with all Ledger devices.

> **Note:** **Rust is mandatory for all new device app projects.** C remains supported as a reference for teams maintaining existing C apps.

## Reach an agreement with our team

### 1. Contact us and introduce your project

[Fill in this form](https://tally.so/r/mORpv8) to introduce your project. We’ll get back to you to align on your device app development and its integration in . After meeting with our teams, you’ll be directed to one of the following paths.

### 2.a. Ledger Development

You can sign a contract with Ledger for development of your device app and full support of your blockchain in .

This option includes:

- Development of your device app with Clear Signing for transactions
- Integration into , including the features defined in the SOW and the relevant  services
- Ongoing maintenance and updates of the integration
- Mandatory security audits for each device app update, managed within Ledger’s process
- Direct collaboration with Ledger’s engineering team throughout the project

### 2.b. Autonomous Development

If an agreement with Ledger is not feasible, you can still develop a device app on your own.

**What to expect**

- Every device app must pass a security audit before it can appear on the  “My Ledger” app list.
- You will build a device app compatible with third-party wallets; users won’t be able to manage their assets in  unless an agreement is signed later.

**Security audit**

Before publication, your app must go through a functional and security audit. The audit is performed by one of our approved partners, at your expense. Both partners follow Ledger specifications and deliver a full report including potential vulnerabilities.

**Audit partners**

When your device app is ready for audit, contact one of our partners:

- [Kudelski IoT](https://www.kudelski-iot.com/services-and-systems/ledger-security-audit)
- [Quarkslab](https://www.quarkslab.com/) — [contact them here](mailto:qb_ledger@quarkslab.com)

> **Note:** Ensure your device app meets all necessary requirements and is fully tested before initiating a security audit with our partners.

**Agreement details**

When contracting with an auditor, align on:

- **Time** — When the audit can start
- **Cost** — The audit is entirely at your expense
- **Maintenance** — Include a clause for updates or plan to sign a new contract for major updates. Otherwise, Ledger will not update your app and it may be delisted from the My Ledger app list if it becomes incompatible.

> **Note:** Ledger is not a party to the contract between you and the auditor.

## Tools and boilerplates

- To learn how to quickstart a project with the Ledger VS code extension, read [this guide](./beginner/vscode-extension). The extension makes the environment set up, the app building, and the tests very easy.
- To start developing your project with the boilerplates, go to the How-to section in "Integration walkthroughs". You will find [the app boilerplate](./integration/how-to/app-boilerplate) (Rust is mandatory for new projects; C is kept as reference for existing apps), [the Ethereum plugin doc](./integration/how-to/plugin), and [the Cloned coins apps integration process](./integration/how-to/clone).
- To enable AI-assisted development with Ledger's embedded coding rules in your repo (GitHub Copilot, Cursor, and compatible agents), see the [ledger-app-ai-instructions repository](https://github.com/LedgerHQ/ledger-app-ai-instructions).

## Technical information

### Languages

| Component                                         | Developing language                                                |
| ------------------------------------------------- | ------------------------------------------------------------------ |
| [Ledger OS](./explanation/ledger-os/introduction) | `C`                                                                |
| Applications                                      | `Rust` (mandatory for new projects) / `C` (existing projects only) |
| Plugins                                           | `C`                                                                |
| Tools (including tests)                           | `Python` (mostly)                                                  |

### Data formats

| Component                   | Format |
| --------------------------- | ------ |
| CI (GitHub Workflows)       | `YAML` |
| `ledger_app.toml` manifests | `TOML` |
| App database                | `JSON` |
