How do I authorize recurring agent payments with a spending cap?
To authorize recurring agent payments with a spending cap, the customer signs one on-chain standing authorization that fixes how much a named party may pull, per cycle and in total, and until when. The operator then pulls autonomously within that cap until the customer revokes it. AlgoVoi Recurr is the open, Apache-2.0 format and method for that authorization: a content-addressed standing-authority descriptor, per-chain customer-signing payloads built on standard primitives, per-chain revocation, and an informed-consent disclosure model. It is the format and method only, not an executor or a signing key, so you keep custody of both.
Last updated 22 September 2026
A standing authority is the recurring-payment equivalent of a signed mandate: the customer approves a capped, revocable pull once, and every later charge has to prove it stayed inside that one signed authorization. Recurr describes the authorization so it recomputes from the bytes, byte-identical in Python and Node, with no AlgoVoi software in your trust base.
What the customer signs, once
The standing-authority descriptor caps the relationship in three ways at the same time:
per_cycle_amount_minor: the most that may be pulled in a single cycle.cap_amount_minor: the total that may be pulled over the authority's whole life.cap_period_seconds: the cycle length, at least one day.
It also pins the chain, the customer's wallet, the asset and decimals, an expires_at you supply (never derived from wall-clock, so the descriptor stays recomputable), and the per-chain revocation method. Its reference is authority_ref = "sha256:" + SHA-256(JCS(descriptor)), so anyone can recompute it from the descriptor alone.
Built on standard public primitives
The customer-signing payload for each chain uses only primitives that already exist:
- ERC-20
approveon the EVM chains (Base, Tempo, Arc). - SPL
Approveon Solana. - Hedera token allowance.
- Soroban
approveon Stellar. - The Algorand spending-cap vault parameters.
You supply the spender or facilitator and the merchant-payout address. How a pull is submitted and settled on-chain stays in your own rail.
Prove every pull stayed inside the cap
Each cycle pull composes with the one signed authority and your policy into a single, offline-verifiable keystone chain. The standing-authority link is the descriptor verbatim, so its keystone reference is exactly the recurr authority_ref, byte for byte. The keystone verifier then checks, fail-closed, that the per-cycle cap is within your policy, each pull is within the per-cycle cap, each pull is inside the authority window, and the cumulative pulls stay within the period cap. Python and Node emit and verify the same references.
Informed consent and revocation
Before any wallet prompt, disclosure_card renders the human-readable summary a customer sees: the per-cycle cap, total cap, cycle, expiry, chain, and how to revoke, with the honest note that a crypto standing authority sits outside the Payment Services Regulations' chargeback regime. Revocation is a per-chain method recorded in the descriptor, so a customer can end the authority at any time and that end state verifies offline too.
Get started
Recurr is open source (Apache-2.0) as source on public GitHub at github.com/chopmob-cloud/algovoi-recurr, byte-identical Python and Node. To see how a recurring authority composes and verifies inside a keystone chain, read the keystone guide at https://docs.algovoi.co.uk/keystone.