No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Wallets8 min read

Can a merchant take more than you approved? What a subscription approval allows.

No. A USDC subscription paid through Fianto runs on the Solana Foundation's Subscriptions program, which lets a collection through only if it stays within the cap for the period, the price plus the fees, and goes to a wallet the plan names. Your wallet may still list the approval as unlimited, because one approval is shared by every subscription your wallet pays through the program; the limits sit in each subscription's on-chain terms, not in that approval.

On this page
How much can a crypto subscription take from your wallet?How the cap is worked out for one planWhat the Subscriptions program refusesWhy your wallet shows the approval as unlimitedWhat can change after you sign, and what cannotWhere the cap does not protect youHow to stop paying one subscriptionSourcesQuestions
TL;DR
  • 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.

The hosted checkout for a sample monthly plan, 19.00 USDC plus the 0.01 USDC network fee, before the wallet opens: the amount charged today, the next charge date, the network fee, the most the merchant can charge per month (19.01 USDC), the two rent lines and the Subscribe button.

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 capAmountWhere it goes
Price set by the merchant19.00 USDCThe merchant's receiving wallet
Fianto service fee0.00 USDC during the betaFianto's treasury, when above zero
Network fee0.01 USDC per charge today, on plans created since 6 October 2026Fianto's treasury
Cap per 30-day period19.01 USDCSplit 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 billed

What 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 toResultThe program's error message
Collect more than the cap in one periodRefusedTransfer amount exceeds period limit
Send the USDC to a wallet the plan does not listRefusedDestination not in plan whitelist
Collect with a key that is neither the plan owner nor a listed pullerRefusedCaller not authorized for this action
Collect after a cancelled subscription's paid periodRefusedSubscription cancelled and past valid period
Charge on terms other than the ones you subscribed toRefusedSubscription 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.

Solana Foundation, Subscriptions program README

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.

Sources
Questions

Questions about subscription approval limits.

Can a crypto subscription take my whole USDC balance?

Not through the Subscriptions program. Each subscription can collect at most its cap per period, and the program refuses any collection above it, even though the shared approval underneath reads as unlimited.

Is approving a USDC subscription on Fianto safe?

The approval lets the program collect only within each subscription's on-chain terms: the cap, the period and the plan's wallets. The program is public and audited by Cantina, but it can still be upgraded, and the cap does not stop charges for a service you no longer want, so cancel what you do not use.

Can the merchant raise the price of my subscription?

Not on your existing subscription. A new price or fee gives new subscribers a new plan; you keep paying the terms you signed until you cancel or the subscription ends.

Does a discount lower the cap?

No. A discounted subscriber stays on the plan capped at the full price, and Fianto collects less while the discount lasts.

Who can collect from my wallet on a Fianto subscription?

Only Fianto's keys listed on the plan, and only to the plan's wallets: the merchant's receiving wallet and Fianto's treasury for the fees.

Read next.

Wallets7 min read

How to see and revoke token approvals on Solana

A token approval on Solana is a delegate set on one of your token accounts: an address allowed to move tokens from it, and each account holds only one at a time. You can see and remove it in some wallets (in Solflare, under Settings, Security & Privacy, Spending approvals) or with the spl-token command line, and revoking takes effect at once. Before you revoke the delegate on your USDC account, check whether it belongs to the Solana Subscriptions program: that single approval is shared by every subscription your wallet pays through the program, so removing it makes each of them fail at its next renewal.

SolanaWallets7 min read

How to close empty token accounts on Solana and get SOL back

Closing an empty token account on Solana sends the SOL it holds as rent back to an address you choose, about 0.00149 SOL for a standard 165-byte account opened at today's rate (measured 15 October 2026). Only accounts with a zero token balance can be closed. Keep the USDC account you pay subscriptions from and the one your business gets paid into: with Fianto, a closed payer account fails the next renewal as a counted failure, and a merchant wallet without one cannot take a single new checkout.

Solana8 min read

Programs, not smart contracts: how Solana runs a subscription payment

A Solana program is what other chains call a smart contract, with one structural difference: the program account holds only executable code, and every piece of state it works on lives in separate accounts that the program owns. A payment program on Solana is therefore a program plus a set of accounts, usually at program derived addresses. The Subscriptions program behind Fianto shows the pattern: a plan account for each price and its terms, one subscription account per subscriber and plan, and one authority account per wallet and token.

Read the cap line before you sign.

It is the most that subscription can ever collect in a period.

New posts are announced on X and Discord.