Types of roles
Default roles
These roles are given automatically whenever a new Safe is added to the hierarchical structure in the Palmera module.
Root Safe
It can: execute a transaction on behalf of any Safe within its hierarchy structure, add or remove owners of any Safe, change the parent of any Safe, and add or remove any Safe, EOA or smart contract from the hierarchical structure, it can also add or remove Safes, EOAs or smart contracts from the allow or deny list.
Root Safe, however, doesn't have any rights over other root Safe nor the children of other root Safe.
Super Safe
Super Safe only has admin rights over subsafes, meaning safes positioned one level below them in their hierarchical structure.
It can: execute a transaction on behalf of any Safes, add or remove owners of any subsafe, change the super Safe of any Safe and remove any subsafe from the hierarchyicalstructure.
It cannot: add or remove Safe, EOAs, or smart contracts from the allow or deny list and they don't have rights over any super Safe, root Safes nor children of other root Safes.
Optional Roles
These are roles that can be given optionally to Safes, externally owned accounts (EOA), or other smart contracts that aren't part of the hierarchical structure.
All optional roles only have admin rights over subsafes, meaning Safes positioned one level below them in their hierarchical structure.
Safes's lead
It can: execute a transaction on behalf of a subsafe, it can also add or remove owners of a subsafes if configured accordingly.
It cannot: add or remove Safes, EOAs, or smart contracts from the allow or deny list, can't change the super Safe of any Safe, or remove any subsafe, EOAs, or smart contracts from the hierarchical structure, they don't have rights over any super Safes, root Safes nor the children of other root Safes.
Safes's lead without owner modifier
It can: execute a transaction on behalf of any subsafes if configured accordingly.
It cannot: add or remove owners of any subsafe, add or remove Safes, EOAs, or smart contracts from the allow or deny list, they can't change the super Safes of any Safe or remove any Safe from the hierarchical structure, don't have rights over any super Safes, root Safes nor children of other root Safes.
Safe's lead without executeOnBehalf
It can: add or remove owners of any subsafe if configured accordingly.
It cannot: execute a transaction on behalf of any subsafe, add or remove Safes from the allow or deny list, add or remove Safes, EOAs, or smart contracts from the allow or deny list, they can't change the super Safes of any Safes or remove any Safe from the hierarchical structure, they don't have rights over any super Safe, root Safes nor children of other root Safes.
Last updated