Building an Aragon App
An Aragon App uses standard interfaces to support governance and upgradeability
Governance as an interface: Defines how entities can perform actions
traverse ACL DAO ACL permissions β’ exec team , vault, transfer, ANT β’ voting (ANT) , vault, transfer, any token Payroll aragon.js Aragon DAO ACL pathTo( transfer( ETH, Path = (voting, transferScript) sends 100 ETH Payroll, canPerform(...) 100)) canPerform( tech lead , vault, transfer, DAO main address 100 eth) transfer(ETH, Payroll, 100) π¬ Aragon DAO Aragon Aragon DAO Vault contract Tech Lead Kernel not authorized canPerform( voting app , vault, transfer, 100 eth) β transfer(ETH, Payroll, 100) authorized voting.forward(transferScript) ANT Vote YES holder Vote passed, executes script Vote NO Aragon DAO ANT Voting contract holder Voting starts Vote YES ANT holder Aragon Tech Lead wants to transfer 100 ETH to Payroll contract
traverse ACL DAO ACL permissions β’ exec team , vault, transfer, ANT β’ voting (ANT) , vault, transfer, any token Payroll aragon.js Aragon DAO ACL pathTo( transfer( ETH, Path = (voting, transferScript) sends 100 ETH Payroll, canPerform(...) 100)) canPerform( tech lead , vault, transfer, DAO main address 100 eth) transfer(ETH, Payroll, 100) π¬ Aragon DAO Aragon Aragon DAO Vault contract Tech Lead Kernel not authorized canPerform( voting app , vault, transfer, 100 eth) β transfer(ETH, Payroll, 100) authorized voting.forward(transferScript) ANT Vote YES holder Vote passed, executes script Vote NO Aragon DAO ANT Voting contract holder Voting starts Vote YES ANT holder Aragon Tech Lead wants to transfer 100 ETH to Payroll contract
Wrapper Sandboxed app
iframe
webworker script.js script.js script.js
webworker script.js script.js script.js
EVM contract.sol script.js contract.sol script.js contract.sol script.js
Letβs make that simpler with a quick demo
Special Surprise
hack.aragon.org wiki.aragon.one/jobs
Recommend
More recommend