BASE_TOKENS
(also simply called BASE
in some contracts): this base is equal to 10^18
and is the base used for the tokens of the protocol.BASE_PARAMS
: this is the base used for all the parameters and fees of the protocol. This base is equal to 10^9
. For instance, if fees taken on a transaction are BASE_PARAMS / 100
, then this means that 1%
transaction fees have been taken on the transaction. The reason for using a different base for parameters is to be able to store them as uint64
rather than as uint256
to avoid overflows.BASE_INTEREST
: it is equal to 10^27
and is used for elements on which we need a high precision like interest rate computationBASE_TOKENS
chosen when computing numbers, it has been decided that all the agTokens (stablecoins of Angle) would involve 18 decimals.USDC
collateral used for the agEUR
stablecoin, the sanUSDC_EUR
are in the base of USDC
and the tokens have decimals = 6
.Proxy Admin
and TransparentUpgradeableProxy
contracts of OpenZeppelin. The code of most contracts of the protocol therefore corresponds to OpenZeppelin proxies pointing to an implementation.GOVERNOR_ROLE
and the GUARDIAN_ROLE
.Core
contract, while in the Borrowing Module it takes place at the level of the CoreBorrow
contract.GOVERNOR_ROLE
is the most powerful one of the protocol, it can be used to change a multitude of protocol parameters unique to each contract (fees, oracle windows, ...), as well as to grant and revoke roles in some contracts. It can also be used to upgrade smart contracts through the ProxyAdmin
.GOVERNOR_ROLE
cannot do anything it wants on the protocol. In particular, in the Core Module for instance, the GOVERNOR_ROLE
cannot mint or burn stablecoins and sanTokens, it cannot open or close perpetual positions, and it cannot withdraw more than the surplus of the protocol.GOVERNOR_ROLE
is simply to push the button and execute/implement decisions that were voted by veANGLE holders (ANGLE holders which locked their token).AngleDistributor
contract: this contract handles weekly reward distribution through liquidity mining.AngleMaster
) to get more flexibility when it comes to implementing things like Olympus Pro.AngleMaster
contract. This contract is a 2/3 Gnosis multisig controlled by distinct Core Team members of the protocol (the 3 co-founders of the project). The idea of this multisig is that it has control of funds to be sent to the vesting contract, and it holds the reserves of the funds that are kept for future strategic partners of the protocolVesting
contract. In order to reduce the exposure of the funds potentially at risk in this contrat (this contract has been forked from Maker's DssVest
), not all the 18% of the tokens that have to be distributed to the team + early backers + advisors have been initially put in this contract. The `AngleMaster` will regularly transfer tokens to this contract.GUARDIAN_ROLE
is designed to enable quick feature shutdowns and allow the protocol to react rapidly to unforeseen events. It can for instance shut off some protocol functionalities.GUARDIAN_ROLE
, and this role does not give access to any user funds. On a side note, all the actions that can be taken by the GUARDIAN_ROLE
can also be taken by the GOVERNOR_ROLE
.GUARDIAN_ROLE
is held by a 2/4 Gnosis Multisig controlled by Core Team members of the protocol (the same as in the Governor multisig plus teddav).AgToken
, the Router
and of all the governance smart contracts.