Skip to content

LedgerHQ/vanadium

Repository files navigation

DISCLAIMER

⚠️ THIS IS AN EXPERIMENTAL PROJECT. IT IS INSECURE AT THIS STAGE
Please don't start depending on it, and do not use it in production. Large parts of this project are subject to change.
⚠️

Vanadium

Vanadium is a Risc-V Virtual Machine that runs in an embedded Secure Element.

Vanadium Logo

By outsourcing encrypted, authenticated pages to an untrusted client, it allows to run applications (V-Apps) in the secure element without worrying about the limitations of the embedded platform.

You can write V-Apps without worrying about binary size and memory usage: only the code actually used at runtime will be sent to the device for execution, and page swapping with the client happens transparently between the VM and the VM client.

During development, you will write and test code natively, without relying on an external emulator. This simplifies writing, testing and deploying your code while keeping the majority of it generic, and not tied to a specific platform.

Repository structure

This repository is organized in a monorepo structure.

  • docs - Architecture and technical documentation
  • VM [arm], no-std - The Vanadium Ledger app. It contains the actual Virtual Machine.
  • app-sdk [riscv], no_std - Vanadium V-App SDK. It is used by V-Apps to access all the system services.
  • client-sdk [native] - Vanadium V-App client SDK. V-App Clients use it as a base for their own client crates.
  • common [arm|riscv|native], no_std - Any code that is shared among two or more of the above crates.
  • apps - Complete V-Apps, and their clients
    • test - Simple V-App to test the Vanadium.
    • sadik - A V-App specifically designed to test the various functionality of the Vanadium V-App SDK, and particularly the ECALLs.
    • bitcoin - Grandiose things will happen here, but it's mostly empty at this stage.

In VSCode, opening the vanadium.code-workspace is the most convenient way to work with this repository.

License

This project is licensed under the Apache Licence v2.0.

About

Unlimited power for your apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published