SIP Cohort 2 Opportunity 2: Quadratic Funding Social Network

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

  1. a more regenerative social network
  2. an earning opportunity for people trying to do good
  3. 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.

What could the Lense MVP look like?

for the v0.1:

  1. integrates with gitcoin grants protocol/gitcoin passport and lense.

admin backend:

  1. kevins address (owocki.eth) can setup a new QF round (attributes: start date, end date, amount in GTC)
  2. kevins address can payout any QF round after the round ends.
  3. assume only 1 round active at a time for now

user frontend:

  1. fork of lenster.xyz at quadraticlenster.xyz
  2. replace like button with microtip button
  3. WRITE USER CASE: ppl can see their match estimates when they microtip
  4. READ USER CASE: on top of the microtip button, users can see current amount of tips / matching

if possible:

  1. use grants protocol for QF matching
  2. use passport for sybil resistence

future iterations:

  1. more ppl can create QF rounds
  2. more rounds than 1 at once
  3. sort ranking based on microtips
  4. passport integration
5 Likes

also, DeCartography is building the social graph generated by human assumption.

1 Like

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.

Ideas for an MVP to test the concept (v0.0.1)

quadraticlenster.xyz

Grant owner

  1. grantowner.eth (anyone) can setup a new QF round (attributes: start date, end date, amount in GTC)
  2. grantowner.eth can define requirements for matched lens publications (whitelisted profiles, passport, PoH, nft holder, max publications per profile, post content limitations)
  3. 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

  1. user.lens can create a new QF publication (attributes: referralFee, referralFeeLimitations, collectLimitations, receiver address)
  2. user.lens can apply for a round with a QF publication
  3. 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

  1. donor.lens can see all active QF publications with likes and comments like on lenster.xyz
  2. donor.lens can donate to active QF publications
  3. 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

Updates

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

  1. Add deploy scripts for mumbai testnet and polygon mainnet
  2. Allow publisher to set min_amount for collectors or to activate referral incentives
  3. Build the frontend for quadraticlenster.xyz

very cool. any way i can checkout what the UI looks like?

are you looking to pick up more builds?

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

Interesting stuff.

I have some fundamental concerns though.

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!

Moving forward with this.

Iā€™ve refactored some code, deployed contracts on Polygon (Allo + custom lens collect module) and integrated Lens collect settings in the grant manager UI

Deployed Quadratic lenster contracts (mumbai testnet):
GitcoinCollectModule: 0xb6ab8ae7af9b9f9c976bc3d8313b014f05ab3676
LensCollectVotingStrategyFactory: 0x1db4df782fc162a50ea4f850dece74013e524d39
LensCollectVotingStrategyImplementation: 0xf9d0cfb971df854098aaa7a8ebcc80ac4b8fb4f1

Deployed Allo contracts (mumbai testnet):
ProjectRegistry: 0x833d74951a27be359ccbf17ba5b41aa940a002f6
ProgramFactory: 0x679611a4df9bf645f4b099b005ec506f35a997f3
RoundFactory: 0x49821900bc4a92c26fc17142baea10b490794be3
MerklePayoutStrategyFactory: 0x0d738f93eae8a4e614a81526969798d814aa095f

Default Allo subgraph deployed on mumbai

I also started thinking about the UI of a post on Lenster. Here is a simple mockup idea

thanks @izziaraffaele - looks great. i should intro you to the team that is doing the QF social network on lense for me.

1 Like

Sounds like a coordination challenge :sweat_smile: :rofl: :joy:

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!

1 Like

Thanks again for the fun call today!

Weā€™ve been working on a similar but slightly different implementation with Raid Guild and am posting here to move our conversation to public :slight_smile:

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.

Repo: GitHub - supermodularxyz/quadratic-lenster

Edit: typos