The Aleo SDK provides tools for building zero knowledge applications. It consists of several TypeScript & JavaScript libraries which provide the following functionality:
- Aleo account management
- Web-based program execution and deployment
- Aleo credit transfers
- Management of program state and data
- Communication with the Aleo network
All of this functionality is demonstrated on Aleo.tools.
The Aleo SDK is divided into three Typescript/Javascript packages
The official Aleo SDK providing Javascript/Typescript tools for creating zero knowledge app.
Start here with the Aleo SDK Readme to get started building your first zero knowledge web app.
Source: sdk/sdk
Create-aleo-app provides zero-knowledge web app examples in common web frameworks such as React. Developers looking to start with working examples should start here.
You can start with a template by running
npm create aleo-app@latest
Source: sdk/create-aleo-app
Aleo Wasm is a Rust crate which compiles Aleo code responsible for creating and executing zero knowledge programs into WebAssembly.
When compiled with wasm-pack
JavaScript bindings are generated for the WebAssembly allowing Aleo zero
knowledge programs to be used in the browser and NodeJS. This package is available on NPM (linked above). The Aleo WASM
Readme provides instructions for compiling this crate and using it in web projects for those interested in building from
source.
❗ Currently program execution is only available in web Browsers. However account, program and data management within NodeJS is functional.
Source: sdk/wasm
API Documentation, tutorials for the Aleo SDK, and documentation on how to build Leo and Aleo Instructions programs can be found on the Aleo Developer Docs page.
The SDK Readme provides concepts core to executing zero knowledge programs in the web and several detailed examples of how to use the SDK to build web apps using Aleo.
The Aleo Wasm Readme provides instructions for compiling the Aleo Wasm crate and using it in web projects. Those who want to build from source or create their own WebAssembly bindings should start here
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!