Skip to content

Deposit Checklist

Use this checklist before every validator deposit window. A green allowlist check alone is not enough.

Pre-Window

  • [ ] Confirm no unexpected UpgradeProposed, UpgradeQueued, role-transfer, or registrar event is active for deposit, controller, factory, gatekeeper, or beacon targets.
  • [ ] Verify allowlistAdmin custody and signer quorum.
  • [ ] Confirm factory has deployed the vault for the validator pubkey hash.
  • [ ] Confirm previewExecutionWithdrawalCredentials(pubkey, immutableConfigHash) matches the credentials to be submitted.
  • [ ] Confirm vault runtime code hash matches baselineVaultRuntimeCodehash.
  • [ ] Confirm vault beacon equals baselineVaultBeacon.
  • [ ] Confirm beacon authority is baselineUpgradeGovernor.
  • [ ] Confirm controller readiness is ok=true, trigger-armed, beneficiary-initialized, reserve-initialized, reserve-usable, and not stale.
  • [ ] Confirm treasury-router policyBootstrapOpen() is false.
  • [ ] Confirm governor policy assertions pass for deposit, factory, controller, claim gatekeeper, and vault beacon.

Intent Creation

  • [ ] Use addAllowedDepositFor unless the allowlist admin itself will submit the default 32 CTN deposit.
  • [ ] Confirm pubkey is 48 bytes.
  • [ ] Confirm withdrawal credentials are 32 bytes and canonical 0x01 execution credentials.
  • [ ] Confirm amount is 32_000_000_000 gwei.
  • [ ] Confirm authorized depositor is the expected transaction sender and not a temporary EOA.
  • [ ] Record current allowlistEpoch.
  • [ ] Archive the emitted DepositIntentAllowedFor event.

Deposit Submission

  • [ ] Caller is the authorized depositor in the intent tuple.
  • [ ] Value is exactly 32 CTN and a gwei multiple.
  • [ ] deposit_data_root was computed from the exact pubkey, credentials, signature, and amount.
  • [ ] No prior phase1ValidatorActivated[pubkeyHash] latch exists.
  • [ ] No matching consumedIntents[intentHash] exists.

Post-Deposit

  • [ ] DepositIntentConsumedFor emitted for the expected intent hash.
  • [ ] DepositEvent emitted with expected index.
  • [ ] depositCount incremented by one.
  • [ ] phase1ValidatorActivated[pubkeyHash] is true.
  • [ ] Monitoring has no immediate governance or readiness drift alert.
  • [ ] Evidence bundle is linked to the validator onboarding ticket.

Abort conditions

Abort the window if a queued upgrade, role-admin transfer, unknown registrar event, readiness drift, reserve-proof staleness, unexpected beacon authority, or policy assertion failure appears before the deposit is mined.