Inspiration💡
International organizations like the United Nations have always made significant efforts to provide humanitarian aid worldwide. However, when I browse the official UN website, it's hard to find information about the flow of donated funds. Such enormous public funds lack an open and transparent channel for public supervision, which could potentially lead to uncontrollable consequences in the future. This issue can be easily solved by utilizing blockchain technology and the Chainlink infrastructure.
What it does⚙️
DonateUNLai allows authorized United Nations personnel to use their wallets to deploy a donation contract on Sepolia. During the deployment process, users need to provide project details such as the title, description, fundraising amount, and end time. Once deployed, anyone can donate to the contract address and receive a random NFT as a reward. The deployer can continuously add beneficiaries until the end time. Once the end time is reached, the contract will distribute the raised amount among the beneficiaries. Besides, through CCIP, users can donate assets from other chains to the donation contract on their respective chain.Then display the amount raised through the data feed service.
How we built it🛠️
The frontend of this project was built using Next.js, ensuring a seamless user experience in terms of product and UI design. The backend is developed with Express.js, storing user information and historical data off-chain to reduce gas consumption and improve response times. The contract uses Hardhat for development, focusing on asset transfer, while leveraging reliable services from Chainlink to enhance system security.
Challenges we ran into
Initially, we planned to use Chainlink's Functions service to retrieve some of the donation contract data users created off-chain. However, since the Functions service currently does not support creating a new subscription from a contract address programmatically, we couldn't use it for this project. VRF 2.0 did not perform well in the Sepolia, so we update version 2.5.
Accomplishments that we're proud of💪
- We've achieved automatic registration and management of VRF programming functions and cross-chain asset transfer through CCIP.
- Creating a secure and efficient front-end and back-end login authorization solution.
- Throughout the project, we maintained a user-centric approach, with a beautiful and user-friendly interface in the front-end, and efficient storage of historical transaction data using technologies such as MongoDB on the backend.
What we learned🎓
This project provided us with valuable knowledge about blockchain technology and deepened our understanding of Chainlink's architecture. We gained practical experience with multiple Chainlink services, which improved our understanding of its reliability and power.
What's next for DonateUNLai🔮
- Implement a decentralized supervision and audit mechanism, including the verification of official personnel and donor information.
- Explore solutions for fair distribution of donations based on AI or algorithms.
- Promote and popularize our platform to assist organizations and institutions with relevant needs.
Built With
- avalanche
- ccip
- chainlink
- express.js
- github
- mongodb
- nextjs
- react
- solidity
- taiwind
- typescript
- vercel
- viem
- wagmi


Log in or sign up for Devpost to join the conversation.