# Hostr

semantic-release: angular
semantic-release: angular

Rental accommodation using purely peer‑to‑peer technologies such as Nostr.

Home page  Listing page  Listing page  Listing page  Listing page 

Read docs in full here.

This repo contains

.
├── app                 # Client app deployed to store
├── hostr_sdk           # Code to interact with relays and hostr-specific models
├── escrow              # Server side daemon to arbitrate txns
├── models              # Custom Nostr Event types and their validations
├── infrastructure      # Infrastructure-as-as code required to run the project
└── README.md

# NIPs utilized

  • NIP-01: Basic protocol for event creation and subscription.
  • NIP-04: Encrypted direct messages for secure communication between hosts and guests. (Deprecated)
  • NIP-17: Private Direct Messages
  • NIP-05: Mapping Nostr keys to DNS-based internet identifiers.
  • NIP-09: Event deletion for removing listings or messages.
  • NIP-33: Parameterized replaceable events for creating and updating listings and bookings.

# Clone

git clone --recursive git@github.com:sudonym-btc/hostr.git

Quickstart: see the client app guide at app/README.md for run targets by environment.

# TODO

# App

P1

  • Background worker: https://docs.page/fluttercommunity/flutter_workmanager/quickstart
    • Must show notifications for items not already in thread messaege sync hydrated cubit
    • Sync calendar optional
  • Startup loading page
    • Sync giftwraps
    • Broadcast preferred user blossom servers if not found
    • Broadcast preferred user relays if not found
    • Broadcast preferred user escrows if not found
  • Deeplinks
    • Allow opening of listings/reviews via deeplinks
  • Payments
    • Claim payment
    • Refund payment
    • Swap in should broadcast claim as soon as lockup in mempool
    • Host autowithdraw should leave sats for claim/refund transactions
  • Host views
    • List of upcoming reservations
  • Blossom files
    • Caching of blossom servers between Image components
  • Payment status
    • Check if can NWC allows fetching invoice with description
    • Combine rootstock status check and NWC status check into one PaymentStatus
    • Mock NWC should record "paid" invoices and respond to list invoice request appropriately
    • Mock lightning payments should 'resolve' accurate invoices and amounts
  • NIP 05 verification
  • Language file
  • Tests

# Escrow

  • Update escrow advertisement on launch
  • Listen for cancelled events and arbitrate accordingly