Skip to content

Execute Upgrade

Purpose

Execute a queued governor operation after the timelock has matured.

Required Authority

EXECUTOR_ROLE.

Preconditions

  • readyAt has passed.
  • Operation is queued, known, not cancelled, and not executed.
  • Final go/no-go review is signed.
  • Implementation metadata and code hash still match.
  • For transparent proxies, expected initialized version is correct or intentionally zero.

Procedure

  1. Re-read getOperation(operationId).
  2. Re-run target registration and implementation metadata checks.
  3. Confirm no unresolved alerts during timelock monitoring.
  4. Pause or close sensitive deposit/claim windows if the release plan requires it.
  5. Call executeUpgrade(operationId).
  6. For a transparent proxy, read proxyImplementation() and proxyInitializedVersion().
  7. For a beacon, read implementation() from the beacon.
  8. Run release smoke checks and policy assertions.
  9. Announce completion to operations and monitoring owners.

Abort Conditions

Abort if code hash drifted, target changed, calldata changed, review evidence is missing, readyAt not reached, relevant role custody changed, or the guardian has requested cancel.

Post-Checks

  • UpgradeExecuted emitted.
  • Live implementation equals intended implementation.
  • Policy assertions pass.
  • Deposit/readiness/claim smoke checks relevant to the upgraded target pass.

Evidence To Archive

Execution tx, event logs, live implementation reads, initialized version, smoke-test output, policy assertions, and final signer transcript.

Operational Procedure

Purpose

Use this runbook to execute a queued upgrade only after delay, final review, and policy checks pass.

When To Use

Use it for production, staging, or rehearsal actions that affect live authority, validator custody, economic accounting, claims, or incident response. Do not use it as a substitute for source review; deployed-state evidence remains Evidence required unless captured for the exact chain and address set.

Required Authority

Required authority: EXECUTOR_ROLE. Read-only preparation can be performed by an operator or auditor, but transaction submission must come from the documented production holder in the permission matrix.

Preconditions

  • The current source manifest and generated inventory are up to date.
  • The acting Safe or owner has been verified against the current permission matrix.
  • No unresolved incident is active for the same contract, validator, role, or operation.
  • The reviewer can identify which layer is affected: Upgrade governance, Deposit permissioning, Custody/readiness, or Economic/claim safety.

Inputs Required

  • o.
  • p.
  • e.
  • r.
  • a.
  • t.
  • i.
  • o.
  • n.
  • .
  • h.
  • a.
  • s.
  • h.
  • ,.
  • .
  • r.
  • e.
  • a.
  • d.
  • y.
  • .
  • t.
  • i.
  • m.
  • e.
  • ,.
  • .
  • f.
  • i.
  • n.
  • a.
  • l.
  • .
  • c.
  • o.
  • d.
  • e.
  • .
  • h.
  • a.
  • s.
  • h.
  • ,.
  • .
  • r.
  • e.
  • l.
  • e.
  • a.
  • s.
  • e.
  • .
  • a.
  • p.
  • p.
  • r.
  • o.
  • v.
  • a.
  • l.
  • ,.
  • .
  • r.
  • o.
  • l.
  • l.
  • b.
  • a.
  • c.
  • k.
  • /.
  • c.
  • a.
  • n.
  • c.
  • e.
  • l.
  • .
  • r.
  • a.
  • t.
  • i.
  • o.
  • n.
  • a.
  • l.
  • e.

Step-By-Step Procedure

  1. confirm delay elapsed.
  2. re-read implementation metadata.
  3. execute upgrade.
  4. read back proxy/beacon implementation.
  5. run post-upgrade smoke assertions.

Independent Review Requirement

A second reviewer must check the decoded calldata, expected state transition, affected role or validator, and expected events before submission. For emergency use, capture the reviewer identity and incident ticket before or immediately after the transaction.

Abort Conditions

  • Source manifest hash drift or unexpected implementation metadata.
  • Caller or Safe does not match the permission matrix.
  • Revert reason points at a different layer than the runbook is trying to change.
  • Any required input is missing or only inferred.
  • A guardian, canceller, or incident commander has frozen the action window.

On-Chain Pre-Checks

Read current role/owner/admin state, operation status, target code hash where applicable, validator/vault mapping where applicable, and the latest readiness or claim state that the action depends on. Record block number and RPC endpoint.

On-Chain Post-Checks

Confirm the intended state changed, no adjacent authority changed unexpectedly, and no pending operation or stale intent was left active. Re-read the affected contract rather than relying only on transaction success.

Events Or Logs To Monitor

  • UpgradeExecuted.
  • Upgraded.
  • BeaconUpgraded.

Evidence To Archive

Archive calldata, transaction hash, decoded event logs, pre/post reads, reviewer approval, incident or change ticket, and any source-manifest or release-artifact references used to justify the action.

Escalation Path

Escalate to governance signers for authority or upgrade anomalies, to controller/risk owners for economic or claim anomalies, to admission operators for intent mistakes, and to security incident response for unexpected code, role, or event drift.