Releases: ProvableHQ/sdk
v0.10.0
Mainnet Release Changes b4b599cb → 9ff7cdea)
Testnet Release Changes b4b599cb → 030ee49)
Features
- Off-chain SNARK Proof Verification (#1263) — New snarkVerify and snarkVerifyBatch WASM functions plus TypeScript wrappers (verifyProof, verifyBatchProof) enable verifying Varuna V2 proofs without requiring programs to be deployed on-chain.
Includes a new Proof WASM type with string/bytes serialization, VerifyingKey.verify() and VerifyingKey.verifyBatch() convenience methods, automatic Aleo-type-to-field conversion for inputs, and updated React/Node/extension templates with
working examples. - Multi-Party Computation (MPC) Support (#1217) — New computeExternalSigningInputs function computes the inputs needed for multi-party Request::sign computations. Includes buildExecutionRequestFromExternallySignedData for constructing
authorizations from externally signed data, support for building proving requests from execution requests, and dynamic_record as a signing input type. - Value Type Export (#1258) — The Value type is now exported through the WASM layer to TypeScript with serialization methods (fromString, toString, toBytesLe, fromBytesLe), type introspection (isPlaintext, isRecord, isFuture, valueType), field
conversion (toFields, toFieldsRaw, toBitsLe), and variant extraction (toPlaintext, toRecordPlaintext, fromPlaintext, fromRecordPlaintext). - Dynamic Dispatch Support — WASM support for dynamic dispatch variant types (DynamicRecord, DynamicFuture, RecordWithDynamicID, ExternalRecordWithDynamicID) with dot-delimited type strings matching snarkVM serialization. Includes
DynamicRecord re-export from snarkVM with JS/TS tests for all variant types. - Dynamic dispatch target auto-resolution in inputs (#1237) — New utility function for converting program and function names to field elements, used for dynamic dispatch target resolution.
- Consensus V14 Deployment Handling (#1230) — Deployments now handle Consensus V14 correctly, including record verifying key inclusion for V14+ and proper devnode deployment construction per consensus version.
- Import Resolution for Dynamic Dispatch (#1264) — resolve_imports now walks all keys in the provided imports object, not just the top-level program's statically declared imports. This enables dynamic dispatch targets to be included without
being declared via import statements. Includes validation for key/ID mismatches, explicit errors for missing static dependencies, and a top_level_program parameter to prevent edition conflicts.
Bug Fixes
- JWT Refresh URL (#1256, #1252) — Fixed RecordScanner and AleoNetworkClient JWT refresh to derive the URL from the user-configured host origin instead of hardcoding api.provable.com or appending to the scanner path. Self-hosted and staging
environments now work correctly.
Interface Changes
- KeyLocator Restructured (#1240) — Replaced the opaque locator: string in the keystore interface with a structured discriminated union (ProvingKeyLocator, VerifyingKeyLocator, TranslationKeyLocator) including program, function name, edition,
amendment, and network fields. Adds input validation, validateNonNegative for numeric fields, and narrows getProvingKey/getVerifyingKey to accept only the correct locator type. Breaking change to the KeyStore interface.
Dependency Updates
- webpack 5.103.0 → 5.104.1
- flatted 3.3.3 → 3.4.2
- rustls-webpki 0.103.9 → 0.103.10
- next 15.5.10 → 15.5.14
v0.9.18
Features
- Updates the testnet SDK to SnarkVM tag 4.5.0
- Persistent Key Storage: Adds a KeyStore interface that automatically stores Proving and Verifying keys in persistent storage during operation.
Examples:
Private Transfers
Create-leo-app example of running private functions are demonstrated in both react and node.js create-leo-app.
E2E Private Application Example
Create-leo-app example of e2e building a fully private web app in aleo
v0.9.17
Features
- Updates the testnet SDK to SnarkVM tag testnet-4.5.4
- Persistent Key Storage: Adds a KeyStore interface that automatically stores Proving and Verifying keys in persistent storage during operation.
Examples:
Private Transfers
Create-leo-app example of running private functions are demonstrated in both react and node.js create-leo-app.
E2E Private Application Example
Create-leo-app example of e2e building a fully private web app in aleo
v0.9.16
Description
SDK release v0.9.16 is a release that adds access to major privacy preserving services within the SDK.
Features
Proving and Record Scanning.
- Add the ability to build and submit encrypted proving requests to a TEE protected delegated prover, ensuring no proof material is exposed to the delegated prover.
- Add the ability to specify FeeMaster usage when creating delegated proving requests.
- Adds a record scanner interface to interact with TEE protected record scanning, ensuring key material is inaccessible to anyone but the Aleo account holder. This interface allows Aleo account holders to register with the record scanning service and use it to get all records they've generated in their lifetime on Aleo.
- Adds the ability to validate aleo address strings
Documentation & Usage Examples
- Adds usage examples of how to use the SDK to execute credits.aleo functions within nodeJS and web app contexts (thanks to @marshacb)
- Adds documentation of how to use private TEE backed Delegated Proving and Record Scanning
Fixes
- Patches several dependabot flagged security issues in external dependecies.
v0.9.15
Description
SDK release v0.9.15 fixes several high priority issues related to local proving.
Fixes
- Fixes a recursion bug in
wasmwhen resolving imports. - Fixes errors in local proving by increasing the maximum
wasmmemory to U32::MAX (~4.3gb) eliminating thread deadlocks and errors in using/inserting the inclusion prover - Changes the XmlHttpRequest polyfill from a basis on
sync-requesttoxmlhttprequest-sslsolving several typescript module resolution errors - Adds testing of
transfer_privateto the SDK CI
v0.9.14
Description
SDK release v0.9.14 is a patch release that fixes several issues and introduces a few minor features
Fixes
- Fixes an infinite recursion bug in
getProgramImportsin the case of circular program dependencies. - Fixes errors in
wasmmultithreading introduced caused by changes in newer versions of Rust nightly by reverting the Rust version to a version compatible with the features required to achievewasmbased multithreading. - Fixes a
check feebug that would check public balances erroneously when attempting to pay with a private fee. - Updates errors in Sealance merkle tree documentation
Features
- Add the ability to get address for programs by adding a
fromProgramIdfunction to theAddressobject - Adds the ability to rotate JWT tokens for provable services which require authentication tokens
v0.9.13
Description
SDK release v0.9.13 upgrades its SnarkVM version for its testnet and mainnet binaries to SnarkVM tag 4.4.0 and adds several development features for developing against a local devnet with the SDK
Features
- Upgrades the core SnarkVM dependency to v4.4.0
- Adds new methods for upgrading programs on the Aleo network
- Adds support for proofless execution transactions that can be used with Aleo Devnode
- Adds support for quick deployments to Aleo Devnode
- Adds a create-leo-app example for using Aleo Devnode with the SDK
- Adds a utility function for converting string arrays to big int arrays to SealanceMerkleTree class and adds formatting for Sealance Merkle Proofs
v0.9.12
Description
SDK release v0.9.12 is a minor release upgrading its testnet package to SnarkVM tag 4.4.0 and fixing errors in record usage for private fee transfers.
Features
- Successfully split Testnet and Mainnet to use different SnarkVM versions
- Upgrade to
SnarkVM v4.4.0for testnet - Continued usage of
SnarkVM v4.3.1for mainnet
- Upgrade to
Fixes
- Fixes bugs in record usage when paying private fees
- Fixes to
AleoKeyProviderobject
v0.9.11
Description
v0.9.11 is a patch release fixing some errors in the buildTransactionFromAuthorization function and adding encapsulated functionality to the ProgramManager for easy estimation of fees.
Changelog
- Fixes errors in the
buildTransactionFromAuthorizationfunction by adding the ability to call REST endpoints to collect data for the inclusion proof. - Encapsulates fee estimation functions in the program manager.
- Adds documentation of new fee estimation functions via docstrings.
- Adds a new
create-leo-appexample showing how to use thebuildTransactionFromAuthorizationfunction. - Removes the need to specify a fee for the
ProvingRequestfunction.
v0.9.10
Description
v0.9.10 is a release compatible with the SnarkVM v4.3.1.
Changelog
- Upgrades SnarkVM to
v4.3.1 - Add the ability to generate proofs with record inputs %100 offline by enabling the Inclusion Proving Key to be passed into
wasmexternally. - Adds the ability to set test consensus heights upon initialization of
wasmallowing the SDK to be used to test against devnets. - Adds
toBytesRaw/fromBytesRawto existingLiteralandArraytypes including arrays enabling signatures over the raw bytes of these types in order allow signing or hashing of the raw bytes that represent the type without any other bytes identifying the length. - Support for loading
mainnetandtestnetnetworks dynamically. - Support for fast fee estimation and support for estimating fees from authorizations.
- Support for building executions from authorizations, enabling signatures and authorizations to built offline.
- Integration ofSsealance compliance tools.