Skip to content

Dark Contracts 1.0.0: Mainnet launch

Choose a tag to compare

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

Mainnet launch.

Deployment

The contract and circuit source of 0.9.0, unchanged, deployed to Robinhood Chain mainnet (chain id 4663) at block 75151289:

Contract Address
DarkVault 0xeD7a0c6899a6AC94Aea7A5b2F8f24a948042DA9C
DarkKeyRegistry 0x2E245135FD561965CC546c14C23C9162f36d9C87
DarkTimelock (owner, 48 h) 0xADbF7E3cf5418BeAC10BcDD3BBD9a51dc19EBC54
  • Owner: the timelock, whose only proposer, executor and canceller is a 2-of-3 Safe. The deployer holds no role.
  • Guardian: a 1-of-2 Safe that can pause deposits and transfers and tighten caps, nothing else. Withdrawals can never be paused.
  • Launch caps (USDG): max deposit 1,000; max inflow per account 2,500; max transfer 1,000; total value locked 50,000.

Changes

  • DeployDarkMainnet.s.sol deploys against the real USDG with the launch caps and refuses the wrong chain, a Safe that is an EOA, an owner Safe one key can operate, and any verifier or library that does not match its pin.
  • The verifier deploy recipe is shared with the bytecode check, so what is deployed and what is verified cannot drift apart.
  • The bytecode check covers every deployed chain: fourteen contracts across mainnet and testnet.