Description

- PyramiDAO is a dapp that essentially provides users with leveraged exposure to an underlying assets without locking up the entire principal - PyramiDAO has different Vaults for different Strategies, for example, buying ETH would be one strategy, and yield farming USDT/OHM would be be another. PyramiDAO facilitates Total Return Swap (TRS) for users --User wants leveraged exposure to ETH --They come to PyramiDAO and ask for $1000 exposure --PyramiDAO requires a 10% collateral, 1% monthly swap fee --User agrees to enter into this TRS and deposits $100 as collateral and starts streaming 1% monthly swap fee to PyramiDAO ETH Vault through Superfluid every second --PyramiDAO treasury approves the TRS and invests $1000 ETH for the user --Every 24 hours, PyramiDAO uses Chainlink Oracle to check ETH prices, if ETH prices goes down more than the collateral deposited, then user gets force liquidated --If user is not force liquidated, then the TRS continues until user decides to exit --When user decides to exit, PyramiDAO pays the return ETH made during the contract period to user --Essentially PyramiDAO provides the liquidity to invest in the underlying assets and also are the counterparty to the user in this TRS — PyramiDAO takes the fixed rate and user takes the variable rate ETH makes -PyramiDAO has a Treasury --Treasury raises money through token sales --Token holders will be able to get profit sharing from the profit of various Vaults as well as governance over this vault --Essentially triple win for the users who want leveraged exposure to underlying assets, PyramiDAO, and PyramiDAO token holder -PyramiDAO sets different parameters through simulation to make sure user makes money, Vault makes money, and token holder makes money in past market conditions. -- parameters include but not limited to: collateral percent required, swap fee charged, frequency in which the underlying asset prices are checked and force liquidation is triggered

PyramiDAO showcase

How it's made

PyramiDAO started as a Brownie project so we could hopefully one day plug in the simulations with a local instance easily. The contracts are split into 3 parts. The Treasury, the Strategies and the Swaps. The treasury is the agent that holds the receiver end of all swap agreements, collecting all revenues. The treasury also is meant to raise funds through token sales, these tokens are also meant to govern the direction of assets to strategies. Strategies are the code defining how funds are invested. Strategies must log how much of their balance is available for swap issuers and how much is already exposed. They also must have functions to return the price feed value of some amount of asset in USD and also have a function to issue a swap. To issue swaps they call the Swaps contract which handles all the logic for the swaps themselves and their superfluid agreements. Swaps will only allow verified (by treasury funding) strategies to issue new swaps. The swaps obligations are directly tied to ERC-721s so the superfluid flows and debt obligations will be tradable. Finally, swaps is an example of a Superfluid SuperApp that has a callback function listening for the deletion of swaps. If a user cancels their payment the swaps function triggers a settlement of the swap based on the oracleized price from the issued strategy. Note here that the treasury may also cancel payments and trigger settlement in the case of liquidation with future implemented collateral and liquidator nodes.