1Hive Upgrade: Integrating Fluid Proposals 🌊

A year has passed since we initiated the Fluid Proposals Pilot. This new proposal type has proven invaluable for continuously allocating community funds. Currently, we have several Fluid Proposals actively streaming HNY to our contributors.

During the pilot, we opted for a safer approach by creating a separate organization to manage the streaming accounts. This decision offered flexibility and allowed immediate production testing. However, it also introduced the overhead of replenishing funds for ongoing streams (1, 2).

This post proposes an upgrade to integrate Fluid Proposals directly into 1Hive’s governance structure. To achieve this, we’ll use EVMcrispr to execute a script for:

  • Installing a new Aragon App to enable interaction with the Superfluid protocol: Superfluid Aragon App.
  • Granting necessary permissions on the new Superfluid Aragon App.
  • Allowing the Fluid Proposals smart contract to manage streams within our organization.

EVMcrispr Script:

load aragonos as ar

set $1hive "0x8CcBeab14B5AC4A431FFFC39f4bEC4089020A155"
set $fluidProposals "0x856d17D5323794A7Db0ba17f59d4B88FD402D321"
set $superfluidHost "0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7"
set $superfluidCfa "0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D"

ar:connect $1hive disputable-voting.open --context "Integrate Fluid Proposals" (
  install superfluid.open:new agent $superfluidHost $superfluidCfa
  grant superfluid.open:new agent SAFE_EXECUTE_ROLE disputable-voting.open
  grant superfluid.open:new agent TRANSFER_ROLE disputable-voting.open
  grant disputable-voting.open superfluid.open:new SET_AGENT_ROLE disputable-voting.open
  grant disputable-voting.open superfluid.open:new MANAGE_STREAMS_ROLE disputable-voting.open
  grant disputable-voting.open superfluid.open:new MANAGE_SUPERTOKENS_ROLE disputable-voting.open
  grant $fluidProposals superfluid.open:new MANAGE_STREAMS_ROLE disputable-voting.open
  grant $fluidProposals superfluid.open:new MANAGE_SUPERTOKENS_ROLE disputable-voting.open
)

At a high level what the script does is the following:

  1. Install a new Aragon app on 1Hive: Superfluid Aragon App
  2. Setup the needed permissions for the new app
    1. Transfer Common Pool tokens to allow Superfluid protocol to handle Super Honey (HNYx)
    2. Give admin permissions to the disputable voting app
  3. Give permissions to Fluid Proposals smart contract:
    1. Create Superfluid streams for Super Honey
    2. Wrap/Unwrap Super Honey

Also for a visual explanation, a diagram of how the system works, thanks to @kamikazebr:

Testing:

We’ve also completed the Fluid Proposals Integration Test to ensure the seamless functioning of all components.

Your feedback and questions are crucial for this governance upgrade. Please share your thoughts to help us refine and implement this integration effectively.

2 Likes

Decision is up for voting :ballot_box:: Gardens

1 Like

Thank you everyone that supported the proposal. The vote was executed without issues and the Fluid Proposals are streaming again: Super Token | Superfluid.

Ownership Transfer

Now that the whole initial setup is done I transfered the ownership of the Fluid Proposals smart contract to 1Hive multisig. The owner has permission to update the configuration params from existing values:

  • ceilingBps : 2.5 %
  • wrapAmount : 100 HNY
  • decay: 10 days
  • maxRatio: 5% (of Common Pool per month)
  • minStake: 2.5% (minimum stake to start receiving funds)

The ceilingBps is the max amount of Super Honey we want to have on the Common Pool.
The wrapAmount is the amount of HNY we wrap each time.
The last three parameters regulate the stream amount per month. For more details refer to the explanation on the pilot blog post: Fluid Proposals Pilot — gardens.

Running Services

We are running two services that interact with the Fluid Proposals smart contract:

  • sync: to keep the streams up to date with the latest staking amounts.
  • syncSupertoken: that wraps more Honey into Super Honey when there are less than ceiling amount held on the Common Pool.

Subgraph

We are on the process of deploy a new version of the Gardens subgraph that will update the frontend data.

1 Like