project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5

Chain of Impact: Witness the Change

Empower your donations with transparent blockchain data management, and stay updated on the real-world impact of your generosity

Chain of Impact: Witness the Change

Created At

Scaling Ethereum 2023

Winner of

👯 Polybase — Pool Prize

Project Description

Chain of Impact revolutionizes the charitable giving landscape by leveraging transparent blockchain data management to empower donors and support organizations. This project enables users to track their donations and witness their impact firsthand, fostering trust and accountability within the philanthropic sector. Experience a new level of engagement with your favorite causes and stay updated on the tangible outcomes of your generosity.

How it's Made

Chain of Impact uses Polybase for the database, Nodejs for backend, React for frontend, Polygon zkEVM for the chain, and NFT.Storage for storing images.

App flows

User is an organization:

Sign in with Wallet Connect → create NFT for donation in Admin → NFT saved to Polybase → Submit data updates per NFT → updates saved in Polybase

User is a donor:

Sign in with Wallet Connect → View NFTs for minting → Mint NFT → unlock ability to view data updates

Polybase

Created collections for users, data updates, NFTs, creators, and token ID tracking An organization’s NFT is saved in Polybase (not yet minted) with their wallet address as the creator.

When minted by a donor, the NFT is updated with the token ID, contract address, and owner wallet address.

The token ID collection is used to serve the contract with a token ID to mint the NFT Pro tip: It’s easier to store the data in Polybase and read from there than read from the chain!

Polygon zkEVM

Used an OpenZeppelin NFT minting contract

Set token URI to the Polybase NFT collection’s URL and NFT id Metadata shows properly formatted in the Polygon zkEVM Testnet Explorer

Other

NFT images are manually uploaded to NFT.Storage and the link is provided when creating the NFT. Ideally, we would’ve liked to have the user upload an image file and on the backend store the image on IPFS for the user.

A donor can mint an NFT but no transaction is made. Ideally, we would’ve liked to have the full transaction go through for the donor to actually pay.

Added a “network” field for each NFT in the schema to allow for flexibility to mint on other chains and keep track of it.

Ideally, data Updates in Polybase would be encrypted.

background image mobile

Join the mailing list

Get the latest news and updates