ZK-Gated Compliance
on Stellar

A verification layer for tokenized real-world assets. Bridge privacy and strict regulatory requirements instantly with zero-knowledge proofs.

Start verifying
Platform

Bridging Privacy & Compliance

Zero-Knowledge

Verify investor accreditation and compliance without ever revealing the underlying sensitive data on the public ledger.

Native to Stellar

Seamlessly interacts with Soroban smart contracts, enabling atomic settlement for tokenized real-world assets.

Institutional Grade

Built from the ground up for financial institutions requiring strict regulatory adherence and high throughput.

Live Demo

Try Verum Now

Generate a real zero-knowledge eligibility proof and authorize a Stellar trustline on-chain — without revealing your private data.

Issuer Configuration

Active Eligibility Rules

These rules are enforced cryptographically on-chain. No identity documents are collected or stored.

Accreditation

Accredited investors only

Jurisdiction

US · GB · CA · DE

Min. Capital

$50,000 committed

Merkle Root

0x2356709c...e6488

Enter a funded Stellar testnet account secret key. Generate one free at lab.stellar.org.

Developers

How it works

A holder commits their eligibility facts once as a single hash. To request authorization, they generate a Noir circuit proof. A Soroban contract verifies the proof on-chain and authorizes the trustline automatically.

  • Holder commits eligibility facts as a Pedersen hash — no documents sent
  • Noir circuit proves accreditation, jurisdiction, and capital in one proof
  • Verum Gate verifies on-chain via BN254 and calls SetTrustLineFlags
verum_circuit/src/main.nr
// Single proof, four eligibility checks
fn main(
  accredited_flag: Field,   // private
  country_code: Field,      // private
  committed_capital: u64,  // private
  secret_nonce: Field,      // private
  commitment: pub Field,    // public
  merkle_root: pub Field,   // public
  min_capital_threshold: pub u64
) {
  // 1. Commitment binding
  assert(pedersen_hash([...]) == commitment);
  // 2. Accreditation equality
  assert(accredited_flag == 1);
  // 3. Jurisdiction Merkle membership
  assert(computed_root == merkle_root);
  // 4. Capital range proof
  assert(committed_capital >= min_capital_threshold);
}