Initialize the ZK verifier contract
fn initialize(env: soroban_sdk::Env, admin: soroban_sdk::Address)
Generate a commitment hash from two inputs (SHA-256 based) Combines two 32-byte inputs and hashes them together on-chain
fn poseidon_commit(
env: soroban_sdk::Env,
input_a: soroban_sdk::BytesN<32>,
input_b: soroban_sdk::BytesN<32>,
) -> soroban_sdk::BytesN<32>
Verify a reserve attestation proof Proves: reserves >= circulating supply without revealing exact amounts
fn verify_reserve_proof(
env: soroban_sdk::Env,
reserve_commitment: soroban_sdk::BytesN<32>,
circulating_commitment: soroban_sdk::BytesN<32>,
proof_data: soroban_sdk::Vec>,
) -> bool
Verify KYC completion without exposing personal data Uses Association Set membership proof
fn verify_kyc_proof(
env: soroban_sdk::Env,
user_commitment: soroban_sdk::BytesN<32>,
asp_name: soroban_sdk::Symbol,
merkle_proof: soroban_sdk::Vec>,
merkle_root: soroban_sdk::BytesN<32>,
) -> KYCProof
Verify OFAC/sanctions clearance without revealing identity Proves: address is NOT on sanctions list
fn verify_ofac_clearance(
env: soroban_sdk::Env,
address_commitment: soroban_sdk::BytesN<32>,
cleared_pool_root: soroban_sdk::BytesN<32>,
membership_proof: soroban_sdk::Vec>,
) -> bool
Verify T-bill backing for XQBUSD mint Proves: user's TreasuryDirect holdings >= requested mint amount
fn verify_tbill_backing(
env: soroban_sdk::Env,
user_commitment: soroban_sdk::BytesN<32>,
mint_amount_commitment: soroban_sdk::BytesN<32>,
holdings_proof: soroban_sdk::Vec>,
plaid_attestation_hash: soroban_sdk::BytesN<32>,
) -> bool
Register a nullifier to prevent double-spending
fn register_nullifier(
env: soroban_sdk::Env,
nullifier: soroban_sdk::BytesN<32>,
) -> bool
Register an Association Set Provider (ASP)
fn register_asp(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
name: soroban_sdk::Symbol,
merkle_root: soroban_sdk::BytesN<32>,
member_count: u64,
compliance_standard: soroban_sdk::Symbol,
)
Get the current reserve attestation
fn get_reserve_attestation(env: soroban_sdk::Env) -> Option
Get verification statistics
fn get_verification_stats(env: soroban_sdk::Env) -> (u64, u64)
Verify a complete privacy-preserving mint request Combines: KYC + OFAC + T-bill backing in one call
fn verify_compliant_mint(
env: soroban_sdk::Env,
user_commitment: soroban_sdk::BytesN<32>,
mint_amount_commitment: soroban_sdk::BytesN<32>,
kyc_proof: soroban_sdk::Vec>,
kyc_asp_root: soroban_sdk::BytesN<32>,
ofac_proof: soroban_sdk::Vec>,
ofac_cleared_root: soroban_sdk::BytesN<32>,
tbill_proof: soroban_sdk::Vec>,
plaid_attestation: soroban_sdk::BytesN<32>,
) -> bool