CharityProtocol on Aptos
Abstract
This product is an update to the existing product "OnChain CloudFunding by WASM," aimed at WaveHack's "Build a Aptos Dapps."
In Japan, a seismic disaster occurred on New Year's Day 2024 due to an earthquake.
At that time, numerous blockchain protocols successfully raised donations through cryptocurrencies and achieved certain outcomes.
However, it became evident from the current situation that there are various challenges associated with donations via cryptocurrencies.
CharityProtocol aims to serve as a protocol for smooth implementation of donations during crises using cryptocurrencies, functioning as a public good.
このプロダクトは、WaveHack: "Build a Aptos Dapps"のため、既存のプロダクトである"OnChain CloudFunding by WASM"のアップデートを行うものです。
日本では、2024年の元旦に地震による震災が発生しました。
その時、数々のブロックチェーンプロトコルが、暗号資産による寄付を募り、一定の成果を収めました。
一方で、暗号資産による寄付には、様々な課題があることが、現状認識として明らかになりました。
CharityProtocolは、暗号資産による有事の際の寄付を滑らかに実施する、公共財としてのプロトコルを目指します。
Baseline Product
https://app.akindo.io/communities/0ngdOEZj3iNrQ8v8/products/K8dojE9lMhvQ6djq
Application URL
https://charity-frontend-aptos.vercel.app/
Deployed module on Aptos Testnet
Repository (Smart Contract) (Move)
https://github.com/YasuYasuonFire/charity_contract_aptos
Repository (Front end) (react)
https://github.com/YasuYasuonFire/charity_frontend_aptos
Repository (Smart Contract) (Original WASM ver.)
https://github.com/YasuYasuonFire/wasm_cloudfund_contract
Update
wave1:
- Creation of the base source code for converting from WASM (Rust language) to Move
- Describe of the roadmap
wave2:
- I updated the smart contract.
1. Implemented the function for viewing (view) correctly.
2. Updated the method for making proposals (create_request) by those who want to receive donations.
Any user can make a donation request (proposal), and the resource representing the content of the request is modified to be held by the proposer's address.
3.Implemented the send_apt function. ( User can send APT token to recipient)
wave3:
-Updated the smart contract.
1.Added events to the key functions. This will allow the frontend implementation to refer to the events to retrieve past proposals.
wave4:
-I built the front end using React.
-Repository (Front end) (React): https://github.com/YasuYasuonFire/charity_frontend_aptos
-Application URL: https://charity-frontend-aptos.vercel.app/
-I have enabled the interface to display donation requests made by the connected wallet.
-I have enabled the creation of new donation requests when connecting with a wallet that has not yet made a request.
wave1:
- WASM(Rust言語)からMoveに変換するための基本ソースコードを作成しました。
- ロードマップの説明を記載しました。
wave2:
- スマートコントラクトを更新しました。
1. 閲覧用の機能を正しく実装しました。
2. 寄付を受け取りたい人が提案(create_request)を行う方法を更新しました。
任意のユーザーは寄付のリクエスト(提案)を行うことができ、リクエストの内容を表すリソースは提案者のアドレスが保有するように変更しました。
3. send_apt関数を実装しました。(ユーザーは受取人にAPTトークンを送ることができます)
wave3:
- スマートコントラクトを更新しました。
1.主要な関数にイベントを追加しました。フロントエンド実装の際、イベントを参照して過去の提案を取得できるようにします。
wave4:
-フロントエンドをreactで構築しました。
-Repository (Front end) (react) : https://github.com/YasuYasuonFire/charity_frontend_aptos
-Application URL; https://charity-frontend-aptos.vercel.app/
-画面から、接続したウォレットが行った寄付のリクエストが閲覧できるようにしました。
-リクエスト未作成のウォレットで接続した場合に、寄付のリクエストを新規作成できるようにしました。
What it does
This is a smart contract that enables transparent crowdfunding on-chain.
In response to proposals, users can make donations in any amount they choose.
Once the required amount is reached, funds can be transferred to the proposer's wallet.
オンチェーンで透明性のあるクラウドファンディングを行えるスマートコントラクトです。
提案に対し、ユーザーは自由な金額で寄付を行えます。
必要金額が集まったら、提案者のウォレットへ送金することができます。
The problem it solves
In crowdfunding until web2, the following challenges were present:
- The destination of donated funds cannot be tracked.
- Information about who made the donation may disappear, resulting in non-permanent visualization of the donor's contribution.
By conducting crowdfunding on-chain, transparency in the flow of funds can be achieved, and the donor's history can be maintained permanently.
Those collecting donations will be further required to use funds responsibly, and donors will have the incentive to visualize their contributions.
Furthermore, during the Noto Peninsula earthquake, the following challenges became evident with donations made through cryptocurrencies:
- The recipient of donations incurs costs when converting donated funds into fiat currency.
- The legitimacy of the recipient of donations cannot be proven to everyone in a clear manner.
- There is a lack of transparency regarding the use of donated funds.
- Donors may face profit realization issues when making donations.
- Some donors may have a need to keep their donation history private.
CharityProtocol aims to achieve frictionless on-chain donations, taking into account the regulatory framework of each country and committing to continuous updates.
web2までのクラウドファンディングでは、以下のような課題がありました。
・寄付したお金の行き先が追跡できない
・誰が寄付したかの情報が、消失する可能性があり、寄付者の貢献の可視化が非永続的
オンチェーンで行うことにより、お金の流れの透明化が行え、
寄付者の履歴も永続的に維持されることになります。
寄付を集める側は、なお一層健全な資金の使用を求められることになり、
寄付者は貢献を可視化できるインセンティブを得られます。
また、能登半島地震の際に、暗号資産による寄付では、以下のような課題が明らかになりました。
・寄付の受け手が、寄付金を法定通貨に交換するためのコストが発生する
・寄付の受け手の正当性を、誰もに明らかな形で証明することができない
・寄付金の使用用途には透明性がない
・寄付者が寄付を行うと利益確定扱いになってしまう
・寄付者にとって、寄付の履歴を残したくないというニーズを持つ人もいる
CharityProtocolは、各国の法規制を踏まえ、仕組みを継続的にアップデートすることを前提とし、摩擦の少ない、オンチェーンによる寄付の実現を目指します。
ROADMAP
・Seamless migration of all or part of the code from the WASM contract to Aptos
・Automatic swapping to stablecoins using external DEX during transfers
・On-chain KYC to verify the legitimacy of the recipient's identity
・Mixing feature to optionally keep transfer history private
・WASMコントラクトの全てあるいは一部のコードの、Aptosへの単純移行
・送金時、外部DEXを利用したステーブルコインへの自動スワップ
・受け手の身元の正当性を明らかにするためのオンチェーンKYC
・オプションで送金履歴をプライベートにできるミキシング機能