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:
- Install a new Aragon app on 1Hive: Superfluid Aragon App
- Setup the needed permissions for the new app
- Transfer Common Pool tokens to allow Superfluid protocol to handle Super Honey (HNYx)
- Give admin permissions to the disputable voting app
- Give permissions to Fluid Proposals smart contract:
- Create Superfluid streams for Super Honey
- 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.