DAO contracts
Actors
Vesting
specific actors
anyone
canquery vesting infos
query claimable amount for an address
private / seed investor
canclaim the BRO their eligible for once their vesting period is over
if there is an
owner
they canregister new schedules
overwrite existing schedules
delete old schedules
Airdrop
specific actors
anyone
canquery the latest Stage
query the merkle root for any stage
query whether a certain address already claimed for a certain stage
wallets eligible for the airdrop
canclaim once the amount itβs eligible for a certain stage
if there is an
owner
they canregister a new Merkle root
BRO ERC20
specific actors
anyone
canquery balances of any address
query transfer approvals
token holders
cantransfer, approve transfers, revoke transfers
burn their tokens
bBRO adapted ERC20
specific actors
anyone
canquery balances of any address
query whether an address is whitelisted
token holders
canburn their tokens
if there is an
owner
they canwhitelist an address
remove a whitelisted address
whitelist addresses
canmint new tokens
TokenDistributor
specific actors
anyone
candistribute tokens once per epoch
query distribution amount per epoch
query if contract is ready for distribution
query passed epochs since last distribution
query distribution handlers by index
if there is an
owner
they canadd, remove, and update a distribution handler
pause / unpause the contract
Treasury
specific actors
anyone
canquery whether a token is whitelisted
query the balance of a certain (native) token of the treasury
if there is an
owner
they cantransfer any (native) token
add and remove tokens from being whitelisted
Bonding
specific actors
anyone
canbond
claim their previously bonded tokens
query the bonding simulation
query the bonding mode
query the mode configuration
query all claims of a specified address
query which tokens can be bonded
query where the bonded tokens are transferred to
if there is an
owner
they canadd, enable, disable, remove the tokens used for bonding
set the bonding mode - βnormalβ or βtreasury bootstrapping / communityβ
set minimum BRO payout
pause, unpause the contract
if there is a
distributor
they candistribute fresh BRO to the contract that can be used as payout
Staking
specific actors
anyone
canquery info about specified staker
token holders
canstake, unstake and withdraw their tokens
cancel unstaking
claim rewards and auto-compound them
if there is an
owner
they canpause, unpause the contract
set the treasury bootstrapping (community) bonding contract
set the distributor contract
set minimum staking amount
set minimum and maximum unstaking period
set max amount of unstake batches
set max withdrawals per unstake batch
set params for reward calculations, both when staked and when in unstaking
if there is a
distributor
they caninvoke reward distribution of BRO
if there is a
treasury bootstrapping / community bonding
they canstake their BRO on behalf of another address
EpochManager
specific actors
anyone
canquery the epoch length
if there is an
owner
they canset the epoch length
TWAPOracle
specific actors
anyone
canupdate the current price
query the current price
Trust Model
Some of the contracts require trust in a potentially centralized owner
type of role.
Roles of the type anyone
and token holders
listed above may be performed by anyone with access to the underlying network, and sufficient resources to participate.
The owner
will be initially a Multisignature Contract. Later on, itβs planned to set up a DAO structure and hand over trusted functionality to it.
Last updated