-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AssetHandover | Sample Dapp #118
Comments
Hi @AmarildoGrembi, thanks for submitting this proposal! We're reviewing and will get back to you soon. |
Thanks, @chrisackermann. This proposal does not hinder us from working on the BackStore. Let me know if you have any questions or want to look at the backend we have built. |
Hello @chrisackermann, hope you are doing well. Quick update: Asset-Handover has now been open-sourced! It includes the full backend work, a thorough readme, and a detailed guide. We are currently showcasing our repository to the community and awaiting feedback. |
hello @chrisackermann - milestones updated. Thanks for the feedback! |
Just updated the |
Hi @AmarildoGrembi! Thanks for your patiences, we've approved this proposal and will be reaching out directly with next steps. Thanks! |
Thanks @chrisackermann! Excited to make the AssetHandover an integral part of the Flow dev journey, with the recent addition of Flow super commands this should definitely be one of the scaffold options (adding it on our todo list). |
AssetHandover | Sample Dapp
Grant Category
Description
The AssetHandover Dapp allows account holders to transfer ownership of their assets to a trusted recipient, at a specified release date.
Problem statement
One of the best ways to learn the fundamental concepts of a new technology, is by looking at the implementation of practical examples. So far, except the KittyItems repo, there is no other fully open source practical example out there with good documentation to showcase how you could leverage the various smart contracts and smart contract interfaces provided by the Flow team and integrate them to create a fully functional Dapp. At BuildSquad, to better familiarize ourselves with Flow and the fundamental concepts of Fungible/NonFungible tokens, we decided to start working on a side project which attempts to tackle a real-world problem. Our objective was to understand the internals of some smart contracts which are the building blocks for almost any type of Dapp on Flow. Namely the FungibleToken, NonFungibleToken smart contract interfaces, and some of their concrete implementations.
It helped a lot and we believe it will help many developers on the Flow ecosystem. We would like to open source its implementation, to serve the same purpose as kitty items.
Target audience: Web3 Builders aiming to build on Flow, who are:
Evidence for the need:
This sample app will cover partially or fully 4 items that are currently found on the wishlist, specifically:
Generally speaking, it is a fully-functional open-source project that showcases functionalities for the above-mentioned items, while following best practices and providing documentation/explanation for the reason behind the implementation.
We plan to post this proposal on the Flow forum so we could pinpoint more specifically what the developer ecosystem would prefer. Edited: we posted the proposal and currently awaiting feedback
Proposed solution
AssetHandover is a Dapp where account holders
can grant a recipient the ability to withdraw specific tokens that they own (both Fungible and NonFungible), at a future release date.
Each account can only declare one recipient, as this removes the complexity of handling race conditions upon withdrawals.
However, an account can be the recipient of multiple handovers.
The account holder can specify which Fungible tokens will be handed over, as well as a maximum amount for each token. It is also possible to specify which NonFungible tokens will be handed over, as well as a specific list of NFT IDs from each NFT Collection.
The above tokens are not locked for the account holder, meaning that they can still be utilized/transferred.
The recipient (or any other account) can attempt to withdraw them, at any given time, however this will only be successful after the release date has passed, and only for the authorized recipient.
One real-world scenario would be to create a digital "will" for one's account, or to simply add another account as a backup, in case the account holder loses access to his/her account, or is no longer able to interact with it.
More specifically the Dapp would include:
Backend:
Frontend:
We are thinking of two main personas, holder and recipient.
The holder would be able to:
The recipient would be able to:
(* LockUp is the name of the resource which contains all the information about the asset handover for an account holder. As described above, the assets are not really locked, what is locked is the capability to withdraw them, given that it is only possible from the authorized recipient and after the release date.)
It is important to note that the Admin (account where the AssetHandover contract deployed) is responsible for adding more tokens to the custom registry of tokens allowed for handover.
This is done with a transaction, which removes the need for updating the smart contract itself.
Later on, we would like to include NFTCatalog and FungibleTokenMetadataViews smart contracts, in order to showcase the level of interoperability these contracts bring on Flow.
Impact
Milestones and funding
We have already finished the backend side of things and would be keen to showcase it to every interested party. We would like to receive your support so we could finalize mostly the API & frontend and some details, so we could offer it to the community as the go-to educational material, alongside KittyItems.
Team
BuildSquad (a startup that launched recently) is a curated squad of web3 builders that aim to enrich the web3 ecosystem by developing products, tools, prototypes, and tutorials in the form of open-source public goods.
The text was updated successfully, but these errors were encountered: