This is the repo containing the smart contracts for Munus. The repo containing the Munus front end can be found here: https://github.com/fredo/munus-ui
We've used Foundry for the project. Tests are available in /tests
Contracts are delployed on Base at: https://basescan.org/address/0x744fDb6CC91C3E86Be09A4d49cA77386A21f3dAc
Munus allows anonymous donations to charities. It utilizes Firn to decouple the address of the donator from the transaction to the charity. The donator can at any point in time reveal the secret used to hash the transaction data in order to prove that they did indeed perform the donation. This can be useful for tax returns or other situations where it might be necessary to prove that a donation was done.
- Prerequisite: User has funds on Firn (currently only Base supported)
- User connects to Munus website with Metamask using the Firn MetaMask Snap
- User selects address of charity and donation amount and hashes it with a secret
- Firn Snap creates proof for transaction and calls the Munus smart contract
- Munus smart contract registers the hash of the tx and forwards the funds to the charity
- User can at any point in time show that he did the transaction buy revealing the secret (currently a "one of" event)
- Charity registration / KYC to assure charities receive money
- zkp for the donation proof in order to choose who to reveal to
- Automatic donation receipt generator
- Arbritrary wallet supprt (dependent on wallets supporting MM Snaps)