Documentation

StreamPay docs

StreamPay is a payment-streaming dashboard on the Stellar network: pay collaborators, vendors and grant recipients in a continuous flow instead of lump sums. This page is a quick tour; the full documentation lives in the repository's docs/ folder.

Core concepts

Stream lifecycle

draft → active ⇄ paused → ended → withdrawn. A stream can also be cancelled. Only valid transitions are accepted by the API (see docs/STATE_MACHINE.md).

Demo mode

The live demo runs without a database or a wallet backend. The API serves deterministic seeded data (Ada Creative Studio, Kemi Onboarding Support, Yusuf QA Partnership) and the UI falls back to the same fixtures if a request fails, so every screen renders. Browse the streams, open a stream for its timeline and receipt, or walk through stream creation.

HTTP API

MethodPathDescription
GET/api/healthzLiveness probe
GET/api/readyzReadiness probe (config, Horizon, KMS)
GET/api/streamsList streams (cursor-paginated, seeded demo data when no database is configured)
POST/api/streamsCreate a stream (authenticated)
GET/api/streams/:idStream detail
POST/api/streams/:id/{start,pause,stop,settle,withdraw}Lifecycle actions
GET/api/activityActivity feed
GET/POST/api/auth/walletWallet challenge and signature verification, returns a JWT
GET/api/webhooks/healthWebhook delivery health
GET/api/metricsPrometheus metrics (token protected)

The full contract is in openapi.json in the repository.

Configuration

VariablePurpose
STELLAR_NETWORKtestnet or mainnet (required)
JWT_SECRETAt least 32 characters; signs session tokens (required)
ALLOWED_ORIGINSComma-separated CORS allow-list (required)
DATABASE_URLOptional Postgres URL; seeded in-memory data otherwise

See .env.example for every option.

Deploying

npm install
npm run build
npm start

On Vercel, import the repo, set the three required variables above and deploy. No other setup is needed.