VelaPayments / vela-server
git clone https://github.com/VelaPayments/vela-server.git
NestJS backend for Vela’s Stellar payment prototype, with payment-request validation, WebAuthn authorization, and transaction services.
—
stars, 24h
—
stars, 7 days
+130
stars, 30 days · #1,807
130
★ total
127
forks · 5 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2026-10-05 (15d ago)
Last push2d ago
Watchers0
OwnerOrganization
Links
README excerpt
# Vela — Server Backend for **Vela**, an open-source contactless-payment prototype built around Stellar testnet. The backend contains payment-request validation and persistence, passkey-based payment authorization, and a Stellar integration service for transaction building, submission and confirmation polling. Connecting these services into a complete client-to-network payment flow remains active development work. > **Mobile client:** The Expo app lives in a separate repository — VelaPayments/vela-payments. ## How Vela uses Stellar Stellar is the intended settlement network for Vela payments. The product goal is a short path from sharing a payment request to approving and confirming an XLM or issued-asset transfer. NFC carries the request between devices; funds move through a signed Stellar transaction and network confirmation. This repository implements the server-side building blocks with `@stellar/stellar-sdk`: | Capability | Implementation | Role in Vela | | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | Network access | StellarModule | Configures Horizon and Stellar RPC clients, the network passphrase and the USDC issuer | | Accounts and assets | StellarService — `getAccount`, `resolveAsset` | Loads source accounts; resolves native XLM or USDC by its configured issuer | | Payment construction | `StellarService.buildPaymentTransaction` | Builds an unsigned `Operation.payment` transaction with fee, network passphrase, optional memo and a bounded timeout | | Submission and confirmation | `StellarService.submitTransaction`, `pollTransactionStatus` | Accepts signed XDR, submits through Horizon and polls for an ingested outcome with bounded retries | | RPC support | `StellarService.getHealth`, `simulateTransaction` | Checks provider health and exposes transaction simulation at the service level | | Payment requests | Contract validator and request service | Validates supported assets, amount strings, recipient format and timestamps before persistence | The transaction helpers have mocked regression coverage in stellar.service.spec.ts. They are not yet exposed as a complete public settlement API, and a completed real-device transfer has not been demonstrated. WebAuthn authorizes an application payment action; Stellar transaction signatures and network confirmation remain separate parts of the intended flow. ### Work that advances the Stellar integration - Align the client/server payment payload so NFC requests can pass server validation consistently. - Strengthen memo byte limits and confirmation polling coverage. - Protect authorization failure ordering before connecting authorization to submission. The current prototype targets Stellar testnet. XLM is represented as the native asset; issued assets are ident