I have a question regarding to ownership of ICRC-1 standard.
In evm based blockchain platform, all tokens has owner and transferOwnership function.
I looked ICRC-1 standard source code but there is not functions related with ownership.
Will it be added later or won’t consider about ownership of tokens on Internet Computer?
In other hands, can I add this feature by customizing token standard?
If anyone have an idea about this, please let me know.
This is already natively possible with all smart contracts on the IC, it’s called ‘controllers’. Contracts can also own other contracts.
On the Internet Computer, all canisters have controllers, i.e., principals who can modify canister settings and change the code. A canister can check whether the caller is among its controllers using the system API (
ic0.is_controller system call).
Overall, I don’t think we need another layer of token “owners” beyond the controller mechanism.
Thanks for your help.
Then, can canister have several controller?
and can I add new controller and remove original controller? It’s similar to transfer ownership.
Yes it’s similar, a canister can have multiple controller principals. Controllers are the canister/user principals that are allowed to update/delete the canister and add/remove other controllers.
Controllers do not limit which canister methods can be called, you’ll still have to manually implement this yourself, for example the asset canister created by DFX has a list of authorized principals that are allowed to add/update/delete files.
thank you for your reply.