Skip to content
@Occulta-zk

Occulta

Zero-knowledge building blocks for smart contracts on Stellar — Groth16 verification, Poseidon hashing, and shielded state for Soroban.

Occulta

Zero-knowledge building blocks for smart contracts on Stellar.

Occulta lets a Stellar developer add zero-knowledge features to a contract without writing pairing mathematics or porting a hash function by hand. It builds directly on Stellar's native cryptographic host functions: BLS12-381 (CAP-59), BN254 (CAP-74), and Poseidon (CAP-75).

Testnet only. Unaudited. Not for real assets.

Repositories

Repository Language What it does
occulta-contracts Rust On-chain layer: Groth16 verification over BLS12-381 and BN254, Poseidon hashing on native host functions, incremental Merkle trees, nullifier registry, and deployable registry and shielded-pool contracts.
occulta-sdk TypeScript Proving toolchain: Circom and snarkjs proof generation, byte-level encoding to Soroban types, verification-key codegen, plus the indexer and relayer services.
occulta-app TypeScript Browser playground and reference applications: compile a circuit, prove in-browser, verify on-chain.

How they fit together

The dependency chain runs one way: occulta-contracts <- occulta-sdk <- occulta-app.

The contracts define what the chain accepts. The SDK generates proofs off-chain and encodes them into exactly the byte layout the contracts expect, and runs the two services a privacy application cannot work without: an indexer, because Stellar RPC retains contract events for at most seven days, and a relayer, because a user paying their own transaction fee reveals the identity the proof was meant to hide. The app calls the SDK and contains no cryptography of its own.

The repositories are joined by committed test fixtures, which prove the Rust and TypeScript implementations of the same function agree byte for byte, and by a versioned deployments file listing contract IDs and verification-key hashes.

Use cases

Private voting, anonymous allowlist claims, reusable KYC attestation, confidential payroll, proof of reserves.

Contributing

Issues are scoped, sized, and documented with acceptance criteria. Every cryptographic change requires a fixture proving it matches the reference implementation. See CONTRIBUTING.md in each repository.

Licence

Apache-2.0.


This is independent software, not affiliated with, sponsored or endorsed by the Stellar Development Foundation.

Popular repositories Loading

  1. occulta-sdk occulta-sdk Public

    TypeScript proving toolchain for zero-knowledge apps on Stellar: Circom/snarkjs proof generation, verification-key codegen for Soroban, plus indexer and relayer services. Testnet only, unaudited.

    TypeScript

  2. occulta-app occulta-app Public

    Browser playground and reference apps for zero-knowledge on Stellar — compile a circuit, prove in the browser, verify on-chain. Private voting, anonymous claims, attestation, confidential payroll.

    TypeScript

  3. occulta-contracts occulta-contracts Public

    Soroban contracts and Rust crates for zero-knowledge on Stellar: Groth16 verification over BLS12-381 and BN254, Poseidon hashing on native host functions, and shielded state. Testnet only, unaudited.

    Rust

  4. .github .github Public

    Organization profile and shared community health files for Occulta.

Repositories

Showing 4 of 4 repositories

Top languages

Loading…

Most used topics

Loading…