An open API service indexing awesome lists of open source software.

https://github.com/provablehq/sdk

Javascript & Typescript SDK for Zero-Knowledge Application Development
https://github.com/provablehq/sdk

aleo blockchain javascript nodejs sdk typescript wasm zero-knowledge zksnarks

Last synced: 22 days ago
JSON representation

Javascript & Typescript SDK for Zero-Knowledge Application Development

Awesome Lists containing this project

README

          


Website


# Zero-Knowledge Web App SDK

The [Provable SDK](https://github.com/ProvableHQ/sdk) provides tools for building zero-knowledge applications on the
[Aleo](https://aleo.org) blockchain. It re-exports core protocol objects from [SnarkVM](https://github.com/ProvableHQ/snarkVM)
as TypeScript & JavaScript libraries so developers can build Aleo dApps, wallets, servers, and CLI tools entirely in JS/TS.

All of this functionality is demonstrated on [Provable.tools](https://provable.tools).

## Table of Contents

๐Ÿ“ฆ [**Packages**](#packages) โ€” [Provable SDK](#1-provable-sdk---build-zero-knowledge-web-apps) ยท [Create-Leo-App](#2-create-leo-app---zero-knowledge-web-app-examples) ยท [Aleo Wasm](#3-aleo-wasm---zero-knowledge-algorithms-in-javascript--webassembly)

โš™๏ธ [**Features**](#features) โ€” [Roadmap](#roadmap) ยท [Core](#core-features) ยท [Aleo RPC](#aleo-rpc-features) ยท [AI Agents](#ai-agent-support) ยท [Networks](#networks-supported) ยท [Runtimes](#javascript-runtimes--frameworks)

๐Ÿ“š [**Documentation**](#-documentation) โ€” API reference, SDK guide, and tutorials

โค๏ธ [**Contributors**](#%EF%B8%8F-contributors)

---

## Packages

The Provable SDK is divided into three TypeScript/JavaScript packages:

### 1. Provable SDK - Build Zero-Knowledge Web Apps

Provable SDK

The official Provable SDK providing JavaScript/TypeScript tools for creating zero-knowledge applications.

#### โšก Build your own app

Start here with the [Provable SDK Readme](https://github.com/ProvableHQ/sdk#readme) to get started building your
first zero-knowledge web app.

Source: [`@provablehq/sdk`](https://www.npmjs.com/package/@provablehq/sdk)

### 2. Create-Leo-App - Zero-Knowledge Web App Examples

Create Leo App

Create-Leo-App provides zero-knowledge web app examples in common web frameworks such as React. Developers looking to
start with working examples should start here.

Source: [`create-leo-app`](https://github.com/ProvableHQ/sdk/tree/mainnet/create-leo-app)

### 3. Aleo Wasm - Zero-Knowledge Algorithms in JavaScript + WebAssembly

Aleo Wasm

Aleo Wasm is a Rust crate that compiles the Aleo source 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 Node.js. 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.

Source: [`@provablehq/wasm`](https://www.npmjs.com/package/@provablehq/wasm)

---

# Features

## Roadmap

The SDK feature roadmap can be found in the repo milestones below.

### [Milestones](https://github.com/ProvableHQ/sdk/milestones)

## Core Features


๐Ÿ”‘ Account Management
Create, import, and encrypt/decrypt Aleo accounts. Full key derivation chain (PrivateKey, ViewKey, ComputeKey, Address, GraphKey). Password-based private key encryption with key material zeroization for secure memory handling.


โšก Program Execution
Execute arbitrary Aleo programs locally or on-chain. Build and submit execution transactions with zero-knowledge proofs. Offline execution for testing. Dynamic dispatch support.


๐Ÿš€ Program Deployment
Deploy and upgrade Aleo programs to the network. Fee estimation, devnode deployments, and recursive import resolution.


๐Ÿ” Program Inspection
Parse Aleo programs and introspect their structure: list functions, read function input/output types, enumerate mappings with key/value types, inspect record definitions and struct members, and resolve program imports.


๐Ÿ“‹ Aleo Record Management
Full lifecycle management for Aleo records. Decrypt individual or bulk records in parallel. Read record data fields and check ownership. Discover unspent records via serial number and tag verification. Convert between static and dynamic (Merkle-root) record representations. Generate and share record view keys for selective disclosure.


๐Ÿ’ธ Credit Transfers
Private, public, private-to-public, and public-to-private Aleo credit transfers. Record join and split operations.


๐Ÿ›๏ธ Validator Operations
Bond/unbond validators, claim unbonded credits, and set validator state.


๐ŸŒ Network Client
Full REST API client for the Aleo network: query blocks, transactions, programs, mappings, mempool, committee state, state roots, and public balances. Submit transactions and poll for confirmation.


๐Ÿงฎ Cryptographic Primitives
Field, Group, and Scalar types. Hash functions: BHP256/512/768/1024, Pedersen64/128, Poseidon2/4/8. Digital signatures over raw bytes and typed Aleo values. These primitives enable custom cryptographic schemes for Aleo dApps, wallets that support Aleo, and servers and CLI applications that interact with the Aleo network.


โœ… Proof Verification
Single and batch zk-SNARK proof verification. Verify function execution proofs offline.


โœ๏ธ Authorization & External Signing
Build execution and fee authorizations offline for hardware wallets, multi-signature schemes, and custom signing flows. Construct execution requests from externally signed data with multiple input-ID resolution strategies (explicit record view keys, view key derivation, pre-computed input IDs).


๐Ÿ—๏ธ Proving Key Management
Synthesize, cache, fetch, and verify proving/verifying keys. In-memory and file-based keystores. SHA-256 fingerprint verification for key integrity. Offline key provider for air-gapped environments.


๐Ÿ›ก๏ธ Security
Private key material zeroization on drop (Zeroize trait in Rust, Symbol.dispose in TS). libsodium crypto_box_seal encryption for delegated proving and record scanner payloads. Encrypted private key storage with password-based symmetric encryption.

## Aleo RPC Features


โ˜๏ธ Delegated Proving Service
Offload expensive proof generation to a remote proving service. Proving requests and authorizations are encrypted with the service's X25519 public key via libsodium. Supports API key and JWT authentication.


๐Ÿ“ก Record Scanner Service
Privacy-preserving record discovery. Register an encrypted view key with the scanner service, then query for owned records without exposing the view key to the network. Supports revocation, status checking, serial number verification, and filtered queries.


โš–๏ธ Sealance Integration
Merkle tree construction and proof generation for compliance and KYC exclusion proofs using the Sealance compliant stablecoin standard.

## AI Agent Support


Claude Code
GitHub Copilot
Cursor

The Provable SDK is designed to be used by AI coding agents out of the box. The repository ships with built-in **agent skills** ([`.agents/skills/`](https://github.com/ProvableHQ/sdk/tree/mainnet/.agents/skills)), project context ([`.claude/`](https://github.com/ProvableHQ/sdk/tree/mainnet/.claude)), and **SDK documentation** ([`docs/`](https://github.com/ProvableHQ/sdk/tree/mainnet/docs)) โ€” including a [step-by-step guide](https://github.com/ProvableHQ/sdk/tree/mainnet/docs/guide), [API reference](https://github.com/ProvableHQ/sdk/tree/mainnet/docs/api_reference), and [runnable examples](https://github.com/ProvableHQ/sdk/tree/mainnet/docs/examples). Together these give AI assistants the context they need to build Aleo dApps, contribute to the SDK, and generate correct code against the Rust/WASM/TypeScript stack โ€” no manual prompting required. Compatible with any agent framework that supports skill files, including [Claude Code](https://docs.anthropic.com/en/docs/claude-code), GitHub Copilot, and Cursor.

## Networks Supported


Mainnet
Production Aleo mainnet.


Testnet
Aleo testnet for development and testing.

## JavaScript Runtimes & Frameworks


Browser
Node.js
Next.js
Bun
Deno

Full **browser** support with single-threaded and multi-threaded (web worker) modes โ€” multi-threaded uses Rust-native threading via `rayon` for significant performance improvements during proof generation. First-class **Node.js** support for server-side Aleo applications, CLI tools, and backend services. Compatible with **Next.js**, **Bun**, and **Deno**.

---

# ๐Ÿ“š Documentation

| Resource | Description |
|----------|-------------|
| [Aleo RPC / Provable API](https://docs.provable.com) | Documentation on interacting with the Aleo network via Provable's API & RPC endpoints. |
| [SDK Guide](https://developer.aleo.org/sdk/guides/getting_started) | Core concepts for executing zero-knowledge programs on the web, with detailed examples of how to build apps using Aleo. |

---

# โค๏ธ Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Mike Turner
Mike Turner

๐Ÿ’ป ๐Ÿšง ๐Ÿ’ฌ ๐Ÿ‘€
Brent C
Brent C

๐Ÿ’ป ๐Ÿšง ๐Ÿ’ฌ ๐Ÿ‘€
Collin Chin
Collin Chin

๐Ÿ’ป ๐Ÿšง ๐Ÿ’ฌ ๐Ÿ‘€
Howard Wu
Howard Wu

๐Ÿ’ป ๐Ÿค” ๐Ÿ”ฌ ๐Ÿ‘€
Raymond Chu
Raymond Chu

๐Ÿ’ป ๐Ÿค” ๐Ÿ”ฌ ๐Ÿ‘€
d0cd
d0cd

๐Ÿ’ป ๐Ÿค” ๐Ÿ”ฌ ๐Ÿ‘€
Alessandro Coglio
Alessandro Coglio

๐Ÿ“– ๐Ÿ”ฌ ๐Ÿ‘€


a h
a h

๐Ÿ’ป ๐Ÿ“–
Anthony DiPrinzio
Anthony DiPrinzio

๐Ÿ’ป
Ali Mousa
Ali Mousa

๐Ÿ’ป
Ivan Litteri
Ivan Litteri

๐Ÿ’ป
Nacho Avecilla
Nacho Avecilla

๐Ÿ’ป
ljedrz
ljedrz

๐Ÿ’ป
Facundo Olano
Facundo Olano

๐Ÿ’ป


Nicolas Continanza
Nicolas Continanza

๐Ÿ’ป
Mike
Mike

๐Ÿ’ป
Javier Rodrรญguez Chatruc
Javier Rodrรญguez Chatruc

๐Ÿ’ป
Pablo Deymonnaz
Pablo Deymonnaz

๐Ÿ’ป
Bob Niu
Bob Niu

๐Ÿ’ป
sptg
sptg

๐Ÿ’ป
Hamza Khchichine
Hamza Khchichine

๐Ÿ’ป


Kendrick
Kendrick

๐Ÿ’ป
Dependabot
Dependabot

๐Ÿ’ป
All Contributors
All Contributors

๐Ÿ“–






Add your contributions



This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!