Donation Appreciation

Donation Appreciation

Donate any ERC20! Meme coins, pointless airdrops, random legacy coins... every little helps. Once the pile gets big enough, it gets converted to USDC and donated to a good cause...

95
Built at ETHPrague 2024
Zircuit.com: 🥇1st place

The problem Donation Appreciation solves

These days, there are many tokens... meme-coin, airdrops, legacy coins which are not accepted anywhere as donations. On the other hands, organisations usually want to recieve a sum in stable coin, not a portfolio of tokens.

Donation Appreciation is a donation dApp accepting all ERC20 tokens. It allows you to 'sweep' your wallet of all of these tokens in one transactions. You save gas, avoid potentil tax implications of swapping them and support a good cause at the same time.

All the donated tokens are converted to USDC at once when their collective value reaches the target. The fundraisers can therefore capture the appreciation of a variety of the tokens, especially in bull markets or pumps.

Creating a fundraiser is quick and easy. The benefiting wallet is know from the outset, so the donor can see where the funds go and how they are eventually used.

Tech

When the donation hits the target (in USDC), UniSwap is used to swap all tokens for USDC, before transferring the USDC to the donation recipient address. To check if the donation ERC20 holdings are greater than the donation target before swapping, we create an EigenLayer AVS to verify this.
For more tech details, please see Readme on Github

Challenges we ran into

-Testing the Uniswap V4 stuff was a challenge, our project is made with Hardhat. But we needed to use Foundry scripts to test the Uniswap flow, so as a workaround we used a seperate repo to test the Uniswap contracts.

-It was difficult to integrate EigenLayer with external protocols. Also we fixed a bug in the Hello World repo, which caused issues when executing the make commands. After the hackathon we will submit a PR to the repo for this. Also we added 1 additional step in the readme, to help people get started more easily.

-Deploying in Zircuit was very easy, and also verification of the contracts was very straight forward. Only issue was the frontend intergration. On the Scaffold-ETH 2 starter repo we could integrate almost all chains using viem, but Zircuit isn't available yet. See the available chains here. We added it manually in our project, and will submit a PR to viem to make it available for future developers.

Tracks Applied (10)

Build any dapp on Linea

Smart contract deployed and verified here: DonationContract.sol on Linea Testnet PoolBatchSwapTest.sol on Linea Testnet

Linea

Best DeFi project

We created a unique batch swap feature to make our donation dApp more gas efficient. This batch swap feature is a sepera...Read More

Mantle

Best UX/UI project

Our donation tool accepts any ERC20 token and multiple ones can be sent in one transaction. This not only saves gas, but...Read More

Mantle

Best Hackathon Project on Zircuit

Deploying in Zircuit was very easy, and also verification of the contracts was very straight forward. Only issue was the...Read More

Zircuit.com

Decentralized Community Resilience Award

This donation tool can easily be used by communities to fundraise for various causes in any ERC20 tokens. For example, ...Read More

Best New Subgraph

To query campaigns we created a subgraph that qustores eries newly created campaigns as Campaign entities. When donation...Read More

The Graph

Pool Operators & Research

We customized the PoolSwapTest.sol to create the PoolBatchSwapTest contract, enabling efficient batch token swaps using ...Read More

Uniswap

Best use of EigenLayer AVS

We created our own Eigenlayer AVS to verify the total value of the donated ERC20 in a single campaign are at least equal...Read More

EigenLayer

Prototype a Superchain Superpower

The BatchSwap contract can leverage new usecases, such as the Donation Appreciation showcases. The BatchSwap is a gas ef...Read More

Optimism

Launch a Creative MVP on Polygon Cardona Bounty

We created a unique donation platform that allows new ways of raising funds. The target can be reached by shilling the b...Read More

Polygon

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion