On this page
- The most a Fianto subscription can collect per period is fixed on chain when you sign: price plus service fee plus network fee, 19.01 USDC on a 19.00 plan during the beta.
- A collection above the cap, to a wallet not on the plan, or signed by a key not on the plan fails inside the program, so no USDC moves.
- The wallet approval reads as unlimited because it is shared across subscriptions. Cancel a subscription in the portal; do not revoke the approval to stop one.
How much can a crypto subscription take from your wallet?
A Fianto subscription can take one capped amount per billing period, and the cap is written on chain before your first payment. The cap is the price plus Fianto's service fee plus the network fee. During the beta the service fee is zero, so on a 19.00 USDC monthly plan the cap is 19.01 USDC every 30 days.
You see that number before you sign. The hosted checkout has a line that reads "Most [merchant name] can charge", followed by the amount and "per month" or "per year". That figure is the plan's cap, and the program holds every collection to it. A payment link's card says "Monthly, capped at" followed by the price alone; the fees are added on the checkout page, so the checkout line is the one to read.
Subscribing to
Pro
One signature. Cancel any time at fianto.xyz/my with one more signature.
Subscriptions are the only thing that can pull from your wallet through Fianto. The same program also offers spending allowances, which AI agents paying with stablecoins describes; Fianto does not create them. A one-off payment is a single transfer you sign; nothing about it lets anyone collect again.
How the cap is worked out for one plan
The cap is computed once, when Fianto creates the plan for a recurring price, and then it is fixed. A plan is created when the first checkout session for that price is created, before anyone pays. Here is the arithmetic for a 19.00 USDC monthly price created during the beta:
| Part of the cap | Amount | Where it goes |
|---|---|---|
| Price set by the merchant | 19.00 USDC | The merchant's receiving wallet |
| Fianto service fee | 0.00 USDC during the beta | Fianto's treasury, when above zero |
| Network fee | 0.01 USDC per charge today, on plans created since 6 October 2026 | Fianto's treasury |
| Cap per 30-day period | 19.01 USDC | Split between the two wallets above, in one transaction |
A discount code does not change the cap. A subscriber with a discount stays on the same plan, capped at the full price, and Fianto collects less while the discount lasts. With 50% off for three periods on that plan, each of those three charges is 9.51 USDC: 9.50 for the merchant and the 0.01 USDC network fee charged today, which a discount does not reduce. From the fourth period the full 19.01 is collected, still within the same cap. How codes work is in discount codes for USDC payments.
After the beta, Fianto plans to charge customers about 0.1 to 0.5% on top of the price. That cannot raise the cap of a plan you already signed. In Fianto's code a change to the price, the merchant's wallet, the fee or the network fee gives new subscribers a new plan, and existing subscribers keep paying the terms they signed for.
Every Fianto subscription shows its cap before the customer signs. The merchant pays nothing.
See how subscriptions are billedWhat the Subscriptions program refuses
The Subscriptions program refuses a collection that breaks the plan's terms, and a refused collection moves nothing: the whole transaction fails. The plan holds an amount, a period, a list of destinations (the wallets money may go to) and a list of pullers (the keys allowed to collect). On Fianto the pullers are Fianto's charging keys; the business you pay holds no key on the plan.
| Someone tries to | Result | The program's error message |
|---|---|---|
| Collect more than the cap in one period | Refused | Transfer amount exceeds period limit |
| Send the USDC to a wallet the plan does not list | Refused | Destination not in plan whitelist |
| Collect with a key that is neither the plan owner nor a listed puller | Refused | Caller not authorized for this action |
| Collect after a cancelled subscription's paid period | Refused | Subscription cancelled and past valid period |
| Charge on terms other than the ones you subscribed to | Refused | Subscription plan terms do not match the current plan |
The messages are the ones the program's own client library, @solana/subscriptions, attaches to its error codes; Fianto's backend reads the same codes to decide what a failed renewal means. The rules behind them are described in the program's README, and the program runs at De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44. How a plan sits on top of an ordinary token approval is explained step by step in Solana token delegation explained.
Why your wallet shows the approval as unlimited
Your wallet shows an unlimited USDC approval because the Subscriptions program asks for the largest amount a token account can approve, once per wallet and token, and then limits each subscription separately. The README says it plainly:
For each (user, mint) pair, the program creates a Subscription Authority (SA) PDA and sets it as the single delegate on the user's token account with u64::MAX approval.
A delegate is an address allowed to move tokens from your account, and u64::MAX is the largest number the field holds: 18,446,744,073,709,551,615 base units, about 18.4 trillion USDC at six decimals. A wallet or an approval checker may print that as "unlimited". The delegate is the program's own account, which has no private key and moves USDC only when one of your subscriptions allows it.
The approval is shared. Every subscription your wallet pays in USDC through the program, with Fianto or any other service built on it, goes through the same one. On Fianto, your first subscription sets it up; the checkout calls that the one-time wallet setup and shows its rent, about 0.00119 SOL as of 15 October 2026, not returned. The checkout shows the exact live amount before you sign.
What can change after you sign, and what cannot
- The amount, the period and the destinations cannot change. They are fixed on the plan. A monthly plan collects every 30 days, a yearly one every 365 days.
- The merchant moving to a new wallet does not move your payments. When a Fianto merchant changes its receiving wallet, existing subscriptions keep paying the old one, because that is the wallet on their plan.
- The list of pullers can change. Fianto can replace a charging key on a plan without touching anyone's amount, period or wallets.
- A missed period is not collected later. If a renewal fails, Fianto tries four times in all: at the period boundary, then about one hour, six hours and a day after it. After the fourth counted failure the subscription ends, and that period is never charged.
Where the cap does not protect you
The cap limits each subscription, not your wallet. Three subscriptions mean three capped amounts per period, one each: a 19.01 monthly plan and a 5.01 monthly plan can together collect 24.02 USDC each period, and a yearly plan adds its own cap once every 365 days.
The cap also says nothing about whether the service is worth the money. If a merchant stops delivering, the program still lets each period's charge through until you cancel. There is no chargeback on chain; a refund is the merchant sending USDC back from its own wallet, which chargebacks vs crypto refunds covers.
The protection is only as good as the program. Its source is public and its Cantina audits sit in the repository, each covering the commits it names. It is not frozen: its upgrade authority can still deploy a new version. Fianto's security page lists what the program checks and who pays the network fees.
How to stop paying one subscription
Cancel it in the customer portal at fianto.xyz/my: sign in with a signed message, which moves nothing, then approve one cancel transaction. The subscription runs to the end of the period you paid for and stops. The full walk-through is in how to cancel a crypto subscription.
Revoking the shared approval is a blunt tool. The program's README notes that revoking only the token account's delegate does not make a subscription terminal (ended on chain), and on Fianto each subscription's next renewal fails, goes past due, and ends after the fourth failed attempt, for every subscription sharing that approval. If you revoked it by mistake, the portal offers Renew approval on the subscription's card. Before you clear any delegate, read how to see and revoke token approvals on Solana. The account-level detail is in the Subscriptions program page of the Fianto docs.