A protocol built on top of Superfluid Finance and Conviction Voting to create and regulate project funding streams based on the amount of interest a community has on them.
In Osmotic Funding, the funds allocation is based on community signaling via token staking so the community can determined the rate each proposal or project that is being funded by staking more or less tokens on it. Everytime a new staking or unstaking happens the rate varies over time until it reachs the new target rate or "equilibrium".
Prerequisites: Node plus Yarn and Git
clone/fork:
git clone https://github.com/BlossomLabs/osmotic-funding.git
install and start 👷 Hardhat chain from a fork of mumbai network. We do this to reause all Superfluid deployed contracts:
cd osmotic-funding
yarn install
yarn fork
in a second terminal window, start 📱 frontend:
cd osmotic-funding
yarn start
in a third terminal window, 🛰 deploy contracts:
cd osmotic-funding
yarn deploy
📱 Open http://localhost:3000 to see the app.
In order to have changing flow rates over time for our funding streams we have implemented a Superfluid agreement (a first version at least) called Adaptive Flow. This advanced feature integrates with the protocol and allows us to create more sophisticated payment flows following exponential decay/growth formulas to calculate the flows and balance at any given point of time.
checkout the
superfluid-osmotic-funding
branch to play with it:
git checkout superfluid-osmotic-funding
Below you can find an overview of the Osmotic Funding Contract Architecture that uses Superfluid underneath: