Docs
Specifications
Operator
Permissions

Permissions

On Crossbell, operators are authorities that users trust and set for their characters to send transactions on behalf of themselves so as to avoiding the hassle of signing transactions every time.

An address can be an operator for multiple characters, and a character can have multiple operators.

The operator will be granted granular permissions to perform certain actions on behalf of the user. For example, an operator can be granted permission to post notes on behalf of the user, but not to change the user's name.

Permission Bitmap Layout

A permission bitmap is a 32-byte array that represents a set of permissions. Each bit in the array represents a permission. The first bit represents the permission with ID 0, the second bit represents the permission with ID 1, and so on.

Here is the layout of the permission bitmap:

Permission IDMethodSuggested Permission Type
0SET_HANDLEOwner Reserve
1SET_SOCIAL_TOKENOwner Reserve
2GRANT_OPERATOR_PERMISSIONSOwner Reserve
3GRANT_OPERATORS_FOR_NOTEOwner Reserve
···Owner Reserve
[21, 175]reserved for future
176SET_CHARACTER_URIOperator Sign
177SET_LINKLIST_URIOperator Sign
178LINK_CHARACTEROperator Sign
179UNLINK_CHARACTEROperator Sign
180CREATE_THEN_LINK_CHARACTEROperator Sign
181LINK_NOTEOperator Sign
182UNLINK_NOTEOperator Sign
183LINK_ERC721Operator Sign
184UNLINK_ERC721Operator Sign
185LINK_ADDRESSOperator Sign
186UNLINK_ADDRESSOperator Sign
187LINK_ANYURIOperator Sign
188UNLINK_ANYURIOperator Sign
189LINK_LINKLISTOperator Sign
190UNLINK_LINKLISTOperator Sign
191SET_LINK_MODULE_FOR_CHARACTEROperator Sign
192SET_LINK_MODULE_FOR_NOTEOperator Sign
193SET_LINK_MODULE_FOR_LINKLISTOperator Sign
194SET_MINT_MODULE_FOR_NOTEOperator Sign
195SET_NOTE_URIOperator Sign
196LOCK_NOTEOperator Sign
197DELETE_NOTEOperator Sign
198POST_NOTE_FOR_CHARACTEROperator Sign
199POST_NOTE_FOR_ADDRESSOperator Sign
200POST_NOTE_FOR_LINKLISTOperator Sign
201POST_NOTE_FOR_NOTEOperator Sign
202POST_NOTE_FOR_ERC721Operator Sign
203POST_NOTE_FOR_ANYURIOperator Sign
···Operator Sign
236POST_NOTEOperator Sync
···Operator Sync
💡

The suggested permission type is a suggestion for how the permission should be implemented. It is not a requirement. A user can grant an operator any permission type they want.