Skip to content

Dark Contracts 0.9.0: Hardened testnet release

Choose a tag to compare

@DarkWalletRH DarkWalletRH released this 07 Oct 07:03
· 7 commits to main since this release

The reviewed, hardened testnet release of Dark's on-chain components.

Contents

  • DarkVault: deposit, apply-pending, private transfer and withdraw over twisted-ElGamal ciphertexts; caps with immutable hard ceilings; a guardian that can pause and tighten caps, nothing else; an owner that acts only through a 48-hour timelock. No proxy, no delegatecall, no upgrade path. Withdrawals can never be paused.
  • DarkKeyRegistry: immutable, ownerless key registry proven with dark_register.
  • DarkGrumpkin: clean-room Grumpkin arithmetic, differentially tested against @noble/curves.
  • Circuits: dark_register, dark_transfer, dark_withdraw, dark_disclose_range in Noir (UltraHonk, keccak transcript, zero-knowledge on), with the generated Solidity verifiers.

Deployment

Deployed to Robinhood Chain testnet (chain id 46630) on 2026-09-20. Addresses are listed in the README.

Assurance

  • Hardened after internal adversarial review rounds covering the contracts, the circuits and the deployment process. An independent audit is the next step.
  • The runtime codehash of every deployed verifier and library is pinned; the deploy script refuses anything that does not match.
  • scripts/check-verifier-bytecode.mjs rebuilds the deployed verifiers and their libraries from source and compares the bytecode byte-for-byte; the vault and the registry are pinned by codehash.
  • Dark's contracts, circuits and deployment record are MIT OR Apache-2.0; the bb-generated verifiers are Apache-2.0.