Synopsis
Behavior
- Load the private key using key auto-discovery. The sender address must appear in
genesis.system_deployers; the chain rejects upgrades from other senders. - Read the new actor source from
--code. - Optionally read a new
ActorManifestfrom--manifest-json. The new manifest must be a subset of the current manifest — you can drop entitlements, never add them. - Submit an
UpgradeActortransaction carrying the new code hash and manifest. - Print the transaction hash.
Flags
Example
Edge Cases
- Non-deployer sender — The transaction is accepted by the mempool but reverts on execution. The receipt will contain
UpgradeNotAuthorized. - Manifest widening — Any entitlement in the new manifest that is not in the current manifest fails validation and reverts with
ManifestWideningNotAllowed. - Same code hash — An upgrade to identical code is a no-op but still costs gas.

