pay() function on RecurringPaymentCovenant is permissionless. Any party can call it when the interval has elapsed. The contract enforces correctness — the caller cannot alter the amount or recipient.
When Can pay() Be Called?
next_payment_timestamp for all active payments and submits pay() transactions automatically. You can also trigger payment manually from the app.
Triggering Manually
Open the payment
Navigate to Payments and select the payment. The detail page shows Next Payment Due and whether it is currently claimable.
What the Transaction Produces
A validpay() transaction:
- Releases
amountPerIntervaltorecipientHash - Advances
next_payment_timestampbyintervalSeconds - Increments
payment_count - Adds
amountPerIntervaltototal_paid - Auto-completes if
total_paid >= totalAmount(when capped)
Executor Automation
The FlowGuard executor service polls all active payments and triggerspay() as each interval elapses. No action is needed from the sender or recipient. See Executor Network for details.

