Skip to main content
A keeper is any process that calls charge() on due subscriptions. The Vowena protocol is permissionless - anyone can trigger a charge, and the contract validates all conditions on-chain. You just need something to make the call on schedule. There are two options: the built-in dashboard keeper (zero setup) or a standalone bot you run yourself.
The Vowena Dashboard includes an integrated keeper service that handles billing automatically. No infrastructure to manage.

How It Works

The dashboard backend runs a cron job on a regular interval. Each run:
  1. Queries the database for all subscriptions where next_billing_time has passed
  2. Builds a charge() transaction for each due subscription
  3. Signs and submits the transactions to the Stellar network
  4. Records the results (success or failure) in the database

Configuration

Navigate to Merchant > Keeper in the dashboard.
  1. Toggle Auto-Billing to ON
  2. The keeper activates for all your plans immediately
The keeper status panel shows:
  • Last run - Timestamp of the most recent keeper execution
  • Next scheduled run - When the keeper will run again
  • Charged count - Number of subscriptions successfully charged in the last run
  • Failed count - Number of charges that failed (insufficient balance, expired allowance)

Manual Trigger

Don’t want to wait for the next scheduled run? Click the Charge All Due button to trigger an immediate billing run for all your due subscriptions.
The dashboard keeper requires the dashboard backend to be running (Postgres database, cron endpoint). If you’re self-hosting the dashboard, make sure the cron service is configured and operational.
The built-in keeper is the easiest option for most merchants. It runs as part of the dashboard infrastructure and requires no additional setup. For high-volume merchants or those who want full control over the billing schedule, consider the standalone bot.

Which Option Should I Choose?

Dashboard Keeper

Best for most merchants. Zero setup, managed infrastructure, built-in monitoring. Works out of the box at dashboard.vowena.xyz.

Standalone Bot

Best for high-volume merchants, self-hosted setups, or anyone who wants full control over billing timing and infrastructure.
You can use both. Enable the dashboard keeper as your primary billing mechanism and run a standalone bot as a backup. Since double-charging is impossible at the contract level, redundant keepers are perfectly safe.

FAQ

Nothing is lost. Subscriptions remain active on-chain. When the keeper comes back online, it picks up all overdue subscriptions and charges them. Subscribers in their grace period won’t be paused until the grace window expires - giving you time to restore the keeper.
Yes. The charge() function is permissionless - anyone can call it. Third-party keeper networks, your subscribers, or even the subscribers’ own automation can trigger charges. The contract validates everything regardless of who submits the transaction.
Each charge transaction costs approximately 0.00001inStellarnetworkfees.For1,000subscriptionsbilledmonthly,thatsroughly0.00001 in Stellar network fees. For 1,000 subscriptions billed monthly, that's roughly 0.01 per month in transaction fees. The keeper wallet needs a small XLM balance to cover fees - 10 XLM is enough for hundreds of thousands of transactions.
No. The keeper only signs and submits charge() transactions. The USDC transfer happens from the subscriber’s wallet to the merchant’s wallet. The keeper wallet only needs XLM for transaction fees.