Skip to content

security(mainnet): transfer Ownable admin off the hot deploy key to a multisig / cold wallet #155

Description

@akash-mondal

Tracker: #154

Context

The mainnet C-Chain (43114) eERC deployment went live 2026-07-09, but every mainnet contract's Ownable admin is still the hot deploy key 0x09b67991141146e2A43651C72CF6786eeb579846 (see docs/MAINNET_GO_NO_GO.md → "Remaining post-deploy items" and README.md → "What remains"). A single compromised key currently controls the entire mainnet stack. The go/no-go names this the top-priority post-deploy item.

Scope

  • Choose the custody target (Gnosis Safe / multisig or a cold single-owner) and its signer set + threshold.
  • Enumerate every mainnet contract exposing ownership/admin authority: EncryptedERC converter (0x708d…Db0e), Registrar (0x902B…79F2), the five verifiers, BabyJubJub, PrivateGiftEscrow (0xb22c…7C94), BenzoCCTPRouter (0x83F2…4caE) — confirm which are Ownable and which owner-only functions matter (e.g. setAuditorPublicKey, router allow-list mgmt).
  • Draft the transferOwnership runbook (order, per-contract tx, human-confirmed broadcast) plus a rollback/verification plan.
  • Update contracts/deployments/avalanche.json (and the packages/config mirror) with the new admin once transferred.

Acceptance criteria

  • A written custody decision + signer/threshold recorded.
  • A step-by-step transferOwnership runbook covering every owner-bearing mainnet contract.
  • Post-transfer verification plan: on-chain owner() reads equal the new custody address for all contracts; manifest updated.
  • No private-key operation is performed as part of this planning issue.

Dependencies

  • None blocking; this is the top post-deploy item and should land first.
  • Coordinates with the auditor-key custody + rotation issue (setAuditorPublicKey is an owner-gated call).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions