Anchor programs for the Opaque protocol on Solana: stealth payments (DKSAP), ZK reputation (PSR V2), cross-chain announcements (UAB/Wormhole), ONS naming, the relayer market, the privacy pool, and conditional disclosure.
Protocol design lives in opaquecash/spec;
integrate via the @opaquecash/* SDK; developer
docs at docs.opaque.cash.
Experimental software, devnet only. See DISCLAIMER.md.
| Program | Address | Spec |
|---|---|---|
stealth-registry |
E9LBRG5eP2kvuNfveouqQ9tA5P6nrpyLyWFjH9MFYVno |
CSAP |
stealth-announcer |
HGFn2fH7bVQ5cSuiG52NjzN9m11YrB3FZUfoN9b9A5jf |
CSAP / UAB |
schema-registry |
FbgMJYGWnLKLcrKYS1NxM5uER1ihQkYLMTLs4STuDMWB |
PSR |
attestation-engine-v2 |
4T9kPCVCFGdEuLpEqRJihsPCbEEo2LWWDEPFvUESEqtM |
PSR |
groth16-verifier |
6mFaKyp7F4NqNeoiBLEWSqy5wJSk7rWf1EYumVXgHvhQ |
PSR |
reputation-verifier |
BSnkCDoTpgNVN5BbF3aN5L5EJPiaYUkqqj9MHp8kaqWM |
PSR |
uab-receiver |
7d4Sbmmpy954JwSNdjwf31pgbeWUQqwpgNdte5iy3vuM |
UAB |
ons-mirror |
D7EXuwcsGrUAYC6k69jrKvsKethsKYgR1pokkTcFvWsk |
ONS |
ons-registration |
5gfK9J8FJi3FpsQD33Hkrfwq8KqN4yadB2PDF9REnwMT |
ONS |
relayer-registry |
E4xmYaAU31dbNTbhfMfp2F24b48DAxJigvZTVbsKJREg |
relayer-market |
opaque-privacy-pool |
5NjweHM4z7NrG4NLVUyJ8rtX8jLM3xtBWAR1wSJZ7vjY |
privacy-pool |
conditional-disclosure |
7sDCTbMDwjzYA3KHhNPZUVa8Swvj6adJTgSkJqmsn6V7 |
conditional-disclosure |
Program ids are the source of truth in Anchor.toml; npm run generate exports them to
the @opaquecash/deployments package — consumers
read addresses from there, never hardcode them.
programs/ one Anchor program per directory (table above)
tests/ localnet integration suites (ts-mocha; genesis fixtures in tests/fixtures/)
scripts/ IDL generation, deployments export, VAA/ONS fixture generators, live e2e scripts
circuits/ git submodule → opaquecash/circuits (proof fixtures used by tests)
Prerequisites: Rust, Solana CLI, Anchor 0.32+, Node 18+.
git submodule update --init # circuits fixtures
npm install
anchor build
anchor test # boots a local validator with all programs + fixturesZK tests that generate fresh proofs need the circuit artifacts — build them in the submodule first (see circuits/README).
Deploy explicitly (the provider defaults to localnet):
anchor deploy -p <program> --provider.cluster devnetLive devnet acceptance flows: scripts/e2e-privacy-pool.mjs, scripts/e2e-disclosure.mjs.
GPL-3.0.