Skip to content

keep-starknet-strange/broly

Repository files navigation

broly-logo

B.R.O.L.Y.

Bitcoin Registry Orchestrates Like Yesterday

Order on Starknet, write on Bitcoin, get money trustlessly, repeat

Broly is a decentralized Bitcoin inscription service that uses Starknet for orderbook management. It enables trustless Bitcoin inscriptions with guaranteed payments through smart contracts.


Architecture

flowchart TB
    subgraph Frontend
        UI[React UI]
        BW[Bitcoin Wallet]
        SW[Starknet Wallet]
    end

    subgraph Backend
        API[REST API]
        DB[(Database)]
    end

    subgraph Starknet
        OB[Orderbook Contract]
    end

    subgraph Bitcoin
        BTC[Bitcoin Network]
    end

    subgraph Inscribor
        IS[Inscription Service]
        OM[Order Monitor]
    end

    UI --> API
    UI <--> BW
    UI <--> SW
    API --> DB
    SW <--> OB
    IS --> BTC
    OM --> OB
    API --> IS
    IS --> API
Loading

Flow

  1. User connects both Bitcoin and Starknet wallets
  2. User creates an inscription order:
    • Specifies inscription content and reward amount
    • Order is created on Starknet orderbook
    • Funds are locked in the contract
  3. Inscribor service:
    • Monitors pending orders
    • Creates Bitcoin inscriptions
    • Triggers reward release on successful inscription
  4. User receives inscription, inscribor receives reward

Getting Started

  1. Run the app
cp .env.example .env
# Edit .env variables to match your environment
docker compose up
  1. Restart your app ( after changes to backend(s), indexer, ... )
docker compose down --volumes
docker compose build
docker compose up

Project Structure

broly/
├── apps/
│   ├── web/               # Frontend React application
│   └── backend/           # REST API service
├── packages/
│   ├── inscribor/         # Bitcoin inscription service
│   ├── onchain/           # Starknet smart contracts
│   ├── scripts/           # Deployment & Testing scripts
│   └── indexer/           # Starknet contract indexing
├── package.json
└── turbo.json

Technology Stack

  • Frontend:
    • React + TypeScript
    • Vite
    • TailwindCSS
    • Starknet.js
    • BitcoinJS-lib
  • Backend:
    • Golang
    • Postgres DB
    • REST API
  • Smart Contracts:
    • Cairo (Starknet)
    • Scarb
  • Inscribor:
    • Node.js
    • BitcoinJS-lib
    • Starknet.js

Components

Frontend (web)

  • New inscription order form
  • Dashboard view for pending inscriptions
  • Wallet connections (Bitcoin + Starknet)
  • Order status tracking
  • Exploring inscriptions

Backend (backend)

  • REST API for order management
  • Status tracking endpoints
  • Order history

Smart Contracts (onchain)

  • Orderbook contract
  • Payment handling

Inscribor Service

  • Order monitoring
  • Bitcoin inscription creation
  • Transaction verification
  • Starknet interaction for reward release

License

Broly is licensed under the MIT License. See the LICENSE file for details.