Post
Share your knowledge.
Upgrade cap to 0x0
If I want to make a package immutable, can I send the upgrade cap to 0x0 upon deployment? Will this cause any issues down the line? for a coin. let upgrade_cap = sui::package::claim_upgrade_cap(ctx); transfer::public_transfer(upgrade_cap, @0x0);
- Sui
Answers
1Yeah, I’ve actually looked into this too—and yes, you can make a package immutable by transferring the upgrade_cap to 0x0. It’s kind of like saying, “no one, not even me, can upgrade this package anymore.” So once you do:
let upgrade_cap = sui::package::claim_upgrade_cap(ctx);
transfer::public_transfer(upgrade_cap, @0x0);
…that package becomes permanent—no more edits, no upgrades, no patching.
From what I understand, this is often done intentionally, especially for things like coins or public-facing assets, where trust and transparency are essential. Once it's deployed and locked, users know the logic can't be changed later in a way that might affect them—like changing how transfers work or adjusting fees.
That said, the one thing to keep in mind is: you better be absolutely sure the code is final. Any bugs, gas inefficiencies, or improvements you wish you had made—there’s no going back. I’ve seen people recommend doing extensive dry-run tests and maybe even audits before transferring the cap to zero address.
So yeah, no immediate "issues" from Sui’s side—it’ll work just fine. But down the line, if you ever wish to update your coin logic or fix something critical, you’ll be stuck unless you deploy a brand-new package and migrate everyone to it, which can be a hassle.
Hope that helps! And if anyone else here has done it and had to deal with the consequences, would love to hear how that played out.
Do you know the answer?
Please log in and share it.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
- How to Maximize Profit Holding SUI: Sui Staking vs Liquid Staking616
- Why does BCS require exact field order for deserialization when Move structs have named fields?65
- Multiple Source Verification Errors" in Sui Move Module Publications - Automated Error Resolution55
- Sui Move Error - Unable to process transaction No valid gas coins found for the transaction419
- Sui Transaction Failing: Objects Reserved for Another Transaction410