The Company with Board template is intended to be used as the basis for a token holder governed organization that has deferred some of its decision making power to an elected committee of "board" members. The "share" tokens are freely trade-able and can be added to exchanges. The "board" is represented by non-transferable tokens that are limited to one token per address. In order to change, add, or remove board members, share holders must vote to mint or burn "board" tokens. A share holder vote is required to make significant changes to the organization, and a board member is required to create shareholder votes.
Prepare an incomplete company-board entity:
template.prepareInstance(shareTokenName, shareTokenSymbol, shareVotingSettings, boardVotingSettings)
shareTokenName: Name for the token used by share holders in the organizationshareTokenSymbol: Symbol for the token used by share holders in the organizationshareVotingSettings: Array of [supportRequired, minAcceptanceQuorum, voteDuration] to set up the share voting app of the organizationboardVotingSettings: Array of [supportRequired, minAcceptanceQuorum, voteDuration] to set up the board voting app of the organization
Finalize company-board entity:
template.finalizeInstance(name, shareHolders, shareStakes, boardMembers, financePeriod, useAgentAsVault)
id: Id for org, will assign[id].aragonid.ethshareHolders: Array of share holder addressesshareStakes: Array of token stakes for share holders (token has 18 decimals, multiply token amount* 10^18)boardMembers: Array of board member addresses (1 token will be minted for each board member)financePeriod: Initial duration for accounting periods, it can be set to zero in order to use the default of 30 days.useAgentAsVault: Use an Agent app as a more advanced form of Vault app
Alternatively, create a new company entity with a Payroll app:
template.finalizeInstance(name, shareHolders, shareStakes, boardMembers, financePeriod, useAgentAsVault, payrollSettings)
payrollSettings: Array of [address denominationToken , IFeed priceFeed, uint64 rateExpiryTime, address employeeManager (set to board voting if 0x0)] for the Payroll app
After deploying ENS, APM and AragonID, just run:
npm run deploy:rinkeby
The network details will be automatically selected by the arapp.json's environments.
| App | Permission | Grantee | Manager |
|---|---|---|---|
| Kernel | APP_MANAGER | Share Voting | Share Voting |
| ACL | CREATE_PERMISSIONS | Share Voting | Share Voting |
| EVMScriptRegistry | REGISTRY_MANAGER | Share Voting | Share Voting |
| EVMScriptRegistry | REGISTRY_ADD_EXECUTOR | Share Voting | Share Voting |
| Board Voting | CREATE_VOTES | Board Token Manager | Share Voting |
| Board Voting | MODIFY_QUORUM | Share Voting | Share Voting |
| Board Voting | MODIFY_SUPPORT | Share Voting | Share Voting |
| Share Voting | CREATE_VOTES | Board Token Manager | Share Voting |
| Share Voting | MODIFY_QUORUM | Share Voting | Share Voting |
| Share Voting | MODIFY_SUPPORT | Share Voting | Share Voting |
| Agent or Vault | TRANSFER | Finance | Share Voting |
| Finance | CREATE_PAYMENTS | Board Voting | Share Voting |
| Finance | EXECUTE_PAYMENTS | Board Voting | Share Voting |
| Finance | MANAGE_PAYMENTS | Board Voting | Share Voting |
| Board Token Manager | MINT | Share Voting | Share Voting |
| Board Token Manager | BURN | Share Voting | Share Voting |
| Share Token Manager | MINT | Share Voting | Share Voting |
| Share Token Manager | BURN | Share Voting | Share Voting |
| App | Permission | Grantee | Manager |
|---|---|---|---|
| Agent | RUN_SCRIPT | Board Voting | Share Voting |
| Agent | EXECUTE | Board Voting | Share Voting |
| App | Permission | Grantee | Manager |
|---|---|---|---|
| Finance | CREATE_PAYMENTS | Payroll | Share Voting |
| Payroll | ADD_BONUS_ROLE | EOA or Board Voting | Board Voting |
| Payroll | ADD_EMPLOYEE_ROLE | EOA or Board Voting | Board Voting |
| Payroll | ADD_REIMBURSEMENT_ROLE | EOA or Board Voting | Board Voting |
| Payroll | TERMINATE_EMPLOYEE_ROLE | EOA or Board Voting | Board Voting |
| Payroll | SET_EMPLOYEE_SALARY_ROLE | EOA or Board Voting | Board Voting |
| Payroll | MODIFY_PRICE_FEED_ROLE | Board Voting | Board Voting |
| Payroll | MODIFY_RATE_EXPIRY_ROLE | Board Voting | Board Voting |
| Payroll | MANAGE_ALLOWED_TOKENS_ROLE | Board Voting | Board Voting |