โ† Back to home

2C | The Data Wallet & BYOF Marketplace

ReactRustNext.js

๐Ÿ‘› The Data Wallet hosts social graphs of trusted people, so that any dApp can load data curated by specific communities. The ๐Ÿฅ‚ BYOF Marketplace (Bring-your-own-frontend) uses the ๐Ÿ‘› The Data Wallet to load decentralized UIs for each dApp, from a userโ€™s trusted communities.

Problem Statement

๐Ÿ‘› The Data Wallet hosts social graphs of trusted people, so that any dApp can load data curated by specific communities. The ๐Ÿฅ‚ BYOF Marketplace (Bring-your-own-frontend) uses the ๐Ÿ‘› The Data Wallet to load decentralized UIs for each dApp, from a userโ€™s trusted communities.Some context:Weโ€™ve had decentralized data for a long time now, but creating a sybil-resitant method for curating indexes of data has proven to be very difficult without re-centralizing those indices. The Graph has done an incredible job of tackling this complex problem with chain-based data, which has inspired us to create a user experience for user-owned off-chain data.These great projects (and many more like them) allow people to host their own decentralized data. However, when using a dApp, most people only care about a subset of that data. Though, if we put our trust in a single party to define these subsets of data, weโ€™re re-centralizing that trust, and leaving ourselves vulnerable to attackers that can spam the dataset. Who can I trust? What data should a dApp load for me specifically?We experimented with these ideas on TrueReview at ETHDenver, and realized a need for curated groups of people who are trusted, so that people can pick a trusted group of people and their data, for a dApp to use.Enter ๐Ÿ‘› The Data Wallet:This plugin uses IDX & Ceramic to store user-owned data on IPFS & Filecoin, then allows people to curate their own groups of people and data they trust. Imagine people bringing their own data to each dApp, saying โ€œhere are the people I trust - load all of their data for me to interact withโ€, then be able to switch between communities they trust (like โ€œLoad my DAOโ€, or โ€œLoad people I follow on Twitterโ€, or โ€œLoad this other DAO like FWBโ€), much like visiting a subreddit.As a demo application for ๐Ÿ‘› The Data Wallet, we built the ๐Ÿฅ‚ BYOF Marketplace. In the midst of extreme political tension and attempted regulation of dApps, several projects have either chosen or been told to take down certain parts of their apps that are hosted on web2 DNS.Stani tweeted โ€œBring your own front endโ€ (BYOF) after the Uniswap edits, where end-users bring their own decentralized UI, removing some of the DNS burden on core developers. https://twitter.com/StaniKulechov/status/1418864465659969539Enter the ๐Ÿฅ‚ BYOF Marketplace:๐Ÿ‘› The Data Wallet loads decentralized records from the userโ€™s list of trusted people, then shows them what frontends (per smart contract) are being used by each community. This allows them to select a frontend, and load it directly from IPFS in their browser, completely bypassing DNS. The Data Wallet can be added to any dApp. You can author your own groups of trusted people, using IDX indices, and make those available to dApps. Identities can be added manually, or imported from existing social graphs. Users can create their own groups, or delegate to communities they trust.This same concept can be applied to any dApp, for example:News publication dApps could load sources from a personโ€™s trusted groupsDAOs can curate a list of trusted users, which can be a data source within any dAppSocial applications are already architected this way, and can easily adopt user-controled data sources in a dApp environment

Solution

๐Ÿ‘› The Data Wallet:Built on IDX identitiesStores list of trusted identities in each user's IDXStores community lists of trusted identities as their own IDX (can be owned by a DAO or multi-sig)Stores data on Ceramic / IPFSAlternatively uses Filecoin/IPFS using Web3.Storage to read/write dataWe spent a good amount of time experimentig with The Graph to build a new off-chain datamapping flow, that would take p2p publishing events as triggers to re-index each social graph with off-chain data. We learned a ton here, but realized it was a bigger project than we could commit to in addition to the Data Wallet and BYOF Marketplace for this hack. Next time!๐Ÿฅ‚ BYOF Marketplace:Uses all Data Wallet core technology to read/write dataLoads entire frontend UIs from Filecoin/IPFS using Web3.StorageNext.js/React => static export to Filecoin

Hackathon

HackFS 2021

2021

Prizes

  • ๐Ÿ†

    Ceramic Pool prize

  • ๐Ÿ†

    Best new tooling or pattern for other developers to use IDX or Ceramic

  • ๐Ÿ†

    โญ๏ธ HackFS Finalist

  • ๐Ÿ†

    Protocol Labs Grand Prize Winner

  • ๐Ÿ†

    Protocol Labs Pool Prize

Contributors