This README helps understand the structure of the INSSats project directory and how each part supports the hackathon prototype.
- Build a demonstrable Bitcoin vault with programmable timelocks, veto rules and persona-specific tooling.
- Provide runnable examples (CLI, API, UI) even when the full contract integration is not finished.
contracts/- Simplicity source files and witnesses:
vault.simf,vault.wit,p2ms.simf,htlc.simf. vault.simfshowcases the intended flexible multisig design (2-of-3 surface with internal M-of-N), whilep2ms.simfis the contract actually executed by the server scripts today.vault-ide.simfacts as a scratchpad for iterating on new vault logic.
- Simplicity source files and witnesses:
scripts/- Shell utilities (
1-create-contract.sh→7-broadcast-transaction.sh) that walk through the full workflow: create vault, fund, prepare PSET, gather signatures from Saver/Broker/Vault Keeper and broadcast. - Additional helpers like
hash-time-lock.shillustrate emergency and veto paths.
- Shell utilities (
infra/- Docker Compose stack with
bitcoindplus two Elements nodes, so the Liquid environment spins up locally without manual setup. - Includes convenience aliases that map each persona to a node/CLI profile.
- Docker Compose stack with
server/- Node.js/TypeScript API that orchestrates vault operations, exposes REST endpoints and contains documentation (
ARCHITECTURE.md,SUMMARY.md). - Test scripts (
test-*.sh) automate the different flows: planned withdrawal, urgent withdrawal, veto and workspace isolation. - Currently interacts with the
p2mscontract; switching tovault.simfwill require additional integration work.
- Node.js/TypeScript API that orchestrates vault operations, exposes REST endpoints and contains documentation (
ui/- Vite/React front-end that mirrors the Saver journey: onboarding, vault overview, planned/urgent operations and veto controls.
docs/- Reference materials (concept, PRD, technical notes) used during the hackathon to align product and engineering decisions.
infra/bitcoindir,infra/elementsdir*- Predefined configuration files to bootstrap the regtest networks quickly.
scripts/*.sh- Utility scripts for faucets, extracting transactions and testing HTLC flows.
- Run the backend
cd INSSats/server npm install npm run dev - Run the web UI
cd ../ui npm install npm run dev
Looking to reproduce the full Elements workflow? Spin up the Liquid stack (infra/) and use the shell scripts (scripts/) in numerical order; they still rely on the p2ms contract for now.
- The Simplicity vault contract is available in
contracts/vault.simf, but we did not have time to replace thep2msflow before the demo. It remains as a reference implementation and future upgrade path. - CLI and server endpoints are fully functional; the only mocked pieces are wallet balance snapshots used by the clients.