Patr
Nostr-compatible decentralized social media that uses open-source decentralized tech like ENS and IPLD to provide implementations of important parts of the Nostr protocol family.
Screenshots





Problem Statement
InspirationThe massive negative consequences of centralized corporate control of proprietary social media platforms have been felt for some time now. There are many benefits to open-source decentralized social media: transparency surrounding the code and algorithms that govern user and content recommendations, vastly increased user privacy, a lack of decentralized censorship authorities...these benefits have led to development of a huge numberof decentralized and Web3 social media platforms:: Blockchain-based social media platforms have also spurred a huge amount of interest with their native ability to offer instant, decentralized, payments and decentralized content ownership to users and content-creators:But the sheer number of decentralized social media platforms that have been developed and are under development today has led to a paradox. Social media platform adoption inherently depends on network effects: the number of people already using the platform and developers creating apps and tools for the platform directly drives the number of users willing to try to adopt the platform. The sheer number of decentralized and Web3 social media platforms available leads to fragmentation of user experience and developer experience, which directly impacts the ability of any one of these platforms to succeed and grow.The diversity of the tech around blockchains and decentralized storage is one of its biggest strengths but this diversity can also make it difficult for decentralized social media platforms to succeed when compared to the unified user and developer experience being offered by traditional centralized corporate social media. A decentralized social media platform should look to preserve openness while also trying to reduce user and developer experience fragmentation among different clients and interfaces and tools.What it doesPatr is aNostr-compatible decentralized social media platform that uses decentralized tech likeENS,IPLD, andlibP2Pto implement important parts of the Nostr protocol family that concern foundational issues like identity, event storage and linking, and relay interaction. Nostr is anextremelysimple protocol for social media which defines simple behaviors for publishing and subscribing to events, using public-key cryptography to verify that events were created by particular users. Nostr does not require any particular implementation and any program can implement the Nostr protocol however it sees fit. Nostr has beengrowing in popularitywith open-source developers with many implementations of Nostr clients and relays, in many diiferent languages, being developed as both user-facing Web and desktop clients and developer tools and libraries.Patr users are identified byDecentralized Identitfierscreated from ENS domain records that contain public keys. Each Patr user runs a Patr node at least part of the time which embeds an IPFS node that runs under the identity declared in the user's DID, verifying that this node can publish and deliver events for this user.Each Patr node also functions as aNostr relayallowing users to publish events to their node using anyNostr clientand the node stores these events on IPFS using IPLD.
Solution
ImplementationWritten in GoRuns as a CLI program and daemonEmbeds an IPFS node for event storagePins all IPFS content to Web3.StorageUses libp2p for node-node communicationTechnologies usedThere are 2 simple steps to start using Patr. Users inttialize their node from the Patr CLI:Then they add theipfsKeyandnostrKeypublic keys created as text records on the ENS domain they want to use with Patr:
Hackathon
HackFS 2023
2023
Prizes
- 🏆
🏊♂️ ENS — Integration Prize
- 🏆
🃏 ENS — Wildcard
Contributors
- allisterb
39 contributions