Documentation Index
Fetch the complete documentation index at: https://docs.cowboy.inc/llms.txt
Use this file to discover all available pages before exploring further.
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
| Flag | Default | Description |
|---|---|---|
--actor | Required | Target actor address (hex) |
--code | Required | Path to the new Python source file |
--manifest-json | None | Optional new ActorManifest JSON (must be a subset of current) |
--private-key | Auto-discovered | Path to private key file. Sender must be a system deployer |
--rpc-url | Auto-discovered | RPC endpoint |
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.

