Grant/Project Name: WalletChat+Ceramic
Proposer’s contact info: Kevin - firstname.lastname@example.org
Grant Category: Apps
ELI5 Project Summary: WalletChat is wallet-to-wallet chat application, which currently Web2.0 style backend, we would like to leverage Ceramic updatable streams, and ComposeDB for maximum decentralization.
- Website: https://walletchat.fun
- Twitter: https://twitter.com/@wallet_chat
- Github: https://github.com/Wallet-Chat
- Previous projects the team has meaningfully contributed to LitChat (Ceramic Winner at LFGrow)
- Comparable projects or peers: Blockscan Chat
Ceramic Ecosystem Value Proposition:
What is the problem statement this proposal hopes to solve for the Ceramic ecosystem?
- While Ceramic+ComposeDB advertises itself conceptually as “a decentralized SQL DB”, we believe it could be more than that leveraging the libp2p functionality that Ceramic also uses to communicate between nodes. Even if this is not possible today due to the fact there is just one overall /ceramic topic, we believe fully utilizing libp2p aligns with full decentralization. We aim to move a traditional web2.0 DB+API to a web3.0 DB+API, and have open source examples before and after to aid in community development.
- Longer term, WalletChat could even be used to communicate with users of ComposeDB models to aid in re-use and collaboration.
How does your proposal offer a value proposition solving the above problem?
- We aim to drive new use cases based on our questions in the forum: https://forum.ceramic.network/t/compose-db-clarifications/511. From the answers given, there is no effective way to search similar data models, there is not a great way to re-use or track usage, nor a way contact who is using a data model for collaboration. Re-use is a large reason to have open and composable data within ComposeDB. WalletChat use of ComposeDB aims to give a working example of how data can designed in a relational way, just like a relational SQL DB, such that users can build their chat networks on top of an existing ecosystem.
Why will this solution be a source of growth for the Ceramic ecosystem?
- ComposeDB needs to be battle tested by experienced devs who can help fix bugs in Ceramic and ComposeDB as we build. Based on the nature of building in an alpha ComposeDB release, devs who can help diagnose and push through issues instead of requiring many hours of oversight to make progress will be valuable to the cohort and the Ceramic ecosystem.
- WalletChat currently is 100% open source. A working wallet-to-wallet chat ecosystem which has a proven method for moving from SQL to ComposeDB is a great use case and example for adoption of your product. One major concern of ours, and i’m sure of others will be speed comparison of using a traditional DB vs ComposeDB. This could also be used as a benchmark to see how the speed of the network improves over time.
Funding requested (DAI/USDC): [$20,000]
Milestone #1: Migrate existing MySQL to ComposeDB (120 hours) - [10,000]
- [ComposeDB data modeling] - [20 Hours @ 50 $/ Hr]
- [Replace direct message SQL queries with ComposeDB queries] - [30 Hours @ 100 $/ Hr]
- [Initial live testing, raw chat data storage from SQL DB to Ceramic] - [30 Hours @ 100 $/ Hr]
- [Move remaining SQL items from SQL to Ceramic/ComposeDB] - [40 Hours @ 100 $/ Hr]
- [Maintain Open Source Documentation] - [20 Hours @ 50 $/ Hr]
The deliverable at the end of this milestone is a working WalletChat API + Compose DB/Ceramic which will work with Postman, along with documentation which will be an interactive Swagger doc similar to our current API doc: https://api.v2.walletchat.fun/docs/index.html
Milestone #2: Aggregate StreamIDs based on DID/WalletAddress (65 hours) - [$5,500]
This will be the source of truth for all the conversations involved within WalletChat. We’ll likely have to use our API to help with this initially, but having this auto-update within the libp2p infrastructure would be the goal if possible. With this architecture, we will have to ability to allow users to create their own chat “organizations” which can be modularized so some users only track the messages they care about within a given organization.
- [Integrate DID sign-in to WalletChat Web UI] - [20 Hours @ 50 $/ Hr]
- [Collect and store new StreamIDs in aggregate stream] - [10 Hours @ 100 $/ Hr]
- [Change WalletChat clients to use StreamIDs from aggregator for DMs] - [10 Hours @ 100 $/ Hr]
- [UI to allow clients to input project defined StreamID for Organization] - [5 Hours @ 100 $/ Hr]
- [Change clients to use StreamIDs from aggregator for NFT/Community chat groups] - [10 Hours @ 100 $/ Hr]
- [Overall Debugging and Maintaining Open Source documentation] - [10 Hours @ 100 $/ Hr]
The deliverable at the end of this Milestone is for DMs within WalletChat to be using ComposeDB+Ceramic instead of a SQL DB
Milestone #3: User Data Model Analytics UI/UX (50 hours) - [$2,500]
UI to facilitate users to visualize and collect all data owned by their DID. The goal of ComposeDB/Ceramic is not just for decentralized data storage, but for users to truly own their data and reuse or redistribute when possible.
- [Search/Display IDs for Ceramic data/models via given wallet/DID] - [40 Hours@ 50 $/ Hr]
- [Documentation] - [10 Hours @ 50 $/ Hr]
- Food for thought: optional metadata placed on the model which gives some organizational ID info, would be very useful for future data analytics for example find all data models owned/used by WalletChat. We might consider signing our data models with a publicly owned wallet, and use that as a way to ID our known models within Ceramic.
The deliverable here will be a basic UI where users can aggregate, sort and view their Ceramic footprint. The longer term goal of this would be way for developers to onboard existing Ceramic DAPP users to a new DAPP, and import their data. This is something not possible in web2.0 and a paradigm shift of how web3 should operate.
I understand that I will be required to provide additional KYC information to the 3Box Labs to receive this grant: Yes