Skip to content

opaquecash/ethereum

Repository files navigation

Opaque — Ethereum contracts

CI

Solidity contracts for the Opaque protocol on Ethereum: stealth payments (EIP-5564/ERC-6538), ZK reputation (PSR V2), cross-chain announcements (UAB/Wormhole), 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. ONS naming contracts live in opaquecash/ons.

Experimental software, Sepolia only. The pool and disclosure layers are unaudited and gated on audits before anything beyond testnet — see DISCLAIMER.md and infra/security/.

Contracts (Sepolia)

Contract Address Spec
StealthMetaAddressRegistry (ERC-6538) 0x77425e04163d608B876c7f50E34A378624A12067 CSAP
StealthAddressAnnouncer (ERC-5564) 0x840f72249A8bF6F10b0eB64412E315efBD730865 CSAP
OpaqueSchemaRegistry 0xAA5F3942117bD48E7Cd81A500A8b7Bbb122ae80f PSR
OpaqueAttestationRegistry 0x049aF9CBB62387034CDd5403794a94E9c000ACCc PSR
OpaqueReputationVerifierV2 / Groth16VerifierV2 0x18cEc2812953c2E9bcADE20CbF6415BD36aEb44f / 0x49A212bdbc52F1cb6C93623FC7814a61Fc71ddB5 PSR
UABSender / UABReceiver 0x872787c0BD1A0C71e6D1be5a144EB044e0CB2069 / 0x9eF189f7a263F870Cf80f9A89d1349A6AF7b15cF UAB
RelayerRegistry 0x5fA252e2D22058a4ec3420573a3B3A5dca025837 relayer-market
OpaquePrivacyPool / WithdrawalVerifier 0x49a5bB6d079a43d50596069b4F2632005CFe729E / 0xa1add9daa1F4D0f9190c13fb9AD52e525f4726b5 privacy-pool
OpaqueDisclosureRegistry / DisclosureVerifier 0x4449DD0A94Fa6cd9C0074F3ee17b8823d6ceDD21 / 0x50Dd94357D1450477e964922615F0d068B0d683E conditional-disclosure

infra/deployments/sepolia.json is the source of truth; npm run generate exports it (plus ABIs) to the @opaquecash/deployments package — consumers read addresses from there, never hardcode them.

Layout

infra/contracts/      the contracts above + snarkjs-exported Groth16 verifiers + mocks
infra/test/           hardhat suites (node:test + viem), incl. cross-chain VAA E2E
infra/scripts/        deploy scripts, deployments export, live e2e acceptance scripts
infra/security/       Slither/Aderyn pre-audit triage + the pool/disclosure audit plan
circuits/             git submodule → opaquecash/circuits (proof fixtures used by tests)

Develop

Prerequisites: Node 22+, the circuits submodule for ZK fixture tests.

git submodule update --init
cd infra
npm install
npx hardhat compile
npx hardhat test           # ZK suites skip unless circuits/v2/build exists

Deploy scripts (scripts/deploy-*.ts) read SEPOLIA_RPC_URL / SEPOLIA_PRIVATE_KEY from .env and update deployments/sepolia.json. Live acceptance flows: scripts/e2e-privacy-pool.ts, scripts/e2e-disclosure.ts.

License

GPL-3.0.

About

Opaque Solidity contracts (Sepolia): EIP-5564 stealth payments, PSR V2 reputation, UAB, relayer market, privacy pool, conditional disclosure.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors