Links

Circuit developer

This is an entity that prepares circuits for Proof Market. The most efficient way to create a circuit definition for Proof Market is zkLLVM circuit compiler. You can find the required dependencies and build instructions in the zkLLVM's repository.
Anyone can generate circuits. They are serialized & published on Proof Market, allowing reuse of the circuits by all proof requesters.

Create a circuit

Write a circuit and compile it with zkLLVM:
make -C ${ZKLLVM_BUILD:-build} <circuit target name> -j$(nproc)
For more information on circuit development, read the zkLLVM documentation.

Prepare a statement with a circuit description for Proof Market

Circuits are stored on Proof Market in the form of statements. Example statements can be found in the ./example directory.
python3 scripts/prepare_statement.py \
--circuit <zkllvm output> \
--type <circuit type> \
--output <statement description file> \
--name <statement name> \
--private | --public

Publish a statement on Proof Market

Sign up and keep authentication files in order to use the following command line tools.
You can find an authentication file example in the /example directory.
The statement can be published on Proof Market via the Python script statement_tools.py:
$ python3 scripts/statement_tools.py push
--file <json file with statement description>
Statement from /opt/zkllvm-template/build/template.json was pushed.

Retrieving statements

A list of all available statements can be obtained by this command:
python3 scripts/statement_tools.py get
To retrieve a selected statement/circuit definition and its metadata uploaded upon the statement's publishing:
python3 scripts/statement_tools.py get \
--key <key of the statement> \
--output <output file>