Breakdown of the various GumBall Protocol contracts
GumBall Protocol is a liquid NFT launchpad and marketplace that is composed of four contracts: GumBall Factory, ERC20 Bonding Curve, GumBar, and GumBall Machine. The diagram below shows a visual representation of the GumBall Protocol architecture.
For the architecture section, collection tokens will be referred to as "GBT"
GumBall protocol architecture
The GumBall Factory contract is where collections are deployed. Creators can customize their collections with various parameters, such as collection name, ticker, creator address, total collection supply, and initial floor price. The GumBall Factory contract will then deploy the ERC20 Bonding Curve, GumBar, and GumBall machine contracts of that specific collection.
The ERC20BondingCurve contract represents the GBT token of a given collection and also contains a bonding curve. Each collection on GumBall has an immutable exchange built directly into it. The bonding curve is a mechanism for distributing GBT while maintaining guaranteed liquidity for circulating GBT. At the inception of the collection, all GBT tokens are in the bonding curve. If a collection has 10,000 NFTs, it will have 10,000 GBT in its bonding curve reserves. Users can directly interact with the bonding curve to purchase GBT of a collection, which can be converted to gNFTs of that collection. The base token used to purchase the GBT (e.g. ETH) is stored in the bonding curve as liquidity. Therefore, holding GBT essentially makes you a liquidity provider for that specific collection. However, unlike regular liquidity provisions, users have no risk of impermanent loss. In other words, holding a collection's GBT is akin to a single sided liquidity provision for that collection.
The GumBar contract is the staking contract. As with the bonding curve, each collection has its own staking contract. The yield is generated from swap fees on the collection’s bonding curve. These fees are how liquidity providers are rewarded in the GumBall ecosystem. Users may unstake or claim their rewards at any time.
The GumBall Machine contract is what converts GBT<->gNFTs. User are free to go back and forth between GBTs and gNFTs as many times as they please. This is the mechanism that grants every NFT in the GumBall ecosystem guaranteed liquidity. Users will always be able to exit the ecosystem whenever they want at the current market rate of GBT on the collection's bonding curve and at the absolute minimum, are guaranteed the floor price of the given collection. However, it's important to note that there is a fee when redeeming from gNFTs to GBTs (between 1-10%, chosen by creator).