Governance Proposal to Reward Early Users

Hi Everyone,

The cLabs team is working on a governance proposal that seeks to reward early Celo users with a stake in the network, which would be delivered in CELO from the community fund, and we would like to hear your feedback.

Celo’s mission is to build a financial system that creates the conditions for prosperity for everyone. We believe that this can only be achieved with a strong community of Celo builders, node operators, and network participants, championing and contributing to that mission. Our hypothesis is that rewarding early users, who are likely attracted to Celo’s mission and innovative technology, will help grow and strengthen the existing Celo community.

cLabs is proposing to test this hypothesis by taking an iterative do & learn approach to rewarding early wallet adopters with CELO, which would give them a stake in the long term success of the platform. The first iteration of this proposal intends to deliver CELO as widely as possible to individuals with modest cUSD balances, accessing Celo through mobile devices, and who have verified their phone numbers.

As we learn and iterate on this approach, we imagine the community proposing changes to the criteria used to determine who receives rewards. For example, later rewards could be targeted more specifically at growing the use of Celo as a payments platform, by tying rewards to certain behaviors such as sending cUSD, receiving cUSD, or inviting new users to the platform.

Our proposed approach would require a governance proposal for each distribution of CELO rewards. These rewards would be transferred from the community fund, which at the time of posting holds approximately 2.9M CELO, to a smart contract that would allow each user to claim their rewards.

An initial proposal for how to determine these rewards is as follows:

  • Qualifying criteria: address has completed at least 3 attestations (automatic enrollment)
  • Max qualifying balance: 500 cUSD per verified address
  • Reward: equivalent to around 6% annual
  • Asset of payout: CELO
  • Schedule: Bi-weekly
  • Start date: Expected December 2020 (first reward retroactive to TBD)
  • Expected Duration: 1 year (or until community decides otherwise)
  • Total Community Fund Allotment: No more than 700,000 CELO (around 25% of current balance). This provides 6% rewards on a total of ~20M cUSD at current exchange rates, and would cover at least 40,000 eligible accounts

We look forward to hearing your feedback and questions,
The cLabs team

2 Likes

Our UBI beneficiaries (on impactMarket) would love this :slight_smile:

Can’t make the governance call today, but will share my feedback here.

Overall, I am personally not in favor of airdropping community funds as rewards. I would rather see that 700,000 CELO given out way more liberally to 10-20 projects/teams that want to build DApps on the Celo platform. Even if 90-95% of those projects fail completely, even if just one is successful it will have more positive impact than this type of airdrop.

If I am in minority here and rest of the community agrees that we should give out these type of rewards, in that case, I would vote for more lottery style give out rather than giving 6% annual worth to every user.

6% annual rewards on 500 cUSD max seems unlikely to change anything from adoption perspective. If it can be done more in the lottery style, where say 1 out of every 100 users gets 600% annual rewards worth, that could be more meaningful for the winner and it can also act as a better reward for early adopters.

It is probably a bit more complex to implement such a thing as a smart contract but it shouldn’t be too difficult. Users balance amount can decide their chances for winning (up to 500 cUSD of their balance to have similar restrictions). You can also have a minimum threshold of 5-10cUSD balance requirement to be considered to discourage spam.

3 Likes

I really value the focus on growing the number of attestations. Identity is a significant aspect of this project, and to be frank, the current # of attestations is weak. So this is a great focus, but the implementation can be better.

People want that immediate dopamine hit. Long term payouts via 6% rewards is a good way to foster long term interest, but it too petty of an amount for most users. Why not give small amounts of CELO for every attestation, but require it to be locked for a certain period? Ideally they could also stake it. In this way, the user is immediately rewarded a commendable amount (aka they get that immediate dopamine hit), but it also fosters long term interest bc it’s locked (and they can still earn 6% on it).

I definitely think it is time to reward users who grow the ecosystem though. This is a payments platform. If your friend or merchant doesn’t accept it, there is no point in using it. This is an extremely competitive race. Our progress on the technology side is notable, but the user growth is not.

3 Likes

People who verify their phone number and hold a cUSD balance in a Celo compatible wallet like Valora, are important stakeholders in the Celo ecosystem. I like how this proposal provides a mechanism for rewarding early adopters of Celo and its lightweight identity protocol. I see it as a step towards testing the various parameters/variants (eg like Zviad’s lottery ideas above!) and bootstrapping demand for yield that will benefit other financial primitives built on top of Celo over time e.g. lending protocols.

Hey all,

Thanks again for the feedback, both here on the forum post and in the governance call from a couple weeks ago.

In a nutshell, the majority of the discussion has been along the lines of:

“I support spending a portion of the community fund on end user growth, but I’m not convinced that this specific proposal is the best way to spend it”

In light of our ongoing discussions, and addressing how the community engages with proposals and ideas more broadly - we have some ideas for discussion. Thanks to @nitya, @jackie, and @tim.

In order to have this discussion, I think it’s important to highlight the iterative nature of this proposal. I think it would be most valuable for us to focus on reaching consensus on a framework for how the community fund should be used to drive end user growth, as opposed to agreeing on a specific reward structure that we feel would be impactful, as that is something that the community can iterate on as we gather more data.

Framework

As I understand it, what we’re proposing is more or less a decentralized implementation of a standard consumer growth playbook.

To execute on this playbook, I think it’s helpful for us to agree on the following three questions:

  1. What are the goals of this program?
  2. How will we measure success?
  3. How will we iterate and learn?

This is what I would suggest:

Goals:

  1. Increase the total number of users using Celo as a payments platform
  2. Increase the engagement of users using Celo as a payments platform

Metrics:

  • Sign up rate of users
  • Distribution of cUSD balances held per user
  • Time between signing up and moving value onto Celo (i.e. “cashing in”)

Iteration:

  1. Make some hypothesis, based on the available data, as to a specific reward structure that would further the program’s goals.
  2. Choose a subset of users to automatically enroll, the size of which depends on the confidence in that hypothesis
  3. Communicate the reward structure to the user
  4. Execute, via governance, the rewards distribution
  5. Compare the target metrics across the “experiment” and “control” groups to see if the reward structure had the desired effect
  6. Repeat

Technical implementation

When talking about a specific rewards structure, I think it makes sense to start with the technical implementation of how rewards may be be distributed, as that will restrict the universe of reward schemes that can be supported.

Because this rewards program is intended to be iterative, the technical implementation prioritizes flexibility. The idea is to borrow Uniswap’s Merkle Distributor contract, which allows, in a single transaction, a “commitment” to be made to a merkle tree for which the leaves are (address, balance) tuples. Users can then withdraw their funds by providing the merkle proof corresponding to their address.

Each on-chain governance proposal in this program would fund a new Merkle Distributor contract with the appropriate CELO balance and commit to a new merkle root.

Importantly, this implementation allows for the calculation of “which addresses receive how much in rewards” to be done entirely off chain. This calculation can be done in a simple, lightweight, verifiable, script, that can easily adapt to changes in hypotheses.

It’s also important to note that these rewards are calculated and distributed retroactively. The nice thing about this is that it allows for fraud to be detected before the distribution is made. On the flip side, it makes it impossible to fully guarantee a specific reward to users, since that reward is ultimately contingent on the governance proposal passing.

A first hypothesis

Celo is likely to face the same obstacles to adoption that many other two-sided marketplaces have seen in their infancy. The value prop to users depends in large part on critical mass of users on both sides of that marketplace.

We see an opportunity here to leverage the community fund to help “bootstrap” that marketplace by supporting a “single player mode”, i.e. reasons to use Celo even when the network effects may be limited.

Furthermore, we’ve learned from other mobile money initiatives that it can take a while for users to trust the platform. At first, users may be reluctant to leave money in the platform, because of a perception of increased risk as compared to cash.

One hypothesis is that a small incentive to hold cUSD, paid in CELO, may help attract users by supporting a “single player mode”, encouraging them to hold a balance of cUSD, which, when seeing that cUSD holds its value, will increase trust in Celo as a platform.

The data available here is limited, as are engineering resources (as always :slight_smile:) so we’re proposing the first reward distribution be the simplest test of this hypothesis possible, by providing a reward to a randomly selected subset of users that have completed at least [3] attestations and hold at least [30] cUSD. The reward would be [2%] of their time-averaged cUSD balance over [two weeks]. Eligibility would be restricted to [5%] of users, chosen randomly based on their address.

IIUC, we would mainly expect this to influence the latter two metrics. I’m not sure how we would measure this experiment’s influence on sign-ups, since users will not know ahead of signing up whether or not they would be eligible.

2 Likes

How does the hypothesis framework of

One hypothesis is that a small incentive to hold cUSD, paid in CELO, may help attract users by supporting a “single player mode”, encouraging them to hold a balance of cUSD, which, when seeing that cUSD holds its value, will increase trust in Celo as a platform.

square with technical note that:

On the flip side, it makes it impossible to fully guarantee a specific reward to users, since that reward is ultimately contingent on the governance proposal passing.

How can the incentive/hypothesis be tested if it sounds like Valora or other wallets can’t really advertise such measure? Also is 2% of reward with a 5% chance really sufficient to be even an incentive?

I imagine any wallet mentioning this would make clear it was subject to terms and conditions including the approval of the community governance process. That is standard for any rewards scheme for any app or service.

Current proposed metrics reflect activation steps rather than core activity metrics for the goals stated above. If the end goal is “active & engaged” user for a “payments platform” I would first try to understand the use case of the end user. Let’s say it’s Venmo (p2p payment scenario). In that case, the key metrics could be:

  • first transactions to someone that is not part of the platform yet (this is where part of the incentive/reward would go. Good example could be Pi network and their user growth - you want to add new users)
  • recurring transactions between two existing members (begs a question why someone would do that outside Venmo. A good use case could be EU<>US based “tunnel” users who doesn’t have Venmo in EU and can’t send using Revolut to US. It’s a narrow use case but big enough to go after Transferwise (my monthly fees there are about $20-30).
1 Like

I don’t think this gets to what @nambrot was asking. It sounds like very few users will now get this reward so we can no longer market it to attract users. This doesn’t then test the hypothesis that the reward will incentivize more people to join and save cUSD since they won’t know about it until they actually earn the reward.

In general, I fully support building this reward system as I think it could be a powerful lever to pull in product growth. But I also feel that this initial distribution strategy may not be the best – I agree with @nambrot that 2% reward for 5% users that are not even initially aware of this reward may not have the biggest impact. And it may not even be an accurate test of the hypothesis if we can’t market the reward.

But if we had an onboarding experience that had a series of checkbox one-time rewards, I think that could be a stronger lever to pull. These amounts could be small, but they would provide a more interactive onboarding experience with more instant gratification (like @celowhale mentioned) when the user completes each of the items.

  1. verify your phone number
  2. add >x cUSD to your account
  3. hold >x cUSD in your account for >y days
  4. make a transaction to another verified phone number
  5. invite/make a transaction to a non-verified phone number
  6. make x transactions to other verified phone numbers
    And maybe later:
  7. make a purchase with one of these vendors by sending a transaction to any of these addresses
  8. make a x value donation to this address

It sounds like in a way we are starting with the first two or three. Certainly too much eng work to do all at once. But a single reward opportunity seems less complicated to implement than a “yield-like” rate. And people like checking boxes :slight_smile:

1 Like

I disagree with this wholeheartedly, as wallets can advertise this to the subset of users for whom each distribution would target. The rationale for restricting the first reward to a random subset of users is to learn more about the reward’s efficacy before going “all in”, and to allow for iteration on exactly what the reward should look like as we learn more about how different approaches influence the desired metrics.

I think you are misunderstanding what is being proposed, certainly I agree that the reward needs to be marketed to users in order for there to be an effect

Yes that is what is being proposed, so that we learn what actions are leading indicators of the metrics that we care about. Doing everything you proposed would not only be a lot of work, it would be a lot of work that is not supported by evidence that it’s the right work to be doing. Thus the iterative nature of this program.

Making the reward a function of balance is IMO a necessary measure for sybil resistance.

Yeah I agree that number of escrow transactions made and number of cUSD transfers made would be good metrics to add.

From Governance proposal perspective, it might be easier to just send a proposal essentially asking for a grant from the community fund, and then do all the distribution from the address that you control.

So essentially cLabs team (or Valora team specifically, if there is such a thing), can apply for a grant from community fund to:

  • receive X amount of CELO for the first experiment
  • develop and run a growth experiment for N months
  • report back results of the experiment, measuring increase in user signups and engagement. If experiment results look good, apply for another grant to either run second larger experiment, or to just run larger growth incentive program.

This way, funds can be transferred to an address that the team controls right away, which should give you more flexibility to iterate and try things out more easily instead of having to depend on Governance proposals passing to actually distribute rewards and so on.

Running more complex transactions through governance (like actually approving and transferring funds to Distributor contract) seems like an extra technical hurdle without too much benefit right now.

EDIT: Also I think it would be fine to apply for this proposal right away before fully figuring out the implementation, as long as you already have at least some target metrics you want to measure. (Like user signups + increase in transactions or something like that). This is also assuming that first experiment would need <=100k CELO, which should be fairly reasonable and easy to approve as a grant.

Perhaps the hypothesis is unclear (at least to me).

Our hypothesis is that rewarding early users, who are likely attracted to Celo’s mission and innovative technology, will help grow and strengthen the existing Celo community.

^ in what way? If it’s in attracting more users to the platform, feels like it needs to be marketed beyond just existing Valora users in app. But if its just that users will hold cUSD in their wallet longer than non-rewarded users, then the current implementation makes sense.

In other words, what will be measured to know that we’ve confirmed the hypothesis.

Never mind, I see your updated hypothesis
One hypothesis is that a small incentive to hold cUSD, paid in CELO, may help attract users by supporting a “single player mode”, encouraging them to hold a balance of cUSD, which, when seeing that cUSD holds its value, will increase trust in Celo as a platform.
:+1:

The emphasis I was making here is if this is meant to be a step toward an iterative rewards suite, I’d suggest we consider how we envision rewards to look more wholistically and step toward that – eg. as something that can feel completable to a user, like a one-time reward for holding the cUSD for x amt of time. But seems like this could be done at the Valora level in how this reward is presented to the user.

But seems like this could be done at the Valora level in how this reward is presented to the user.

Yes I agree or any other Celo wallet for that matter