A special flavor of Uniswap V2 meets ERC-4626 to form a yield optimized vault for Art Gobblers.
Art Gobblers was constructed using two new innovations, GOO (an emission mechanism) and VRGDA (a Dutch auction mechanism). Gobblers continuously produce Goo, an ERC20 token, proportional to their multiplier and how much Goo is already in their "tank", a balance held per Ethereum address.
Goober is a yield-optimized farm and liquidity engine for Goo and Gobblers. Goober allows a user to effectively pool their Goo and/or Gobblers with other users, such that they all receive more Goo emissions together than they would on their own, allowing market forces to maintain the optimal ratio of Goo/Gobblers in the pool. A unique combination of of Uniswap V2 and EIP-4626 forms a special purpose AMM with vault-like characteristics and internal maintenance mechanics. Aside from bonding an ERC20 with an ERC721, Goober diverges from Uni-V2 via its VRGDA implementation. The vault can mint new Gobblers when it’s profitable to do so under calculated contraints from the constant product formula and pool reserves, increasing the rate of future Goo emissions whilst continuing to keeping the pool balanced.
Through Goober users can permissionlessly swap Gobblers and Goo, as well as deposit Goo and fractionalize their Gobblers in order to maximize their Goo accrual without the need for active management. By depositing Gobblers and/or Goo into the vault, users receive GBR in return, an ERC20 token that gives depositors claim to the assets in the vault.
The Gobblers economy in its current form inherently converges towards a monopolization of resources. Since early, well funded actors possess the most Gobblers, they produce the most Goo, in turn continuously driving the price of the auction beyond any new entrants' reach - at a quadratically increasing rate. Thus, a user with one or two Gobblers who has just gotten involved will likely never be able to mint another Gobbler with their Goo holdings.
Compounded by the fact that there is also low liquidity for Goo across decentralized exchanges, this dynamic makes it even more difficult for the average user to get the Goo flywheel turning without owning a Gobbler themselves. It has also caused large holders to mint from auction at an irrationally high Goo cost compared to the outstanding Goo supply. Since Gobbler prices on secondary markets inherently trade at a premium to the auction price, the average user has been effectively boxed out of the game.
Utilizing an amalgamation of Uniswap V2's constant function market math, an ERC4626 yield-bearing vault (with GBR as the vault token), and automated VRGDA minting (using probabilistic computation compared to internal pricing) Goober aligns incentives to create an optimal balance of Goo and Gobbler multiplier for increased liquidity and Goo production across market conditions.
Since Art Gobblers NFTs produce Goo according to the formula:
The rate of growth of Goo happens to be maximized when Goo = Mult. There is an evident comparison with Uniswap v2's
Thus, Goober optimizes
Documentation can be found here.
Contract | Mainnet |
---|---|
Goober |
0x2275d4937b6bFd3c75823744d3EfBf6c3a8dE473 |
In order to run unit tests, run:
forge install
forge test
For longer fuzz campaigns, run:
FOUNDRY_PROFILE="intense" forge test
After installing Poetry and Slither run: Slither on Apple Silicon
poetry install
poetry shell
slither src/Goober.sol --config-file slither.config.json
To update the gas snapshots, run:
forge snapshot
To see project coverage, run:
forge coverage
MIT © 2022 Goober