Skip to main content
The Vowena Dashboard at dashboard.vowena.xyz is the primary interface for interacting with the Vowena protocol. It serves both merchants and subscribers from a single application, with your connected wallet determining your experience.
The smart contract is always the source of truth. The dashboard’s database is a convenience layer - it indexes on-chain data into Postgres for fast querying, but every action you take in the dashboard builds and submits a real Soroban transaction.

Authentication

There are no usernames, passwords, or email addresses. Your Stellar wallet address is your identity.
  1. Visit dashboard.vowena.xyz
  2. Click Connect Wallet
  3. Approve the connection in your wallet extension
  4. You’re in
Freighter is the primary supported wallet. Other Stellar wallets that implement the standard wallet interface are also supported, but Freighter provides the best experience.

Two Experiences

The dashboard adapts based on what you do. Any wallet can act as both a merchant and a subscriber - there is no account type to choose.

Merchant

Create subscription plans, monitor subscribers, view billing analytics, trigger charges, issue refunds, and configure auto-billing with the built-in keeper service.

Subscriber

View all your active subscriptions across every merchant in one place. Review billing history, handle plan migrations, and cancel subscriptions with a single click.

Tech Stack

Frontend

Next.js 16 with App Router, Tailwind CSS dark theme, React Query for data fetching, and Recharts for analytics visualizations.

Backend

Next.js API routes, Drizzle ORM with Postgres, event indexer service, and a keeper cron job for automated billing.

Blockchain

Freighter wallet integration, Soroban RPC for transaction submission, and SEP-41 token interactions for USDC.

Backend Services

The dashboard runs three backend services that keep the off-chain database in sync with on-chain state:
A background service that continuously polls Soroban RPC for Vowena contract events. Every PlanCreated, Subscribed, ChargeSucceeded, ChargeFailed, SubscriptionCancelled, and other event is parsed and written to Postgres. This is what powers instant queries - instead of making RPC calls for every page load, the dashboard reads from its local database.
An automated cron job that calls charge() for all subscriptions that are due. Merchants can enable or disable this per-plan from the dashboard. The keeper iterates through due subscriptions, builds charge transactions, signs them with the dashboard’s keeper key, and submits them to the network.
Plans on-chain are identified by numeric IDs and contain only billing parameters. The dashboard stores additional off-chain metadata - human-readable plan names, descriptions, and branding - in Postgres. This metadata is optional and never touches the smart contract.
If the dashboard backend goes offline, the event indexer and keeper stop running. However, all on-chain data remains intact. Subscribers can still cancel through any Stellar wallet or block explorer, and anyone can call charge() directly on the contract.

How Data Flows

Soroban Contract (source of truth)


  Event Indexer ──► Postgres (convenience layer)
        │                    │
        ▼                    ▼
  Keeper Service      Dashboard UI
  (auto-billing)    (reads from DB,
                     writes to chain)
Every write operation in the dashboard builds a Soroban transaction, prompts you to sign it in Freighter, and submits it to the network. The event indexer then picks up the resulting event and updates the database. Reads come from Postgres for speed.

Next Steps

Merchant Guide

Create your first plan, share it with subscribers, and set up automated billing.

Subscriber Guide

Manage all your subscriptions, review billing history, and handle migrations.

Keeper Setup

Configure the built-in keeper or run your own standalone billing bot.

Quickstart

Prefer code? Use the TypeScript SDK to integrate Vowena directly into your app.