Skip to main content

Core API

The core API provides basic functionality for ZK applications.

Assertion Functions

// Assert value equals 1 (true)
void assert_one(int value);

// Assert value equals 0 (false)
void assert_zero(int value);

// Assert value is a compile-time constant
void assert_constant(int value);

Helper Functions

// Conditional selection (oblivious)
int oblivious_if(bool cond, int t, int f);

// Minimum (oblivious)
int oblivious_min(int a, int b);

// Maximum (oblivious)
int oblivious_max(int a, int b);

Debug Functions

// Print string to debug output
void print_str(const void* str, int len);
void println_str(const void* str, int len);

// Dump memory for inspection
void dump_memory(const void* data, int len);

Rust API

use ligetron::*;

// Assertions
assert_one(value);
assert_zero(value);
assert_constant(value);

// Debug output
print_str(b"Hello");
println_str(b"World");

// Get command line arguments
let args = get_args();
let arg0 = args.get_as_bytes(0);
let arg1_int = args.get_as_int(1);