- Last Updated: Mar 21, 2025
- Last Updated By: Michael Turner, Staff Engineer at Provable.
The Provable Python SDK provides python libraries to build applications that interact with the Aleo Network
or use utilize the cryptographic tools available in SnarkVM.
This document provides a public and tentative Roadmap for future changes to the Python SDK. Since this repo is open source, users interested.
- Update & Maintain the SDK to keep current with the latest versions of SnarkVM.
- Add support for Mainnet and Testnet.
- Build Python SDK packages for all available architectures.
- Build extensive tests for all SDK components.
- Republish Python SDK package to PyPi.
- Add support for signing messages over field elements.
- Add the graph key and compute key.
- Add the same methods that exist within the JS SDK for account management.
- Add support for Aleo data and grammatical types (identifiers, etc.) for the following serialization methods:
- to_bytes/from_bytes
- to_bits/from_bits
- to_fields/from_fields`
- Build support for all supported operations on algebraic types (Field, Scalar, and Group).
- Build arithmetic operations into python dunder methods where applicable (
__ge__,__rmul__,__rand__, etc.). - Support for Aleo hash functions.
- Add support for converting between the
Plaintextmonadic type and Python types. - Add support for ciphertext types and mirror the operations available in the JS SDK.
- Enhance the
Transactionclass with more helper methods from theTransactionstruct in SnarkVM to enable inspection of the contents of a transaction. - Enhance the
Transitionclass with more helper methods from theTransitionstruct in SnarkVM to enable inspection of the contents of a transaction.- Support for decryption of private inputs within transactions.
- Support
- Provide a python
REST APIlibrary for interacting with SnarkOS nodes and expanded functionality provided by theProvable APIin both blocking and async flavors.
- Create
WebVMclass that mirrors theVMstruct that has the execution methods supported by theVMstruct. - Expand
Processclass to support all methods available in theProcessstruct in SnarkVM. - Expose all convenience methods on the
Programclass that the correspondingProgramstruct has in SnarkVM. - Create a
Functionclass that mirrors theFunctionCorestruct in SnarkVM to enable inspection of functions.
- Allow users to create
Plaintextstyle objects directly in Python semantics.- Allow python
dictionariesanddataclassesto be converted directly toPlaintextstructs orRecords. - Allow python
liststo be converted directly toPlaintextarrays objects.
- Allow python
- Support export of existing plaintext literals to Python and Numpy types.
- Support explicit conversion between Numpy types and
Literaltypes. - Support conversion of floats to fixed-point types for usage in function inputs.
- Add support for prove_vk and verify_vk methods.
- Add support for downloading and managing parameters manually.