Introducing B.Protocol governance token

Yaron Velner
B.Protocol
Published in
5 min readApr 26, 2021

Over the recent month the community decided to form a tokenized governance for B.Protocol. Discussions were made in the forum, and off-chain voting was done to reach a consensus upon the preferred model.

The community also deployed the smart contracts to implement the model, and we explain them in the third section of this post.

The final step, which is starting now (Monday, April 26th, 8:20pm GMT), is for the users to vote on giving control over the protocol to the tokenized governance.

User deposits in B.Protocol always remain under the user control

A voting web interface is available at https://vote.bprotocol.org

In the next section we give a brief summary and references to the proposal that is up for a vote.

Then we give an overview on the deployed smart contracts that will form the governance structure, and give control to the B.Protocol community/DAO over the protocol.

And finally we explain the technical details of the voting process.

B.Protocol governance token

The community decided to launch the BPRO token give it control over the protocol (currently the protocol is under the control of the user Score, and thus users have to hand it over with an onchain vote).

The detailed description of the governance structure can be found here, and for the sake of brevity, we only present the token distribution that is being voted on.

Initial distribution

  • 500,000 BPRO to Current (*) MakerDAO integration users, proportional to their mScore. E.g, a user that has 0.1% of the total mScore will get 500 tokens. (*) snapshot was taken on April 24th.
  • 500,000 BPRO to Current (*) Compound integration users, proportional to their cScore. E.g, a user that has 0.1% of the total cScore will get 500 tokens. (*) snapshot was taken on April 24th.

Subsequent Distribution

New BPRO tokens will be minted for a minimum period of at least four years. The minting will occur in every block, and for simplicity we discuss the expected minting according to time periods.

Perpetual minting

  • 1,325,000 BPRO per year will be minted into a Reservoir contract, which will be under the control of the DAO, and will be used to on-board new participants into the governance, in any way the DAO will see fit.
  • 825,000 BPRO per year will be distributed for devs. In the first year this will be sent to an address controlled by by the founding team, but the founding team will not vote.

One time minting

  • 250,000 BPRO for new (and existing) users, for a 3 month period. After that, the DAO may decide whether to use a portion of the Reservoir to allocate governance tokens to new users.
  • 150,000 BPRO for the current Genesis backstop, which is composed from 3 entities, for a period of 1 year . After that, the DAO will decide whether to use a portion of the Reservoir to distribute more BPRO to the backstop.

The governance smart contracts

Token

The BPRO token contract was deployed at address 0xbbBBBBB5AA847A2003fbC6b5C16DF0Bd1E725f61. It is based on Uniswap’s UNI token implementation with a change to support different minting schedules.

DAO

The DAO contract is deployed here. It is based on Compound’s governor bravo implementation, with changes to support different quorum and new proposal threshold. In addition, Compound’s governor bravo implementation dictates an upgrade process from their former governor alpha DAO. This code was removed as well.

Protocol admin

The vote will give admin control over the protocol to two new contracts, which will be able to change the liquidator pool contract and the score contract (which will be upgraded to a degenerate contract to save gas consumption for future user operations).

The DAO will use off-chain voting (via Snapshot currently) to make governance decisions. The decisions that will pass will be executed by the Backstop multisig who will control the two new admin contracts described above. The DAO will have the authority to set new admins at any time, and by that revoke the multisig power if it will not adhere to the off-chain decisions.

The Maker integration admin is deployed here. The Compound integration admin is deployed here.

Initial token distribution

500k BPRO are distributed to the Maker users according to their mScore, and 500k BPRO to Compound users, based on their cScore.

Though the Score is available on-chain, it was decided to use a snapshot to distribute it, in order to save gas costs. The Maker snapshot is available via IPFS here, and the Compound snapshot is available, also via IPFS here.

A smart contract identical to Uniswap’s Merkle Distributor is used. For Maker users it is deployed here, and for Compound here.

A voting monitor contract was deployed, and it will transfer BPRO to the distribution contracts only if the vote is successfully executed.

Subsequent Distribution

The minter of the BPRO contract is the BPROMinter contract that was deployed here. It executes the perpetual and one time minting, according to 4.5 blocks per minute rate. Once approved, the DAO will not have any control over the minting for the next 4 years, after which, it could set a new contract as the minter.

GitHub repository

The smart contract code can be found here.

About the voting process

Anyone can propose a new governance implementation and put it to an on-chain vote, however, given the community reached a consensus on the above, our web interface will only feature the proposal that was previously described.

  • The vote is carried separately for Maker users (with mScore) and cScore users (with cScore), and a 50% + 1 majority is needed for each of the votes to pass.
  • The proposal can be executed 2 days after a majority was reached.
  • As an absolute majority is needed, a user cannot vote against a proposal.
  • If only Maker (respectively Compound) users approve the proposal, then only Maker (resp., Compound) will participate in the token distribution. This is a necessary step, as the proposal execution transfers the protocol admin to a governance that is controlled by BPRO.
  • The BPRO initial distribution could be executed immediately after the proposal is approved and executed by both mScore and cScore users, and if being approved only by one, then in 2 weeks from now.

About B.Protocol:

B.Protocol makes lending platforms more secure by incentivizing liquidity providers (keepers) to commit on liquidation of under collateralized loans and shift the miners extracted profits back to the users of the platform.

For more, please visit our website, twitter, discord and github.

--

--