Accounts can delegate permissions to addresses other than the owner. This is useful to improve security (by owning the account with a hardware wallet and using a software wallet with reduced permissions for more common activities, like claiming rewards) or for collaboratively managing liquidity positions.
ADMIN- Admins have permission to do everything that the account owner can (including granting and revoking permissions for other addresses) except for transferring account ownership.
WITHDRAW- Addresses with this permission may call the
withdrawfunction) on behalf of the account.
REWARDS- Addresses with this permission may call the
claimRewardsfunction on behalf of the account.
MINT- Addresses with this permission may call the
mintUSDfunction on behalf of the account.
DELEGATE- Addresses with this permission may call the
delegateCollateralfunction on behalf of the account.
Permissions are handled by the Account Module, exposed at the main Synthetix address. Each permission listed above should be encoded/decoded as
bytes32 when making requests.
hasPermission function returns whether an address has a particular permission for a given account. The
getAccountPermissions function returns all of the addresses and their respective permissions for a given account. The account owner (and addresses with the
ADMIN permission) may call the
revokePermission functions. An address may also revoke its own permissions with the