👛 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. Enter 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 groups * DAOs can curate a list of trusted users, which can be a data source within any dApp * Social applications are already architected this way, and can easily adopt user-controled data sources in a dApp environment

2C | 👛 The Data Wallet & 🥂 BYOF Marketplace showcase

How it's made

👛 The Data Wallet: * Built on IDX identities * Stores list of trusted identities in each user's IDX * Stores community lists of trusted identities as their own IDX (can be owned by a DAO or multi-sig) * Stores data on Ceramic / IPFS * Alternatively uses Filecoin/IPFS using Web3.Storage to read/write data * We 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 data * Loads entire frontend UIs from Filecoin/IPFS using Web3.Storage * Next.js/React => static export to Filecoin

Technologies used