project screenshot 1
project screenshot 2
project screenshot 3

Socialfly

A decentralized social app where you store your encrypted data once and then use it across multiple apps

Socialfly

Created At

ETHGlobal San Francisco

Winner of

Lit Protocol - Runners Up

Sign Protocol - Best Overall Application

Sign Protocol - Best Use of Encrypted Attestations

Sign Protocol - Best Consumer Application

Project Description

This project combines Sign protocol with Lit protocol to create the foundation of a social networking app.

Data is encrypted using Lit, and then stored using Sign. Sign's attestations ensure that a user's data is associated with their account.

Sign's schemas and indexing are combined to let us define data in a way that lets us efficiently query for it.

The schema is used as the identifier for a certain piece of data that could be used for a social app (example: profile_photo_001, bio_short, location, etc.), and the data can be arbitrary - it can be a photo, some text about a user, or structured data such as a location.

Using Lit's access controls, we're able to give specific apps (which are ultimately Lit actions) permission to decrypt our data. From here the data can be used in creative ways, to demonstrate this I created two basic apps:

The first is a centralized messageboard where user's data is just used to gain access to the ability to post on the messageboard, it's fundamentally a centralized service but via reusing a user's profile data it lowers the friction of starting to use the app.

The second is a matching app where users can swipe through profiles, and connect with people nearby. User's encrypted location data is decrypted inside a lit action, and the rest of their profile is only decrypted if they're close enough to the user's location. The app never has access to user data, it only facilitates making the connections.

How it's Made

Lit and Sign are used. Lit is used for encrypting data, Lit actions are used for decrypting the data, and Sign is used for storing the data. Sign's schemas are used to represent particular types of data, while Sign's query functionality is used to efficiently access the data that's relevant for a given app.

Note that there are actually four repos associated with this project:

Repo for creating/managing user account https://github.com/tms7331/socialfly-account

Repo for gating access control based on an IPFS hash https://github.com/tms7331/socialfly-contracts

Repo for example app 1 - public messageboard https://github.com/tms7331/socialfly-messageboard

Repo for example app 2 - privacy preserving networking app https://github.com/tms7331/socialfly-matching

background image mobile

Join the mailing list

Get the latest news and updates