Skip to content
Aragon App for interacting with the Livepeer Protocol. Includes Delegator functionality and basic Transcoder functionality.
JavaScript Solidity Other
Branch: master
Clone or download
Pull request Compare This branch is 97 commits ahead, 3 commits behind willjgriff:master.
willjgriff Fixed some bugs, fixed to use new approach to publishing. Updated UI …
…to reflect use of Agent instead of App address.
Latest commit 76c70a9 Aug 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
livepeer-aragon-app Fixed some bugs, fixed to use new approach to publishing. Updated UI … Aug 6, 2019
livepeer-protocol Added Run script permission and function sigs to permission with para… Jun 17, 2019
.gitattributes Add Solidity linguist language. Update readme. Renamed some stuff and… Apr 7, 2019
.gitignore Started adding tests for LivepeerAragonApp contract. Jun 3, 2019 Updated with new functions (rebond, withdraw fees) Jun 4, 2019 Updated to fit new architecture with Agent Jul 2, 2019 Moved content from README May 17, 2019 Updated further to change in architecture Jul 9, 2019
livepeer-aragon-app-icon.svg Proposed new icon for livepeer aragon app May 18, 2019 Removed link to reference Jun 3, 2019

Screenshot from 2019-05-18 00-30-30

Livepeer Aragon App

Follow these instructions to install this app in any Aragon DAO..

If you are already a power user of aragonCLI, you can create a DAO-based Transcoder using this script.


Livepeer is a delegated-proof-of-stake protocol which governs the operation of a network of Transcoder nodes. Aragon is a project to empower freedom by creating tools for decentralized organizations to thrive. Both projects run on Ethereum blockchain.

This app empowers a "Decentralized Autonomous Organisation" (DAO) on Aragon's platform to govern the roles of Delegator and Transcoder in Livepeer's protocol.

You can support this project by BONDING your Livepeer Tokens (LPT) using the project's Transcoder page on Livepeer's Protocol Explorer.

Implementation Details

This project uses a modified version of the Aragon Agent App (Agent.sol) for storing LPT and interacting with Livepeer smart contracts.

It currently includes the ability to call the following smart contract functions on Livepeer's protocol, and for the functions' execution to be governed by a vote of the DAO:

  • Delegator functions: approve, bond, claimEarnings, unbond, rebond, withdrawFees and withdrawStake.
  • Transcoder functions: transcoder, reward, setServiceURI

Screenshot from 2019-05-18 17-12-14 In the above example, reward was called without requiring a vote. See here for more information.

Reference Implementation and Installation

A reference implementation of this application can be found in this Aragon DAO running on Rinkeby Ethereum testnet.

Follow these instructions to install this application on your local environment.

Follow these instructions to install this app in any Aragon DAO.

Future Scope

The project is currently researching how it would be possible to modify go-livepeer to enable Livepeer's node software to interact with the livepeer protocol via the Livepeer Aragon App. Initial discussions on this can be found here:

In addition to this, further changes will likely be required as part of the Livepeer project's Streamflow release.

Project Contents


Initial Solidity tests to experiment with the interaction between the Aragon Agent.sol and the Livepeer BondingManager.sol. See the test file if interested.


The full livepeer contract deployment for testing locally. Modified to compile with the current version of Truffle v5.0.6. Includes extra truffle scripts:

  • initialiseFirstRound.js for preparing the BondingManager to be bonded too after initial deployment.
  • skipRoundAndInitialise.js for skipping a specified number of Livepeer rounds, required for speeding up the protocol for testing.
  • rewardWithLpt.js for declaring account[0] as a transcoder, doing the necessary setup and calling reward.


The Livepeer Aragon app. It uses a modified version of Agent.sol to workaround limitations with the aragonAPI, see the LivepeerAragonApp.sol for more info. It was also initially based on the Aragon react-kit template. The template code has almost entirely been replaced.

You can’t perform that action at this time.