This posts builds upon the ideas in Quadratic Funding Social Network. Please read that post before continuing along with this one.
We would like to build a Quadratic Funding Social Network in Q1 2023. Such a system would upregulate posts based upon what is micro-tipped the most, not what is liked the most, which would create
a more regenerative social network
an earning opportunity for people trying to do good
a compelling 10x-better usecase for web3 social
What should we build it on?
Web3 - Lenster
We could build QF Social Network on Lense Protocol. Picture https://lenster.xyz/ but with Quadratic Funding - powered microtips as the main engagement mechanism for users (and sorting mechanism for the feed) instead of likes.
Web2.5 - Discord
We could build QF Social Network on Discord. Weād build a discord bot that you could use to give out micro-tips on your favorite discord server, a QF social network seamlessly integrated to where your community already is
Web2.5 - Twitter
We could build QF Social Network on Twitter. Weād build a twitter bot that you could use to give out micro-tips on in twitter, a QF social network seamlessly integrated where your community already exists.
Sounds like a perfect match for DeSo (https://deso.com). They have micro-tipping built-in with diamonds (https://diamondapp.com) and super low transaction costs.
One of the community members also created Discord bot for micro-tipping inside of a Discord server.
They are not EVM (no smart contracts), but they have Metamask login option. Their public keys are compatible with Ethereum which means they could use Gitcoin passport. Gitcoin passport could run a script that check profiles based on Ethereum addresses and use associations primitive to label users with Gitcoin passports.
But Iām not sure how gitcoin grants protocol works. I would need look into it.
I guess Lens could be used for it too. Microtip could be a paid collect (which is better that simple transfer because itās automatically associated with the post) with different icon and UI and perhaps variable pricing.
It would probably need own indexer to index posts, because Lens indexer uses itās own āalgorithmsā for a discovery feeds.
grantowner.eth (anyone) can setup a new QF round (attributes: start date, end date, amount in GTC)
grantowner.eth can define requirements for matched lens publications (whitelisted profiles, passport, PoH, nft holder, max publications per profile, post content limitations)
when the round is over, grantowner.eth can start the payout to matched publications. Each publication donation will be matched with GTC from the round based on the amount and the quantity of the donations received. (would be nice to include other factors)
Publication owner
user.lens can create a new QF publication (attributes: referralFee, referralFeeLimitations, collectLimitations, receiver address)
user.lens can apply for a round with a QF publication
donation sent to user.lens publication will be transfered to user.lens wallet immediately. Matched GTC amount will be received by the user when the round is over.
Donor
donor.lens can see all active QF publications with likes and comments like on lenster.xyz
donor.lens can donate to active QF publications
donations (minus referral fees) are directly sent to the publication owner
lenster.xyz
Anyone on any Lens platform can potentially donate to an active QF publication by collecting its post!
Implementation
On the smart contract side this logic can be encapsulated in a QFCollectModule that can be built on top of the SimpleFeeCollectModule.
It could be a very generic implementation that can be used by anybody and allows for future iteration that might be more specific to gitcoin or supermodular modules.
Using this module, if we post with gitcoin.lens profile like KoruDAO we could potentially allow anyone to create QF Publications even if they donāt have a lens profile
@owocki Happy to work on this if you like the idea
Iāve playing a bit with the above ideas and here is what Iāve got.
This is a first release of my Gitcoin Collect Module for Lens protocol.
This repo contains basically two components:
a custom Voting Strategy that process votes coming from both the grant explorer and lens protocol. If a vote comes from Lens protocol it will check if it wasnāt already casted and emit a Voted event with data (amount, voter) coming from the Lens collect NFT. Otherwise it will use the standard Gitcoin way of processing votes.
a Gitcoin Collect Module for Lens protocol which allow lens users to apply to a gitcoin round using their publication. This module will cast a vote by calling the round implementation whenever a user collets a post submitted with this module. Using this module publisher can also set a referral incentive.
Next steps
Add deploy scripts for mumbai testnet and polygon mainnet
Allow publisher to set min_amount for collectors or to activate referral incentives
No UI yet, only contracts. The frontend is actually in the next steps.
I will try integrating lens based grants within the grant-explorer/grant-manager before going for a custom UI.
Additionally I could work with lenster on their public repository to add support for the gitcoin collect module directly in their frontend before building our own fork.
I would love to contribute more on supermodular. Whatās on your mind? Send me a DM or reach me out on TW if you want
I just forwarded that link to Unfinished re. Project Liberty, because Iām keen to really grapple with the design contradictions / tension here, and need a sparring partner or three!
Iāve refactored some code, deployed contracts on Polygon (Allo + custom lens collect module) and integrated Lens collect settings in the grant manager UI
Anyways I enjoy a lot working on it and, at the end, I have a proof of concept that can easily become a working prototype for a dapp. So maybe it makes sense for me to apply to few grants with this (gitcoin? lens?) in the hope to receive some donations to keep working on it.
Next step: UI for publishers!
I still havenāt put my hands on grant explorer code but Iām confident this could be integrated into it with a simple āshare with lensā button and a modal to specify settings but Iāll probably make a small independent react app just for fun!
Weāve been working on a similar but slightly different implementation with Raid Guild and am posting here to move our conversation to public
It would probably be valuable to roll out some Grants infra since theyāre not on Polygon and probably wonāt be in the near future. So @izziaraffaele and I agreed on aiming to share the Grants infra (contracts, payout APIs, etcā¦) that all off our applications could use.