Secure storage and distribution of cryptographic keys in ATProto applications
TypeScript 98.6%
Dockerfile 1.4%
Other 0.1%
51 1 0

Clone this repository

https://tangled.org/djara.dev/atp-keyserver
git@tangled.org:djara.dev/atp-keyserver

For self-hosted knots, clone URLs may differ based on your setup.

README.md

ATP Keyserver#

Secure storage and distribution of cryptographic keys in ATProto applications.

This repository was originally a fork of https://github.com/muni-town/roomy-keyserver

Overview#

This monorepo contains:

  • Server (packages/server) - Keyserver service for secure key storage and distribution
  • Client (packages/client) - TypeScript client library with end-to-end encryption
  • Documentation (docs/) - Complete architecture and implementation guides

Quick Start#

# Install dependencies
bun install

# Run server in development mode
bun run dev:server

# (in another terminal) Build client package
bun run build:client

Packages#

@atpkeyserver/server#

Keyserver service that manages cryptographic keys for ATProto applications:

  • Ed25519 asymmetric keypair management
  • XChaCha20-Poly1305 symmetric key distribution
  • Key versioning and rotation
  • Group-based access control
  • JWT authentication via ATProto service auth

@atpkeyserver/client#

Client library for keyserver integration:

  • End-to-end encryption functions
  • Type-safe keyserver API
  • Automatic service auth token management
  • Built-in key caching

Documentation#

Getting Started#

Technical Documentation#

Implementation#

Requirements#

  • Bun v1.0 or higher (for server)
  • Node.js 22+ (for client)

Development#

# Install all dependencies
bun install

# Run server in development mode
bun run dev:server

# (in another terminal) Run client in watch mode
bun run dev:client

# (Optional) Format all code with Prettier
bun run format

Running on production#

# Set required environment variables
export DID=your-service-did
export PORT=4000

# Start server
bun run start:server

See more in the Deployment checklist in the server README.

License#

See LICENSE.md


Documentation partially generated by Claude Code. Revised and adjusted by the project maintainer.