Finished

JBP-132: Deploy V2

Author

Anon

Cycle

19

loading

How to fill out this template.

Title: Deploy Juicebox V2 protocol
Author: Jango
Date: March 25, 2022

Thesis:

Deploy the juicebox V2 protocol and commit to supporting its adoption.

Abstract:

JuiceboxDAO will deploy the V2 protocol. Inso doing, it will deploy its treasury on the freshly deployed protocol and begin a slow and steady routine to migrate operations to it over the course of several weeks/months. There’s no rush.

  • The V2 contracts can be found here.
  • The V2 deploy script can be found here.
  • The V2 protocol’s documentation can be found here.

All other projects operating on V1 can plan a similar course of action if they want to operate on V2.

Motivation:

To create a more vibrant, extensible, and convenient Juicebox ecosystem for projects, communities, and developers.

Risks:

These risk apply to JuiceboxDAO and all other projects who choose to interact with the V2 protocol.

  • Smart contract risk — any funds moved over to the V2 ecosystem could be hacked and stolen.
    • Mitigation — continue auditing and putting stress on the codebase.
  • Communication risk — V2 adds new functionality and adjusts several details of otherwise-familiar V1 functionality. Sending transactions to the V2 contracts without properly understanding the consequences can lead to inadvertent situations, and in the worst case botched treasuries.
    • Mitigation — be careful when offering support to projects using V2 and communicating about the protocol’s capabilities. Air on the side of not knowing and asking questions until a familiarity is developed.
  • Operation Risk — Projects operating multiple treasuries and multiple tokens must attentively manage each of their redemption and issuance rates, and funding cycle configurations in general. For example, if V1 treasury funds are moved to the V2 treasury without also issuing and distributing commensurate V2 project tokens to match the V1 token’s total supply, V2 token holders can redeem them for potentially much more than they should actually be redeemable for at the expense of the rest of the community. When orchestrating multiple treasuries, it is better to temporarily manage token redemption values that are lower than true value instead of higher than true value.
    • Mitigation — be patient and careful when considering a migration strategy for a project. If you are not confident in the outcome of a particular transaction or set of transactions, ask questions.

Specification:

JuiceboxDAO will deploy the V2 protocol. Inso doing, it will deploy its treasury on the freshly deployed protocol and begin a slow and steady routine to migrate operations to it over the course of several weeks/months. There’s no rush.

  • The V2 contracts can be found here.
  • The V2 deploy script can be found here.
  • The V2 protocol’s documentation can be found here.

All other projects operating on V1 can plan a similar course of action if they want to operate on V2.

Phase 1 (immediately)

Todos:

  • Run the deploy script prior to the start of JuiceboxDAO’s FC#19 on V1. Set the start of JuiceboxDAO’s FC#1 on V2 to be the same as the start of FC#19 on V1 (1649531973) with:
    • Same funding cycle weight, discount rate, redemption rate, reserved rate, duration, and reserved token distribution as FC#19 on V1.
    • Target of 0.
    • No payouts.
  • Issue the new JBX token for JuiceboxDAO’s V2 treasury.
    • “JBX” symbol and “Juicebox” name.
  • Change the Snapshot strategy to include V2 JBX alongside V1 JBX.

New projects will be able to build on V2 right away, and current V1 projects can deploy and synchronize a V2 treasury right away just as JuiceboxDAO will do.

Details:

  • As per the deploy script, the current JuiceboxDAO multisig will own the V2 treasury NFT.
  • As per the deploy script, the current JuiceboxDAO multisig will own the JBDirectory, JBPrices, JBProjects, and JBETHPaymentTerminal.

Phase 2 (As soon as safely possible)

Deploy a simple token swap contract (yet to be written) that allows:

- Owners of V2 projects to initialize a one-way swap function between tokens of a specified V1 project and its V2 token.
	- Owners will have to give the swap contract permissions to operate its token minting functionality before it can be leveraged by token holders.
- Any address can mint V2 project tokens through initialized swap functions by sending the appropriate claimed or unclaimed V1 tokens to it.

JuiceboxDAO should allow addresses to covert V1 JBX for V2 JBX using this mechanism.

Phase 3 (over time)

  • As needed, move funds from V1 treasury over to V2, minding the redemption opportunity of outstanding tokens in each treasury inso doing.
  • Adjust V1 and V2 funding cycle payouts and configurations as needed.

Rationale:

Deploying and migrating to V2 open up lots of opportunities but also lots of risk vectors. We should choose a deployment and migration plan that focuses on mitigating risk in the short term, even if it delays our ability to exploit the new opportunity space a bit.

The specification outlined allows us to be patient and methodical with the migration.

Timeline:

See the Specification.

Copyright and related rights waived via CC0.

Votes

loading