Funding Token for PoolTogether, and Other Money-Lockup Apps
A generalized token model for exposure to application growth
There are a growing number of ‘Value-Capture’ tokens on Ethereum. These tokens represent a fundamental component of the application itself. The value of the token is a necessary function of the application; without it, or without its value, the application would cease to exist.
MakerDAO has MKR, Augur has REP, ChainLink has LINK.
Not all applications need tokens. After the euphoria of 2017–18 died out, the community discovered that tokens are generally unnecessary, and if you can build your app without one, then you probably should.
There are two main thesis for why tokens are bad:
- They introduce friction to the user
- The role of the token is better served by using ETH or DAI
Forcing your users to buy a token to use your platform is a deal-breaker. The best Ethereum applications have tokens that operate exclusively in the background:
- MKR for governing Dai, but you don’t need it for using Dai
- REP for governing Augur, but you don’t need it to place a bet
These tokens manage an application that users only need ETH or DAI for its functioning.
MKR and REP are very novel tokens with highly crypto-specific applications. You can’t just “copy” their token model; it’s specific to application.
However, there is a “generalized” token model that any application that leverage.
This token model does a number of the positive things that the ICO mania was praised for enabling (although it never achieved)
- Allocates capital to projects who want/need it
- Gives users upside to the growth of the application
- Aligns incentives between funders and projects.
Here’s how this token works:
- Create an application that captures ETH or Dai into a reserve
- Create a token that has a claim on these reserves
- Sell the token in a token sale
- Allocate the funds generated to the reserve
- Because the reserve is larger, the value of the application increases
- This generates more revenue from the application
- The revenue generated from the application is added to the reserves
Here’s a real life example:
PoolTogether is a novel financial application that illustrates some of the best features of what crypto-economics enable.
PoolTogether is a “no-loss lottery”. It operates like a lottery, but you get your money returned to you if you lose. PoolTogether works like this:
- All users buy tickets to the lottery with Dai
- All funds from ticket sales get deposited into a single pool
- This pool gets put inside of Compound for a period of time
- At the end of the time period, a winner is selected, and the winner receives all the interest collected during the time window.
- All losers receive their Dai back, and can choose to re-enter the next lottery, or not.
Basically, instead of losing your Dai, you’re losing the interest you would have received during that same timeframe.
PoolTogether has one additional mechanism, that really changes PoolTogether from a curiosity, to a potential financial superstructure inside of Ethereum:
PoolTogether takes 10% of the accrued interest, and keeps it as a reserve inside of Compound. This Dai ‘rolls over’ to the next lottery, and the interest it produces is also added to the winning pool.
This is really powerful.
PoolTogether funds a ‘reserve’ of Dai from a 10% cut of the interest of all pooled Dai. Rather than taking this pool of Dai as revenue for the company, PoolTogether keeps it as a reserve, and sticks it inside of Compound.
The interest produced from the reserve is added to the pot of every lottery. PoolTogether uses the 10% cut of the interest to subsidize every further lottery with free money.
Therefore, there should always be demand for PoolTogether tickets. If there are 0 tickets issued, then 100% of the interest produced by the Dai Reserve goes to the individual who purchases 1 ticket, and will be guaranteed to win 100% the interest produced by the Dai reserve, however large that amount is.
PoolTogether’s Dai Reserve right now is 51,000 Dai. At 6% interest on Compound, 1 week of interest is 59 Dai. The pot of PoolTogether is always at least 59 Dai, and growing because the Dai reserve is also growing. The Dai Reserve increases the winnings from ~150 Dai to ~210 Dai, with the ticket-cost of 1 Dai.
Tokenize the Reserve
Here’s where magic can happen. This is where we will get into the hypothetical value-capture token that could be issued.
PoolTogether’s Dai reserve can be conceptualized as the equity of the application. The value of PoolTogether is the value of the Dai reserve, including how big the Dai reserve will be in the future.
PoolTogether issues a token. Call it ‘PTG’. The function of PTG is that it is a claim on Pool Together’s Dai Reserve. 1 PTG = 1 share of the reserve. In order to access your share of the Dai reserve, you must BURN your PTG. If there are 1 Million PTG, then burning 1 PTG allows you to withdraw 1/1,000,000th of the Dai Reserve. PTG is backed by Dai.
1,000,000 PTG are issued and sold for Dai. The funds from the sale all get added to the Dai reserve. The Dai reserve is perpetually loaned on Compound. If, hypothetically, PTG’s were sold for $1, then the value of PTG would be the value of cDAI: the value of Dai, plus the interest it generates from Compound.
However, it would also have one additional value-function: the speculation on future growth of the Dai reserve from the sale of PoolTogether lottery tickets. In other words, growth in value of the equity of PoolTogether.
PTG gives you exposure to the revenue generated by PoolTogether lottery ticket sales:
- The more tickets to PoolTogether are sold, the more Dai is collected by the 10% interest revenue generated from the sales.
- The more revenue is generated from sales, the larger the Dai Reserve grows
- The larger the Dai Reserve grows, the more incentive there is to buy PoolTogether Lottery tickets, as there are more winnings to be won.
- The larger the Dai Reserve grows, the larger the claim each PTG token has.
The PTG Token is meant to bootstrap the Dai Reserve to be as large as possible. Fitting with the concept of a ‘No-Loss Lottery’, the PTG token is also a ‘No-Loss Token’. Because the Dai from the sale of the token goes to backing the value of the token, PTG purchasers never actually lose their contributed funds. If, for whatever reason, they wish to have their Dai back, they simply burn their PTG and reclaim their Dai that was put into the reserve, plus the interest & revenue it generated while it was in there.
Two Token Mechanisms
There are two potential PTG token-economic designs that achieve the same goals.
Finite supply, Zero-Issuance
The most straightforward way to issue PTG is to issue a finite number of them, and sell them all for the same amount of Dai. There can never be any more PTG than at issuance, and total PTG supply will always be equal to, or less than, the amount issued at genesis.
Selling a finite number of PTG tokens at genesis generates speculation in the PTG token, and may drive a significant premium to the PTG token based on the speculation of the success of PoolTogether. However, there is only one token sale event; there is no way to raise additional funds in the future with this model.
If you take out things like contract risk, the value of this PTG token should always go up, as the Dai Reserve has no way of getting smaller, per PTG. If PTG is burned, the Dai Reserve goes down, but the Dai/PTG token ratio stays the same. In fact, once some PTG has been burned, the remaining PTG has a larger representative share of the Dai reserve. All Dai revenue generated from the ticket sales is going to a smaller portion of PTG tokens.
The game theory here mimics MKR: You want everyone else to burn their MKR before you sell yours. More details on this in my previous article: Evaluating MKR.
Bonding Curve, Perpetually Sellable
There is no reason why there needs to be a finite supply of PTG. There also doesn’t necessarily need to be one single sale event. Instead of doing a ‘token-sale’, PoolTogether could theoretically allow tokens to be bought or sold to a ‘bonding curve’.
A bonding curve is a mechanism that can establish the price of a ‘to-be-issued’ token, based on the supply/value of a reserve that exists. If the reserve is large, then the cost of purchasing a token is high. If the reserve is small, then the cost of purchasing a token is low. The Dai funds from selling the token are added to the reserve, which increases the value of the token. This is close to how Uniswap works.
The bonding curve could work like this:
- At genesis, there are 0 Dai in the contract.
- The contract will issue 1 PTG token for 1 Dai. The first user submits 1 Dai to the contract, and receives 1 PTG token.
- Now, there is 1 Dai in the reserve. The new price for 1 PTG token is 1.01 Dai.
- A second user believes very strongly that PoolTogether will be very successful, and capture a lot of Dai in its reserve. They come and purchase 1,000 PTG tokens for the cost of ~1,500 Dai (the bonding curve updates its price for total order size, as Uniswap does).
- Because of this sale, the first user that purchase 1 PTG token at 1 Dai, can now come to the bonding curve, and submit their PTG token, and receive 1.50 Dai, for a .50 Dai profit.
- But the first user also things that PoolTogether will be successful, so he doesn’t.
- Hype generates about the token. Everyone wants some exposure to PoolTogether. The bonding curve takes in 500,000 Dai over the next few months, and issues 200,000 PTG tokens, now worth 2.5 Dai each.
- The 500,000 Dai issued by the bonding curve goes to the Dai Reserve, is lent in compound, and receives ~675 Dai in interest rate every week (7% interest rate). This 675 Dai goes to the winning pool of the PoolTogether Lottery, which attracts many users and ticket sales, which adds funds to the Dai Reserve as well.
This model has the benefit of a flexible PTG supply that may incentive a larger Dai reserve, by enabling a mechanism that allows for more Dai to be added to the reserve even after the token sale event.
In this model, “burning” the PTG token is replaced by selling the token to the bonding curve.
This model incentivizes people to add Dai to the reserve early, when PTG token is cheap.
However, it also adds risk. If PoolTogether were to cease selling lottery tickets (for whatever reason), then the future growth of the PTG token would be missing its only unique value-capture mechanism: revenue from sales. This would mean that PTG token is only worth the Dai in the reserve, plus interest, making it no different than cDai. Because of the nature of bonding curves, everyone would want to immediately sell their PTG to the curve, as the price would never be higher than the moment the market was informed that no more lottery tickets would be sold. Those who sold their PTG quickly would benefit more than those who missed the memo or were away from their computer.
In the first model, all PTGs represent an equal share of Dai, no matter what. However, it’s capacity to create a large Dai pool is limited. In the second model, speculation and market forces are enabled, which help incentive a larger and larger Dai pool. However, some PTG holders may be able to benefit more than others, based on their ability to trade, manipulate, or influencer control over the token supply. However, this is no different from any other token or currency.
Adding to Dai Lockup; Increasing ETH price.
PoolTogether is a game of Dai-Lockup.
I view Ethereum as a landscape of applications that are all competing to capture ETH. MakerDAO, Compound, dYdX, Augur all produces applications that generate incentives to lockup ETH.
MakerDAO’s incentive to capture ETH is that it produces Dai, a stable-version of ETH, and generates an entirely new dimension to the ETH-capture game: Dai capture. The existence of Dai makes ETH easier to capture, because of the added feature of stability.
Applications like Compound, dYdX, Augur, PoolTogether NEED Dai to function well. These applications generate demand for Dai.
Demand for Dai does 2 things
- Encourages ETH-capture inside of MakerDAO
- Lowers the stability fee for CDP holders
PoolTogether is one big Dai-capture game. The goal of the PoolTogether application is to capture as much Dai as possible. It’s aim is to join the leaderboards of most Dai/value captured in Open Finance applications, like the ones found on DeFi pulse.
The lottery itself captures some amount of Dai every cycle, but it re-releases it every week, with the hope that users re-submit their Dai for the next lottery. The addition of the Dai reserve generates a perpetually-locked, perpetually-growing reserve of Dai that will likely never see the open market ever again.
If PoolTogether exists in perpetuity (🤞), then all Dai that is added to the reserve is effectively in its final resting place.
- New Dai must be minted to replace it on the market
- More Ether must be locked in MakerDAO to supply this Dai.
- Ether supply on the secondary market reduces.
- Ether price goes up.
- All roads leads back to Ether appreciation.
Thanks for reading!
Shout-out to Leighton Cusack (@lay2000lbs) for the help!