This repository contains the zkFold Symbolic framework. Contents:
symbolic-base
: The core package of the framework, providing the Symbolic compiler and the base symbolic data types;symbolic-examples
: A collection of symbolic code examples for benchmarking and testing;symbolic-ledger
: An implementation of the zkFold Ledger written in Symbolic;symbolic-apps
: Applications and smart contracts built with the framework by the zkFold team;symbolic-cardano
: A package for interfacing with the Cardano blockchain;symbolic-uplc
: A transpiler from UPLC to Symbolic.
The Symbolic framework simplifies development of zero-knowledge applications and smart contracts. Developers can implement their app's business logic in high-level Haskell, and the framework will automatically generate the corresponding zero-knowledge circuits. The framework utilizes a very general intermediate representation of the circuits, supporting a wide range of proving systems.
User documentation can be found at docs.zkfold.io.
If you want to contribute to the project or find out how it works "under the hood", check out package documentation on Hackage.
The package compiles with GHC 9.6.6 and Cabal 3.10.3.0. To build all packages, execute
cabal build all
To run the tests, execute
cabal test all
To run the benchmarks, execute
cabal bench all