TLDR
- IDriss is back with the Twitter donation widget for GG20, now enabling cross-chain donations.
- Donate from 6 major EVM chains in seconds, with a bridge fee as low as $0.05.
- We’ve proposed a technical solution to the Gitcoin team for including these donations in the matching calculations with minimal effort and no changes to the Allo protocol.
This post aims to document our work, share context with the broader community, and possibly spark a conversation about the composability of the Allo protocol with regard to matching donations made via frontends built by external dev teams.
Context
During the Gitcoin GG18 round, we’ve onboarded grantees to receive donations via our browser extension for Twitter. A total of 377 unique donors made impressive 1,186 donations to 155 grantees. Take a look at the Twitter love board with reactions from grantees and Dune dashboard with stats.
During ETHDenver 2024, we developed a prototype that expands the functionality of the donation widget and enables cross-chain Gitcoin donations, receiving the first prize from the Across Protocol team. Over the past two months, we’ve been focused on incorporating the prototype into the live product for GG20.
Cross-chain widget for GG20
Today, we’re happy to share that the cross-chain component powered by Across Protocol is live, together with the the start of GG20. Watch the demo below, or check out the announcement thread.
Specification:
- We support donations in ETH on 6 major EVM chains: Arbitrum, Base, Ethereum, Linea, Optimism, zkSync Era.
- The test round in the demo above is deployed on Optimism, so what you’re seeing is an Arbitrum to Optimism cross-chain donation.
- The $0.24 you see on the demo is a fee necessary to perform the bridging operation. This fee varies, and it’s often as low as $0.05. You can find more information about the bridge fees in the Across Protocol’s documentation.
- We didn’t have to compromise on speed; it’s comparable to regular transfers. Across has consistently maintained its reputation as the fastest and lowest-cost bridge for end-users. Their recent milestone of crossing $7B in all-time volume attests to its reliability.
- We set a minimum donation amount of $1. This ensures that bridging relayers can process transactions smoothly, without significantly limiting donors (usually $1 was the minimum amount eligible for matching).
- If for any reason the bridge transaction cannot be processed (e.g. donation is sent just before the round end), the donor receives back their funds after 6 hours.
All the code is open-source and can be verified here: browser extension, smart contract. No user funds are stored, and there are no token approvals. The contract code has undergone a sanity check by an independent smart contract developer.
Matching
The question that naturally comes to mind is: will these donations be matched?
Unlike the same-chain donations we built for GG18, where all the donations fell into the Gitcoin indexer pipeline and were therefore automatically included for matching and showed up in the history page, the cross-chain donation component required us to introduce a wrapper smart contract, consequently obfuscating the original donor.
We’ve developed and proposed a non-invasive solution for including these donations in the matching calculations with minimal effort and no changes to the Allo protocol. Donations made through our extension issue onchain attestations via the Ethereum Attestation Service. These attestations are issued in a decentralized manner, making them immune to spoofing or alteration. You can read the complete technical explanation of the solution here.
Knowing about the plans to make Allo the ultimate composable funding allocation protocol, we think this is something worth solving not only for GG20 but also for any future dev teams building independent frontends.
About Us
For those of you who don’t know us yet, you can follow our work on the channels listed below.
Gitcoin Grant - Website - Twitter - Farcaster - Discord - Mirror Blog - Docs - GitHub
Feedback and ideas are very welcome. Tagging relevant folks for visibility: @meglister @sov @umarkhaneth @owocki @kyle @jeremy @carlosjmelgar @thedevanshmehta.