Decentralised governance for Value Instrument based currencies.
- Define governance of your Value Instrument currency.
- Vote on adding new accounts, changing economic parameters, or increasing immutability.
- Define trusted admins that have permission to make those decisions on behalf of your community.
🕵️ Find more boilerplates using GitHub | ✨ Official boilerplates
▶️ To use this boilerplate, runnpx create-aragon-app <app-name>
Buidler + React boilerplate for Aragon applications.
npm start
- postinstall: Runs after installing dependencies.
- build-app: Installs front end project (app/) dependencies.
- start Runs your app inside a DAO.
- compile: Compiles the smart contracts.
- test: Runs tests for the contracts.
- publish:major: Releases a major version to aragonPM.
- publish:minor: Releases a minor version to aragonPM.
- publish:patch: Releases a patch version to aragonPM.
These hooks are called by the Aragon Buidler plugin during the start task's lifecycle. Use them to perform custom tasks at certain entry points of the development build process, like deploying a token before a proxy is initialized, etc.
Link them to the main buidler configuration file (buidler.config.js) in the aragon.hooks
property.
All hooks receive two parameters: 1) A params object that may contain other objects that pertain to the particular hook. 2) A "bre" or BuidlerRuntimeEnvironment object that contains environment objects like web3, Truffle artifacts, etc.
// Called before a dao is deployed.
preDao: async ({ log }, { web3, artifacts }) => {},
// Called after a dao is deployed.
postDao: async ({ dao, _experimentalAppInstaller, log }, { web3, artifacts }) => {},
// Called after the app's proxy is created, but before it's initialized.
preInit: async ({ proxy, _experimentalAppInstaller, log }, { web3, artifacts }) => {},
// Called after the app's proxy is initialized.
postInit: async ({ proxy, _experimentalAppInstaller, log }, { web3, artifacts }) => {},
// Called when the start task needs to know the app proxy's init parameters.
// Must return an array with the proxy's init parameters.
getInitParams: async ({ log }, { web3, artifacts }) => {
return []
}
If you want an example of how to use these hooks, please see the plugin's own tests for an example project.
root
├── app
| ├── src
| └── package.json
├── contracts
| └── VCommunityApp.sol
| └── interfaces
| └── IVICoinAdjustable
├── test
├── arapp.json
├── manifest.json
├── buidler.config.js
└── package.json
- app: Frontend folder. Completely encapsulated: has its own package.json and dependencies.
- src: Source files.
- package.json: Frontend npm configuration file.
- contracts: Smart contracts folder.
VCommunityApp.sol
: Aragon app that interfaces with a Value Instrument currency.
- test: Tests folder.
- arapp.json: Aragon configuration file. Includes Aragon-specific metadata for your app.
- manifest.json: Aragon configuration file. Includes web-specific configuration.
- buidler.config.js: Buidler configuration file.
- package.json: Main npm configuration file.
- @aragon/os: AragonApp smart contract interfaces.
- @aragon/api: Aragon client application API.
- @aragon/ui: Aragon UI components (in React).
- @aragon/buidler-aragon: Aragon Buidler plugin.