Metacamp Micro-QF Round Wrap-Up/Review 🌊

A couple weeks ago I attended MetaCamp - MetaCamp is “an unconference event organized by members of MetaCartel key players of the DAO ecosystem, hosted in Costa Rica…”

The event was an opportunity to chill out in the beauty of natural Costa Rica and also to nerd out on mechanism design and DAOs while we were doing it. In typical unconference style, the ~40 members of the community self-organized around what it wanted to do. This meant hiking, surfing, yoga, a boat trip, trips to the beach, and unconference sessions - but also more mundane activities like running to the local town to pick up supplies, supporting the food/drink of the event, logistics, etc.

The event was a fantastic opportunity to reconnect with the beauty of nature and also an opportunity to connect with a lot of cerebral ideas. “Coordination” is a buzzword with this group; so I know I had found my people. :slight_smile:

I decided to take the opportunity to test out Gitcoin’s new Grants round manager. What would it look like to run a small quadratic funding (QF) round for ppl to support the people who made the event great? So far, Gitcoin Grants has been used to support projects that create public good, could it be deployed on a micro-scale to support people who created public good for a small unconference?

This felt like an opportunity to reward the people who contributed to the vibes( eerr… the public goods) of the event.

Another result of the round would be a mapping of the web of trust of the metacamp community. By seeing who in the community had contributed the most to the public good of metacamp, we could reinforce that behavior.

Screenshot 2023-05-17 at 8.04.22 AM

Of course, QF is not a perfect mechanism - nor the only mechanism we could have used. QF can sometimes be a Keynesian beauty contest (a mechanism that selects for the most visible/popular ppl, instead of those who contributed to the public goods)… Running this experiment would be an opportunity to find out what types of behavior ppl would fund.

Maybe next year, if there are more voting strategy/payout strategies in Gitcoin stack, we can experiment with other mechanisms for supporting public goods - things like Quadratic Voting, gift circles, NFTs, or other mechanisms for measuring and funding what matters.

This round was also an opportunity to take Gitcoin’s tech stack for a spin on the L2. The most recent main Gitcoin round, the Beta Round was run on a L1 and had very high gas fees. What would contributions look like on a L2?

I used to spin up a Metacamp Program and a Metacamp Round. A program has a one-to-many relationship with a round. E.g, I could reuse the Metacamp Program again in 2024 and create a Metacamp 2024 round if I chose to.

One hiccup we ran into is that the Gitcoin UI on round-manager forces two date ranges,

  1. Application date - when Grants can apply to the round
  2. Round (which maybe should be named ‘Crowdfund’) - when ppl can fund those grants.

The UI will only allow the crowdfund to begin after the applications end. This forced us to try and decide who could be in the round before the crowdfund started… when we would have preferred to have some overlap between the two periods.

Another wrinkle was that we did not feel like an “application period” was the right fit for an unconference style social community like Metacamp at all.

  1. People were busy surfing and hiking, they were not checking telegram often. So they could not be relied upon to submit a grant.
  2. While most people would feel fine receiving funding for contributing to the public goods of the event, people would likely not want to be seen seeking funding for it.

For this reason, we figured that if we accepted applications for the round, we would have had about ¼ of the participation as if we just loaded all of the attendees into the round (100% participation).

But what were the privacy implications of loading everyone into the round? The event itself was ticketed via NFTs, so everyone’s information was on chain already. But we felt that we could not proceed without allowing attendees the opportunity to opt out.

After giving attendees the opportunity to opt out, we proceeded to ingest the attendee database into the granting system. But we hit another wrinkle, Gitcoin’s system expected everyone to submit their own grant application. And there is no bulk uploader for a round manager to simply create the grants on behalf of their attendees.

We worked around this by assembling a crack team of DAO nerds that was in charge of ingesting all of the grants into the system and then transferring the grants to the users themselves. This ride or ride crew took about 45 minutes to clean and ingest the 40 participants to the event (plus 4 locals who were helping out) into the Grants system.

In addition to the attendees, we also decided to include locals who helped out with the event into the QF round. The babysitters who watched the children, a woman who taught us a cooking class, and the staff from the hotel we stayed at, were all included. For those locals who were not crypto native, we decided that we would use addresses that one of us controlled for each of their grants, and that we’d settle up with the locals in cash after the round. This goal was to minimize the complexity of onboarding the locals to using crypto. In my opinion, more projects should be focused on providing value to people first and then onboarding them to crypto second - not the other way around. I’m sure they’ll be more interested in crypto if we give first. Lets not confuse the means (crypto) with the end (reward people who contribute to public goods).

At this point, the QF round had momentum within the social commons of the group. I put 3 ETH in myself, and was happy to see that I was matched with 3 ETH from Metacartel’s Ethos project, and .26 ETH from other participants, bringing the total pool of funding to 6.26 ETH.

Did I mention that this was on a L2? It cost about $4 to launch the round, $2 to apply to the round, and each contribution cost about $.50 in gas fees.

Over the next few days, contributions to the round began to roll in.

The contributor experience was similar to the typical Gitcoin Grants contribution experience.

  1. Go to the round explorer.
  2. Add grants to cart.
  3. Checkout

I even printed out these fun little promotional fliers for the round using the hotels printer.

After all was said and done, the round stats looked like this:

  • 4 ETH in crowdfund contributions
  • 6.28 ETH in matching funds
  • Total funding: 10.28 ETH
  • 41 grants
  • Average earnings per grant: 0.25 ETH.
  • 31 ppl contributed to the round
  • 529 contributions were created
  • An average of 17 contributions per person.

This is what the social structure of the round looked like. Each gray circle is a “grant”, and each blue/red contribution is a contribution to the grant.

All in all, I’m proud of the experiment that we ran. Especially the fact that the hotel staff, babysitters, and organizers are all going to get $300+ bonuses each from the round (some will receive over $1000).

Next time around, I’d be interested to explore a different funding mechanism (like Quadratic Voting, a giving circle, etc) for the round… And I’d like to be able to accept applications to the round during the round because theres a few organizers/locals we forgot to add the first time around.

I don’t think people realized that the new Gitcoin Grants tooling can be used in this way (or even that anyone can self-serve create a round at all). So I was happy to take the new tooling off the beaten path a little bit and experiment with a new form of social coordination.

Pura Vida :ocean::rainbow:


Some assorted feedback I got during the round:

Would be really nice to see who made the most donations or how many each person made but not on the receiving side.

never seen a private qf round that turned out to be an observation for emerging connections and contributions from a group (or a past event), this was a really cool new use case for the mechanism, thank you for setting this up!

I noticed the random sorting on refresh or page load as well. It would be great to either have a static loading or sorting options selected by the user. Alphabetical, most interest/signaling, etc. This randomness may have been their way of not giving priority to a single project, etc. however it is a bit distracting/interrupting to the end user experience.

the page navigation is really weird on this site. Everytime I click into a grant and “Add to my cart” it should take me back to the section I was browsing before, but it appears that all the grants are shuffled at random instead ?

I think it went really well for yolo test case of a new platform, education is key for this kind of thing to work and we can get ahead of it early for the next one :point_up:t3:

i did it yesterday it’s super easy, i like the shopping cart method

It was hard to explain how Quadratic Funding works to people in a concise way. We did lean on but it was still hard.

A handful of people were wondering how much match they were getttng for a contribution and tried to do the math. It would have been nice if the UI showed the answer so ppl dont have to do the match.

I turned off Gitcoin Passport in the round manager UI for the round, but during the contribution experience, the UI still prompted people to sign up for passport or their contributions wouldnt be matched. I think if Passport is off for the round, then the contributors should not get that prompt.

It’d be nice to have other sybil defense mechanisms available. I this case, I had the addresses of everyone who could participate. Rather than using Passport or nothing, the round manager could have allowed me to upload everyones address (into a merkle tree for gas efficiency of course) and just use that for anti-sybil.

A few folks had trouble finding their funds for the round and needed to be reminded to switch their wallets to optimism. (and this was a pretty crypto-native crew).

There is no way to see who you contributed to or who contributed to you without sleuthing on Etherscan, which is kind of clunky.

There were a few small UX issues during the round (eg you cant input .1 into the amount field on the checkout page, only 0.1…. On metamask mobile the ‘amount’ page doesnt accept decimals at all. The dates/times in the UI are all UTC instead of localized to our timezone, which means ppl were confused about the start/end dates, etc)



  • I cofounded gitcoin but I have been disaffiliated from leadership of the DAO for about a year.
  • The DAO is now in charge 100 pct.
  • I am passing along “consider” feedback. None of the feedback is directing any work in the DAO.
  • I hold GTC.
  • All of the information about Gitcoin in this post is public information.
  • Nothing in this post is financial advice.

Very cool!

Did I mention that this was on a L2? It cost about $4 to launch the round, $2 to apply to the round, and each contribution cost about $.50 in gas fees.

In the future, would love to see a round manager be able to offer gasless applications + voting/contributions on a L2 with strict passport eligibility requirements and/or allowlisting to prevent attacks


thanks @owocki – great feedback! putting it into product board :rocket:

as a newbie to the Quadratic Lands, I have to say it makes me feel “less dumb” that you still have trouble explaining QF. :slight_smile: that said, points to a bigger opportunity to reframe QF using values-oriented language, perhaps something like Nike talking about NFTs:


Great experiment and writeup - as far as I know, you’re the first one to spin up and complete a fully self-serve QF round on Grants Stack which seems fitting :grinning:

Also, I found this super interesting - the need for something like this has never crossed my mind but as we try to onboard more non-Web3-native users to the ecosystem I definitely see the value in it. I’m also curious how much it would save in gas (moreso for mainnet rounds) to collect applications off-chain and submit them in a batch through a single transaction. Would love to hear some more thoughts around this from product and ops folks as Grants Stack development continues.


One of the hackers in the supermodular ecosystem has been working on a batch grant upload tool. Here is a demo..

This tool is more for the convenience of uploading a batch of participants vs saving gas (gas was p cheap on optimism) tho.

Permissionless protocols ftw!


IMO this should be configurable by the round owner. The use case is clear, but there is also a use case for hiding this information and even hiding all current stats (how many people have donated so far etc) so as not to bias or add undue momentum to the results. Whether a project is looking hot at the time of the user logging in and voting is not necessarily an accurate indicator of anything and can be manipulated.

I’m a fan of alphabetical provided that the list is short enough to scroll through to the end. Trending may encourage users to stop browsing early. But of course it would be great to implement all the things (or even roll a custom feed plugin system like Bluesky) and let operators set defaults/recommendations and users choose.

I wonder if people care that it’s QF behind the scenes, or that it’s sqrt and square, versus something more handwavy like - your match is multiplied by roughly the number of people who donated, in order to emphasize applicants with a broad/public impact.

1 Like

+1 to considering sorting a design choice of the round operator. Having a round configuration amplifying trending grants isn’t necessarily bad. Popularity is a great signal and creates certain kinds of results. But it could drive sub-optimal outcomes in other contexts.

Love the plugin idea. Also easy to start out by having a variety of sort mechanisms that round operators can select from in the explorer view for their round.

Personally, I think sorting / shuffling are fine, the problem is when you are in a session, if you click a grant link to view it, and then go back to the explorer, you lose your bearings.