Overflow: A mechanism to refund, ragequit, give cash-back, or offer realizable profits.
A project's overflowed funds in the Juicebox protocol can serve various purposes depending on the configuration choices the project makes.
A reminder, overflow is the amount of funds currently in a project's Juicebox treasury minus its current funding cycle's target
, which specifies the amount allowed to be distributed from the treasury to preprogrammed addresses during the cycle. A project's token holders can burn their tokens at any point to receive a proportional amount of the project's overflow. This proportion can be affected by a bondingCurve
also configured per funding cycle. A curve of 100% is a linear proportion.
Here are outlines of how a project's funding cycles might be configured to use its overflow for achieving various treasury designs:
Refundβ
Overflow can be used to give all contributors access to their money back in the case of an unsuccessful campaign.
In the case of ConstitutionDAO, the project's first funding cycle is configured with a target
of uint256.max
, which allows free movement of any funds accumulated in Juicebox into preprogrammed addresses (the Gnosis multisig wallet). It is also set up with a duration
of 0, which gives the project's owner (also the Gnosis multisig wallet) authority to trigger a new reconfigured funding cycle at any point. All ETH contributed mints a proportional amount of the project's tokens for the contributor.
The multisig could thus reconfigure the project to have a target
of 0 and then inject all of its raised funds back into its Juicebox treasury, which would make all funds in the project considered overflow and therefor claimable by token holders. With the bondingCurve
at 100%, each token holder could then burn their supply to receive the same amount of ETH they originally put in.
Ragequitβ
A project can use its overflow to allow disenchanted token holders to exit and take with them a portion of the treasury's funds.
Only a project's overflowed funds in Juicebox are available to be claimed by burning tokens. If a project's funds are mostly kept in a multisig (or other contracts/assets), they cannot not be taken into account in the redemption value of a token (changing in V2). A project can thus tune the expected return of ragequitting by injecting liquid funds back into Juicebox, adjusting its target
value, and loosing/tightening its bonding curve.
If a project is spending its raised funds at a faster rate than it is pulling in funds, or if the project's rate of token distribution has changed over time, it's likely ragequitting via the built in juicebox mechanism won't yield the same amount as initially contributed.
Shouts to MolochDAO for coining the term "ragequit".
Cash-backβ
A project that sells products can use its overflow to give customers the opportunity for cash-back.
TileDAO, for example, currently sells artwork for 0.16 ETH. When works are minted, the sale price is piped into the TileDAO treasury, minting the project's tokens for the buyer in return. TileDAO might want to give its token holders incentive to hold these tokens by giving them utility, perhaps decision making weight in governance, otherwise holders might want to redeem them for some of the project's treasury. This redemption would essentially give the buyer of the art some cash back, the value of which determined by several aspects of the project's funding cycle choices over time.
Realizable profitsβ
A project can inject funds into its treasury from arbitrary sources, giving all token holders access to them by burning tokens.
The simplest example here would be a project that gathers funds via a Juicebox project to purchase a thing, then turns around and sells the thing for more than what it paid. The funds from the sale can then be injected back into the Juicebox project for token holders to claim if they choose to do so.
Consistent through all of these examples are consequential choices that a project can make to offer its community particular treasury designs over time. The address that controls the NFT representing a Juicebox project has the power to make these choices. Whichever EOA or contract stewarding this responsibility on a community's behalf should be scrutinized and held accountable to the extent each community sees fit.
Hopefully what these examples make clear is that the tokens issued by projects using the Juicebox protocol have no intrinsic value. They can, however, be used by projects as a utility for making decisions, the outcomes of which can give them value. It all depends on the choices we make together over time, and the social and algorithmic contracts we use to make these choices binding.