You’ll need Node.js 20+, a funded Stellar testnet account, and a USDC
trustline. The dashboard checkout page can
fund a fresh wallet via friendbot if you don’t have one.
1
Install the SDK
2
Create a client
- Testnet
- Mainnet
- Custom RPC
NETWORKS.testnet ships pre-configured contractId, rpcUrl,
networkPassphrase, and usdcAddress.3
Create a Project (merchant)
Every plan lives under a Project. Create one first.
4
Create a Plan (merchant)
What does toStroops do?
What does toStroops do?
Converts a human-readable amount to the 7-decimal integer format used
by Stellar tokens:
5
Subscribe (subscriber)
One signature creates the subscription AND sets the SAC allowance. If the
plan has no trial, the first period is charged atomically during this
call.
6
Charge (keeper or anyone)
Once a billing period has elapsed, anyone can fire the charge. The
contract does all the validation on-chain.The contract checks:
- Is the subscription active?
- Has
periodseconds passed since the last charge? - Is the trial over?
- Does the subscriber have sufficient balance and allowance?
- Has
max_periodsbeen reached?
transfer_from.You don’t have to run your own keeper. The Vowena
dashboard ships a managed keeper cron that
fires every minute.
7
Cancel
Either party can cancel, any time.
Cancellation is immediate and on-chain. Subscribers can also cancel
directly via any Soroban-aware wallet or block explorer — the Vowena
frontend is not required.
Full example
Next steps
Core concepts
Projects, plans, subscriptions, allowances, and the billing lifecycle in
depth.
How it works
Visual walkthrough of the full protocol flow — plan creation to
cancellation.
SDK reference
Every method, type, and configuration option.
Run a keeper
Set up an automated keeper to charge subscriptions on schedule.