The problem LastWord solves
LastWord is a decentralized wills application that aims to provide a platform for people to create and manage their wills in a decentralized and secure manner. This application uses Polygon to create a transparent, tamper-proof, and secure platform where people can store and manage their wills. There are 2 ways senders can create switches(wills) in LastWord:
- Coin Transfer: This has two transaction types: Lumpsum and Monthly. The Lumpsum transaction type means that all the recipients will receive the full amount specified by the sender at once. The Monthly transaction type means that the sender will send small amounts to the recipients every month for a specified number of months. This can be implemented using Superfluid streams which we will look into future.
- File Transfer: This is a feature that is under development, where users can safely transfer files to recipients as NFTs with public not being able to watch the transaction.
Users can modify their wills at any time, and they can choose the transaction type that suits their needs. We have integrated it with Arcana authentication to enable social auth into our application. LastWord is not controlled by any central authority, and all transactions are verified by the network participants. This ensures that the application is transparent, and there is no chance of the system being manipulated and the sender's coins being taken by any third party.
Challenges we ran into
We started building the application thinking that the transfers would be similar to how normal transactions with NFTS would work. The major challenges we faced were:
- Implementing Coins transfer
Understanding the escrow transfer architecture was one of the major issues for us and to decide on which direction we had to go ahead was one major issue. Another major hurdle was coding superfluid streams for pension based reimbursment to recipeints. We found it hard to code it on solidity as it was very simple to use SDKs. But since we wanted to work on Solidity we couldnt make good progress here too.
- Ideation of file transfer
Though we weren't able to build this feature this was supposed to be the USP of the product. We tried to formulate various ways to simple transfer a file from one wallet to another at a certain point of time. We looked into various existing protocols like Threshold, Lit etc. but we came to the conclusion that all these need the beneficiary to sign it previously when the sender is creating a switch. Hence we werent satisfied with this idea. Then we thought of using basic cryptographic methods like public key and private key, and saw if we could encrypt using wallet's Pub Key, but metamask doesn't reveal wallet's public key given the wallet address. This requires the consent of the beneficiary again. Hence we werent still satisfied with this idea. We then went ahead to look at Arcana wallet docs and coudn't find anything, so we skipped this feature.