# Difference between a controller and a custodian for a cycles wallet?

**URL:** <https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189>\
**Category:** Developers\
**Created:** [May 22, 2021, 6:32pm UTC](https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189 "2021-05-22T18:32:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bobbylingus](https://avatars.discourse-cdn.com/v4/letter/b/85e7bf/32.png) [@bobbylingus](https://forum.dfinity.org/u/bobbylingus)\
**Post date:** [May 22, 2021, 6:32pm UTC](https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189/1 "2021-05-22T18:32:42Z")

</div>

“dfx canister” command has these options, but what is the difference?

---

<div class="post-metadata">

**Author:** ![claudio](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/claudio/32/322_2.png) [@claudio](https://forum.dfinity.org/u/claudio)\
**Post date:** [May 24, 2021, 3:14pm UTC](https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189/2 "2021-05-24T15:14:54Z")

</div>

I couldn’t find an answer here [Use the default cycles wallet :: Internet Computer](https://sdk.dfinity.org/docs/developers-guide/default-wallet.html) but perhaps someone on the appropriate team could shed some light on the difference.

---

<div class="post-metadata">

**Author:** ![prithvi](https://avatars.discourse-cdn.com/v4/letter/p/22d042/32.png) [@prithvi](https://forum.dfinity.org/u/prithvi)\
**Post date:** [May 24, 2021, 4:17pm UTC](https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189/3 "2021-05-24T16:17:46Z")

</div>

Not sure if `dfx canister` has these options, maybe youre thinking of `dfx wallet`  
A Controller is the most privileged role, and can rename the wallet, add entries to the address book, add/remove controllers, authorize/deauthorize custodians. A Custodian can access the wallet information, send cycles, forward calls, and create canisters.

---

<div class="post-metadata">

**Author:** ![paulyoung](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/paulyoung/32/5251_2.png) [@paulyoung](https://forum.dfinity.org/u/paulyoung)\
**Post date:** [December 21, 2022, 6:51pm UTC](https://forum.dfinity.org/t/difference-between-a-controller-and-a-custodian-for-a-cycles-wallet/4189/4 "2022-12-21T18:51:40Z")

</div>

> [@Are canister custodians able to upgrade canister code?](https://forum.dfinity.org/t/are-canister-custodians-able-to-upgrade-canister-code/15018/2):
>
> The concept of a custodian is not something the IC itself knows - the [spec](https://internetcomputer.org/docs/current/references/ic-interface-spec/) does not even contain the word ‘custodian.’ Since this is a concept that’s entirely defined within canisters, it all depends on the implementation. I’m not sure a canister can be its own controller and self-update, but with a proxy canister (say you’re custodian of A and tell A to upgrade, A sends this command over to B. B is a controller of A, and upgrades A’s code) this would 100% be possible.
