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.
- Dashboard Keeper (Built-in)
- Standalone Keeper Bot
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:- Queries the database for all subscriptions where
next_billing_timehas passed - Builds a
charge()transaction for each due subscription - Signs and submits the transactions to the Stellar network
- Records the results (success or failure) in the database
Configuration
Navigate to Merchant > Keeper in the dashboard.- Toggle Auto-Billing to ON
- The keeper activates for all your plans immediately
- 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.
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.
FAQ
What happens if the keeper goes down?
What happens if the keeper goes down?
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.
Can someone else run a keeper for my subscriptions?
Can someone else run a keeper for my subscriptions?
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.How much does it cost to run a keeper?
How much does it cost to run a keeper?
Each charge transaction costs approximately 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.
Does the keeper need USDC?
Does the keeper need USDC?
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.