Fahad-Mahmood / satsigner

lean, mean bitcoin signing machine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Satsigner

image

https://twitter.com/pedromvpg/status/1553123963139756032

Why work on this?

  • Help build a powerful native mobile Bitcoin signer management application
  • Contribute towards the integration, development and enhancement of Bitcoin UX design
  • Unlock coin insights via integrated onchain (privacy/provenance/economic) analyses and corresponding data visualisation to help inform, encourage and automate better Bitcoin usage best-pratices
  • Advance Bitcoin understanding
  • Test market demand for bitcoin centric applications
  • Propagate open-source ethos
  • Build and support Bitcoin and related FOSS projects
  • Participate in Bitcoin history

Ethos/priorities/design philosophy

  • Bitcoin only
  • Sat denomination supremacy
  • Initial focus on on-chain bitcoin (coin-control/controlling sats)
  • Emphasis on privacy
  • Emphasis on personal labeling, tagging, and bookmarking
  • Application of visualisation/visual-native UI aiming to build upon and develop new Bitcoin design primitives to help make more advanced/poower-user Bitcoin UX/UI more intuitive and accessible
  • Take advantage of appropriate charts and graphic layouts for all data vizualisation
  • Security - targetting optimal hot-signer-level security initially (future support for watch-only cold, multisig, vaults etc)
  • Visually crafted and UX builds upon powerful feattures and improvements introoduced by the many existing brilliant open-soouurce FullyNoded, or Sparrow
  • An intuitive and powerful mobile bitcoin app

Features

Main features and goals

  • Experimental bitcoin centric lexicon
    • Send bitcoin -> Sign bitcoin messages
    • Spend bitcoin -> Consume UTXO
    • Bitcoin balance -> Total spendable sats
    • Wallet -> Signer
    • Private key -> Account
    • Address -> Invoice
    • Transaction -> Message
    • (...)
  • Bitcoin specific UX patterns
  • Bitcoin technology education
  • Visual personal chain analysis
  • UTXO control
  • Fully open source
  • Easily reproducible
  • Open source dependencies only
  • Bitcoin interface exclusively via open source library

Forward looking ambitions

  • Mobile collaborative transaction interface (mobile joinmarket client?)
  • Native lightning support built with LDK (keeping with UX/Data visual-focus)

Stack

Backend

  • Bitcoin Development Kit via RN-BDK - becoming reference Bitcoin dev tools
  • Blockstream Electrs - performant Bitcoin server interface/signer backend to bootstrap users who don't yet run their own node
  • Photon SDK - powerful mobile Bitcoin dev kit to build forgiving, easy backup and recovery, intuitive signers
  • Tor - private communications with your personal nodeserver/electrs

Frontend

Design/product inspiration + revered FOSS projects

  • Sparrow - very powerful and clean native Bitcoin signer management desktop app
  • FullyNoded - very powerful iOS app focused on remote full node management
  • BitFeed - beautiful, psychedelic block/transaction/timechain visualisation
  • Mempool.space - beautiful block explorer and Bitcoin data visualisations
  • Zeus - pretty, increasingly powerful remote LN node management app

UI

image

Concepts

image UTXO selection

image Security

image Verification

image UTXO consumption

Dev Environment Setup

Prerequisites

  • Node.js (minimum version 20.9.0)
  • Yarn

Android

  1. Go to the React Native CLI Quickstart
  2. Choose your Development OS and Target OS of Android
  3. Follow the directions in the "Installing dependencies" section to setup RN dependencies including Node, the React Native command line interface, a JDK, Android Studio, and Watchman if on macOS.
  4. From satsigner repo, to install satsigner dependencies yarn
  5. Run satsigner yarn start yarn android

From time to time you may need to update dependencies with yarn.

iOS

  1. Go to the React Native CLI Quickstart
  2. Choose macOS and iOS
  3. Follow the directions in the "Installing dependencies" section to setup RN dependencies including Node, Watchman, the React Native command line interface, Xcode and CocoaPods.
  4. From satsigner repo, to install satsigner dependencies yarn
  5. Install pods cd ios && pod install
  6. Run satsigner yarn start yarn ios

From time to time you may need to pod install and update dependencies with yarn.

About

lean, mean bitcoin signing machine

License:MIT License


Languages

Language:TypeScript 90.5%Language:Java 4.9%Language:Ruby 1.6%Language:Objective-C 1.6%Language:JavaScript 0.9%Language:Objective-C++ 0.5%