Inspiration

We often hear people say, "I'd love to donate to charities, but I just don't have the budget for it." What if you could support the causes you care about without the financial strain or commitment pressure? The Social Bank project was inspired by this very idea, offering a way to make a difference without needing a separate donation budget.

What it does

VISION (based on our understanding of what's currently possible to do in blockchain): Social Bank is a project leveraging blockchain technology to allow users to generate yields from their savings, which are then donated to charities, all while keeping their principal secure and accessible. After selecting one of the charity available on the Social Bank platform and after depositing their savings (in USDC) in the contract, it will automatically deposit it into the DeFi protocol (AAVE) to earn yield. After depositing the money, the user received a 1:1 USDC backed token (socUSDC). This token allows the user to instantly withdraw his principal. Through the Chainlink automation the earned yield will automatically be transferred to the charity wallet periodically.

Using CCIP:

  • Users can deposit money from any on-chain network.
  • The deposit is transferred to the AAVE protocol across multi-chain pool.

Using Automation:

  • Generated yield is periodically transferred from AAVE pool to the charity wallet.

CURRENT STATE OF THE PROJECT: Because of time constraints, we couldn't achieve our vision. This is where we got to. User selects a charity on the Social Bank platform (Polygon Amoy) and deposits their USDC into the Social bank contract. The user then receives a 1:1 USDC backed token (socUSDC) which allows the user to withdraw their principal. The contract uses CCIP sender contract to transfer the deposit from Polygon Amoy to Avalanche Fuji. The CCIP receiver contract receives the funds, then it deposits the USDC into the staker contract which imitates the Defi yield earning protocol. (We want to use AAVE for this, but not enough time).

SocialBankEngine.sol: Allows users to deposit money from the Polygon Amoy and returns the 1:1 backed token.

CCIP Sender contract: Transfers USDC from Polygon Amoy to Avalanche Fuji.

CCIP Receiver contract: Receives USDC from Avalanche Fuji and deposit the funds into the staker contract in Avalanche Fuji.

Staker.sol contract: Is a representation of the AAVE pool that we didn't have time to integrate. Allows the 1:1 backed token to be withdrawn and sent back to the Receiver.sol contract in Avalanche. However, we didn't have enough time to allow the user to call this function and redeem.

How we built it

Language: Solidity Technology - CCIP Chains - Polygon, Avalanche, Sepolia

CCIP usage in our contracts:

https://github.com/brucedegar/socialbank/blob/master/src/ccip/CCIPReceiver.sol https://github.com/brucedegar/socialbank/blob/master/src/ccip/CCIPSender.sol

Challenges we ran into

No Web3 experts and only 2 devs (rest of the team included a Project manager/UX member and true Chainlink enthusiast with a lot of knowledge about the Chainlink products). Only blockchain enthusiasts with minimum technical blockchain skills. Didn't have time to do everything we wanted with CCIP. Didn't have time to implement Automation. Didn't have time to implement AAVE protocol. The UI developer left the team one week before the project submission so couldn't get the frontend done.

Accomplishments that we're proud of

  • Getting a proof of concept ready for submission.
  • Working on a project that we believe can have a positive real-world impact
  • Creating a framework that can apply to many concepts (i.e. Tuition fees)
  • Creating a team, finding ways of working together remotely and keeping serious and motivated throughout the Hackathon.

What we learned

Everything we could about the Solidity language and using Remix. Everything we could about CCIP.

What's next for Social Bank Project

  • Moving from the proof of concept to the final production stage (based on our vision and architecture).
  • Frontend and backend integration.
  • Allowing users to deposit money from any network (not just Polygon).
  • Bringing full transparency on how charities spend the money they receive from the Social Bank platform to avoid trust issues.
  • Surfacing more data on the frontend. For example: How much money is already in the pool, how much yield has been generated for each charity, how much money the Social Bank project has donated since the beginning.
  • Allowing charities to run different types of campaigns: ongoing, temporary, fundraising target.
  • Reward people that deposit money with a soulbound token (NFT) based on the contribution.
  • Creating the onboarding flow for charities to join the Social Bank platform.

Built With

Share this project:

Updates