Skip to content

blacksky-algorithms/blacksky.cash

Repository files navigation

Blacksky Cash

A proof-of-concept peer-to-peer payment application exploring what decentralized payments could look like on the AT Protocol (ATProto).

Note: This is a UI/UX exploration and design prototype, not a working financial application. No real transactions occur, and there are a number of conceptual simplifications around transaction, identity, and mint handling present within this application to mock functionality.

Concept

Blacksky Cash imagines a P2P payment experience built on ATProto principles:

  • Federated Mints - Payment sources that operate like ATProto's federated servers, allowing users to choose their preferred mint while maintaining interoperability
  • Decentralized Identity - User handles (@username) following the ATProto pattern for portable, user-owned identity
  • Open Protocol - Transactions designed around an open, inspectable data model

Tech Stack

Frontend

  • React 19, TypeScript, Vite
  • TailwindCSS v4, Radix UI primitives
  • React Router v7
  • class-variance-authority for component variants

Backend

  • Express 5
  • SQLite via better-sqlite3

Tooling

  • Storybook for component development
  • Vitest for testing
  • ESLint, TypeScript strict mode

Getting Started

# Install dependencies
npm install

# Start development (client + server concurrently)
npm run dev:all

# Or run separately:
npm run dev          # Client on http://localhost:3000
npm run server:dev   # API server on http://localhost:3001

# Seed the database with sample data
npm run db:seed

# Run Storybook for component exploration
npm run storybook    # Opens on http://localhost:6006

Project Structure

src/
├── client/          # React SPA
│   ├── components/  # UI primitives
│   ├── layouts/     # Page structure shells
│   ├── pages/       # Route-level components
│   ├── hooks/       # Custom React hooks
│   ├── storybook/   # Component stories
│   └── styles/      # CSS and design tokens
├── server/          # Express API
│   └── db/          # SQLite database and seed scripts
└── shared/          # Shared TypeScript types

Key Concepts

Concept Description
Mints Federated payment sources users can join, inspired by ATProto's decentralized server model
Handles User identifiers in @username format, mirroring ATProto's portable identity system
Transactions Send, receive, transfer, withdraw, and add operations between users and mints

Available Scripts

Script Description
npm run dev Start Vite dev server (client only)
npm run server:dev Start Express API server
npm run dev:all Run both client and server concurrently
npm run db:seed Seed database with sample data
npm run storybook Launch Storybook
npm run test Run tests with Vitest
npm run check Run TypeScript and ESLint checks
npm run build Production build

Disclaimer

This project is a proof of concept and design exploration. It is:

  • Not intended for production use
  • Not connected to real financial systems
  • Not processing real transactions or money

The goal is to demonstrate what a peer-to-peer payment experience on ATProto could look and feel like, exploring the intersection of decentralized social protocols and financial applications.

About

Front-end demo for blacksky.cash peer to peer flows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages