$FISH - Proposal/Discussion

$FISH Token

The origin of this idea came from UBIpromoter’s message about getting “minnows” to engage in the process. His idea’s reminded me of learnings about “fair farming” and how it was shown that if you reduce overfishing in the short term, fisherman were able to catch more fish in total over the long term (the main reason being if you overfish this year, there isn’t enough offspring to support the ecosystem in future years).


Building on this, I wanted to find a way to incentivize holders to continue to hold $FISH instead of “catching” (aka burning) the token and receiving the portion of the reserve. Where $TREE uses quadratic burning game theory to put players against each other (if I burn first, you receive a higher portion of tokens), I wanted to come up with a way to incentivize users to not to burn tokens as a function of time (you received a higher reward if you hodl’d longer regardless of other players actions).

The question became how do you increase a LPs rewards the longer they hold their $FISH token. Two methods emerged:

  1. Create a function where the percentage of reserve an LP was entitled too increased the longer they didn’t “catch their fish” (burn their token). (i.e. if you had 10 tokens that entitled you to 10% of the reserve, if you burned in year 1 -> you received 2% of your 10%, year 2 -> you received 4% of your 10%, year 3 -> 6% of your 10%, etc.). This used a linear function but could be quadratic.
  2. Allow users to “lock” their FISH Tokens where they would receive a “rewards boost” based on how long they agreed to “lock” their tokens.

Leveraging Existing Implementation

While both of these ideas exist in concepts, Curve actually already has an implementation of method 2 - vote locking. Curve allows you to lock your CRV up to receive veCRV which corresponds to voting power in the DAO. When you lock up your CRV to mint veCRV, you receive a “rewards boost” as an LP. The longer you lock up your CRV, the higher your boost (note that these locks are final and you’re not able to withdraw funds until the end of timelock).

WhalerDAO Implementation

For WhalerDAO, we can implement FISH using the same vote locking technique. When you provide liquidity you earn FISH. If you decide to lock your Fish, you’ll receive a “rewards boost” on your current LP position with the boost multiplier calculated in relation to the amount of time you lock your FISH up. The same way if you don’t overfish in year one, you have a higher abundance of the fish’s offspring in year 2; if you don’t catch your FISH tokens in year 1 (lock tokens), you’ll receive a higher amount of FISH tokens in year 2 (b/c of the boost). Similarly, locking up your tokens for multiple years allows you to “catch” the boosted rewards, keeping your principle fish in the timelock.

Why this would be valuable

This mechanism starts to provide reliable and projectable finances for the WhalerDAO Charity pool. By knowing how much FISH is locked for how long, we can project the minimum amount that will be in the Charity Pool in future years. Additionally, by incentivizing users to not “catch” their fish, we are incentivizing continuous earnings into the Charity Pool

Future Iterations

Would love to figure out additional rewards boosters if you decide to continuously lock your rewards. There feels like a unique way to leverage the unique identity of BrightID to provide “responsible fishermen” boosts but can’t figure it out right now.

This is still in the idea stage, and not sure I’ve thought through all the vulnerabilities.

1 Like

Hey, thanks for writing this up!

I think one thing I’m still not sure about is where the value of FISH would come from. Is the idea that we’d be using the liquidity that users lock up in the contracts to go invest (e.g. yield farm), which FISH owners would then receive a share of?

If all they are doing is locking up the LP tokens, it’s less clear to me how FISH can generate additional value for holders, as the locked up liquidity would just be sitting in Uniswap.

It’s a good call. Is your thinking that if it only provides a similar yield as other options that it won’t be enough to attract liquidity/users?

I think I’m just confused about what FISH is used for.

Is your proposal something like:

  1. Wrap user deposits up into other vaults.
  2. The longer they are locked up, give them more FISH.
  3. Some percentage of returns from 1. are deposited into a FISH pool.
  4. FISH is used as a governance token over the pool.

If so, I’m confused about how we would reward LP stakers instead of just depositors into the pool.

Had a couple thoughts to get in before the meeting tomorrow:

So the idea is the FISH would have the following two value props:

  1. It would act as a governance token for voting rights over the distribution of the charity pool FISH generates.
  2. It would give you governance over the actual protocol pool or vault mechanics.

In terms of figuring out why users would want to use FISH, I’ve thought of the following value prop mechanism.

  • The number of public good funding tokens are starting to go up (PAN, WHALE, HNY[note on xdai]). The problem is that a lot of these UNI markets don’t have enough liquidity to make efficient swaps at scale. I propose 2 options on how to use FISH to fix this issue:
  1. Yield Farming: Create yield farming pairs for only public good tokens. The potential problem of using Yield farming to create liquidity for public goods token is the potential for a mass sell off from the tokens which would cause a crash in the token price.
    – By using the fish locking mechanism to achieve additional rewards, we limit the downside of using yield farming and increase the value of the public good tokens as holding public good tokens can earn you additional rewards.
    – Additionally by providing public good token projects and an additional way to bring value to their tokens, we create an additional incentive for builders to build public good projects.

  2. Vaults: Provide a vault strategy to increase liquidity in public good pairs. The idea is that user can deposit any type of token into a vault (we can call them Ponds) to receive FISH tokens. We would take the liquidity stored in a vault, convert to public good token pairs, and add them to UNI markets to increase liquidity to a voted on target. Once target liquidity is reached in the UNI pair, the additional tokens would be deposited in other DeFi protocols (YFI) to earn a higher yield for FISH holders.
    – Again, by leveraging the idea of locking FISH up we create a sustained and long term liquidity of these pairs.

At a high level, I’m trying to take the ideas that other protocols use to make more liquid stablecoin pairs (curve, synth, pickle finance) and apply them to help increase liquidity in the Public Goods market.

Let me know thoughts.

Forgot to add these two points:

  1. Similar to WHALE, FISH would take a percentage of the profits made from the yields and deposit into Charity POOL
  2. As being a FISH holder means you get to vote on the the pairs and tokens FISH provides liquidity too, we create an incentive for other people who care about increasing liquidity of their public good token to become FISH holders. This should put another upward price incentive on FISH