Reclaiming social data from centralized silos through Pkarr and HTTP-based homeservers.
The Core Concept
Pubky-core combines a censorship-resistant public-key-based alternative to DNS (Pkarr) with conventional web technologies. This allows users to maintain control of their identities and data while providing developers with the availability of traditional web apps.
Key Features:
- Public Key Authentication: Secure logins using user-owned Ed25519 keypairs.
- 3rd Party Authorization: A protocol to authorize apps to access specific resources on a homeserver without giving up full control.
- Distributed Storage: A key-value store using a standard PUT/GET/DELETE HTTP API with built-in pagination.
- Data Sovereignty: Users choose where their data lives, moving it between homeservers as easily as changing a DNS record.
Code: Select all
└── pubky-pubky-core/
├── pubky-homeserver/ # The core server implementation
├── pubky-sdk/ # Rust and JS/Wasm client libraries
├── pubky-common/ # Shared crypto, auth, and logic
├── pubky-testnet/ # Tools for running local dev environments
└── docs/ # Comprehensive protocol specifications
The Pubky Auth protocol allows a user to authenticate to a 3rd party application using their Root Key.
- App Generation: 3rd Party App generates a secret and displays a QR code.
- Consent: Authenticator (e.g., Pubky Ring) scans the code and requests user consent.
- Signing: User confirms, and the Authenticator signs an AuthToken.
- Verification: Homeserver verifies the token and establishes a session with specific capabilities.
Code: Select all
docker build -t pubky:core .
docker run -it --network=host pubky:core
[hr]Pubky Philosophy wrote: "The Web, long centralized, must decentralize; Long decentralized, must centralize."
For more technical deep-dives, visit the Official Pubky Site or join the development discussion on Telegram.