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

USDC autopay on Base and on Solana: the same promise, built two different ways.

Both chains let a customer approve USDC once and be charged every period, but they put the rules in different places. On Base, a Spend Permission caps how much your backend may take per period and your code decides when, how much and where the money goes; on Solana, the Subscriptions program stores a plan with a fixed amount, fixed destination wallets and a list of allowed collectors, and refuses any charge outside it. Base gives you more freedom (custom periods, variable amounts) and more to build; Solana's plan model suits fixed-price subscriptions, which is what Fianto runs on it.

On this page
What do Base and Solana USDC autopay have in common?How do Spend Permissions and the Subscriptions program differ?What stops the merchant from taking more than it should?What does the customer sign, and what does it cost them?What would you build to run subscriptions on Base yourself?Should you choose Base or Solana for USDC subscriptions?SourcesQuestions
TL;DR
  • Base Subscriptions (Coinbase's guide, read 15 October 2026): USDC on Base, a revocable spend permission, your backend charges up to the period's limit, with no platform fee.
  • Solana's Subscriptions program: the plan's amount, destinations and collectors are fixed on chain, and the program refuses anything else.
  • Fianto runs the Solana side for you: plan, checkout, renewals, four retry attempts, webhooks and a cancel portal. The merchant pays nothing.

What do Base and Solana USDC autopay have in common?

Base and Solana USDC autopay both replace the card on file with a standing approval in the customer's own wallet. The customer signs once; after that, an approved party can move USDC out of the wallet each period without a new signature, up to a limit. Nothing is prepaid and nothing is held: the USDC stays with the customer until it is charged.

On Base the approval is a Spend Permission, which Coinbase's guide defines as a way for users "to grant revocable spending rights to applications". On Solana it is a subscription under the Subscriptions program, a public on-chain program that Moonsong Labs built with the Solana Foundation and that, in the words of Solana's docs, lets users "authorize future token transfers from their wallets with clear limits". The mechanics of Solana delegation are covered in Solana token delegation explained, and the head-term page on Solana subscriptions covers the fees and wallets.

How do Spend Permissions and the Subscriptions program differ?

Base's column is what Coinbase's "Accept recurring payments" guide said on 15 October 2026. Solana's column is the program as Fianto uses it today.

Base: Spend PermissionsSolana: Subscriptions program (as Fianto uses it)
What the customer approvesA spending limit per period for your appA plan: amount per period, period length, destination wallets and allowed collectors
Amount per charge"Charge any amount up to the permitted limit"Fianto charges the plan price plus fees, or less while a discount code lasts; never above the cap
Where the money may goYour subscription owner wallet by default, or a recipient address your code setsOnly the wallets named on the plan: the merchant's, and Fianto's for the fees
Who sends each renewalYour backend, with base.subscription.charge()Fianto's charging key, which the plan lists as a collector
Who pays the renewal's gasYour backend, or a paymaster that sponsors it if you set PAYMASTER_URLFianto's charging key pays the SOL; the merchant pays nothing
PeriodsDaily, weekly, monthly, annual, or custom such as 14 or 90 daysFianto: every 30 days or every 365 days
How the customer cancels"Through their wallet"One signature in the portal at fianto.xyz/my, effective at the end of the paid period
TestingBase Sepolia testnetFianto has no test mode; test webhook events, the CLI or a self-hosted backend

What stops the merchant from taking more than it should?

On Base, the per-period limit in the spend permission stops the merchant; inside that limit, your code is trusted. Coinbase's guide says "The spending limit automatically resets at the start of each new period" and that an uncharged amount "doesn't roll over", so a customer approving 20 USDC a month cannot be charged 40 in one month. Because the same guide lets your backend charge any amount up to that limit, the permission cannot tell a correct charge from a mistaken one: a scheduler bug that charged the full limit every period would still be inside it.

On Solana, the plan stops it. Fianto's docs list what the program refuses on every charge: a signer not on the plan's collector list, a transfer to any wallet the plan does not name, more than the plan amount in one period, any charge after a cancel or on a plan that has been ended, and terms that differ from the ones bound when the customer subscribed. Solana's own announcement puts the last point plainly: "Billing terms are snapshotted at subscribe time." The amount, mint, period and destinations of a Fianto plan never change once the plan exists, so even Fianto cannot redirect a subscriber's money. The full list is on the docs page The Subscriptions program.

What does the customer sign, and what does it cost them?

On Base, the customer signs the spend permission request your frontend opens with base.subscription.subscribe(). Coinbase's guide does not say who pays gas for that step; its paymaster setting covers your backend's charges and revocations.

On Fianto's Solana checkout, the customer signs one transaction that does three things: it creates the wallet's USDC approval for the program if the wallet has none, subscribes the wallet to the plan, and pays the first period. The customer is the fee payer for that one transaction:

  • The Solana fee, under $0.01.
  • Account rent for the subscription account: about 0.00144 SOL as of 15 October 2026, returned when they reclaim it after the subscription ends.
  • About 0.00119 SOL as of 15 October 2026, once, for the wallet setup account on the wallet's first subscription, not returned.
  • A flat network fee of 0.01 USDC with each charge today, the first one included, on plans created since 6 October 2026.

Solana is cutting rent in phases under SIMD-0437, with more steps planned for November 2026, so the checkout shows the exact live amount before the customer signs.

From then on the customer signs nothing. The next charge comes two minutes after the 30-day or 365-day period ends, and the merchant receives the plan price in full. There is no Fianto fee during the beta; after it, the customer pays about 0.1 to 0.5% on top.

What would you build to run subscriptions on Base yourself?

Base Subscriptions is a primitive, and the guide says so: "Your backend service charges the subscription when payment is due." Coinbase lists no transaction fees or platform cuts, so the cost is your engineering time. A working billing service on Base needs at least:

  1. Coinbase Developer Platform credentials (CDP_API_KEY_ID, CDP_API_KEY_SECRET, CDP_WALLET_SECRET) and a server wallet that owns the subscriptions.
  2. A scheduler that calls charge() once per period per subscriber, safely across restarts, and never twice.
  3. A rule for an empty wallet: how often to retry, when to stop, and when to cut access.
  4. Events into your app, so access follows payment.
  5. A page that shows customers what they pay for, beyond what their wallet shows.
  6. Optionally a paymaster, so your server wallet needs no ETH for charges and revocations.

On Solana, Fianto is that service, and its choices are fixed rather than configurable. Renewals are tried at the period boundary, then one hour, six hours and a day after it. The first counted failure sends subscription.past_due, a later success sends subscription.renewed, and the fourth failure sends subscription.ended. A missed period is never charged later. If you would rather pick your own retry schedule, that is a real reason to build.

Coinbase also sells a hosted route. Its Payment Acceptance product has recurring payments on mandates, with approvals from Base, Ethereum, Arbitrum, Optimism, Polygon or Solana, but its overview says it "requires onboarding with our team" and describes "Enhanced due diligence, ~1 month". It is aimed at payment providers and large platforms.

Run fixed-price USDC subscriptions on Solana without building the billing service.

See USDC subscriptions

Should you choose Base or Solana for USDC subscriptions?

Choose by where your customers already hold USDC first, and by the shape of your pricing second. A rule that holds up:

  • Your customers use Coinbase products and hold USDC on Base, and you have engineers: build on Base Subscriptions.
  • You bill by usage, weekly, or on custom periods: Base, because its permissions allow variable charges and custom periods, and Fianto offers only 30-day and 365-day fixed prices.
  • Your customers hold USDC on Solana and your plans have a fixed monthly or yearly price: Fianto, with no billing service to run and nothing charged to you.
  • You want a no-code start, through a shop or a payment link, with a cancel portal included: Fianto.
  • You need USDT, many chains at once or fiat settlement: neither Base Subscriptions nor Fianto. Look at the enterprise options in our comparison of stablecoin subscription platforms.

The wider set of providers, including Stripe and Confirmo, is in stablecoin subscription billing platforms compared, and the three Solana delegation models are explained in Solana Subscriptions and Allowances, for merchants.

Sources
Questions

Questions about USDC autopay on Base and Solana.

Are Base Subscriptions free?

Coinbase's guide, read 15 October 2026, says there are no transaction fees or platform cuts. You still build and run the backend that charges each subscription, and the gas for those charges is paid by a paymaster if you set one up.

Can a Solana subscription charge a different amount each month?

Not above the plan. The Subscriptions program refuses more than the plan amount in one period, and a Fianto plan has a fixed price; a discount code can only lower a charge.

Who pays gas for a renewal on Solana?

With Fianto, Fianto's charging key signs each renewal and pays its SOL fee; the merchant pays nothing. The customer pays the Solana fee only for transactions they sign themselves, such as the subscribe.

How does a customer stop USDC autopay?

On Base, Coinbase's guide says customers cancel through their wallet. On Fianto, the customer cancels in the portal at fianto.xyz/my with one signature, and the subscription runs to the end of the paid period.

Does Fianto support Base?

No. Fianto bills USDC on Solana only, for one-off payments and subscriptions.

Read next.

Solana9 min read

Solana token delegation explained: approvals, caps and who can pull

Token delegation on Solana lets a token account's owner approve one other address, the delegate, to move up to a set amount of that token. A plain approval has no schedule and no destination, so the Solana Foundation's Subscriptions program puts its own authority in the delegate slot and checks every transfer against a cap per period, a list of allowed wallets and a list of allowed signers.

Compare10 min read

Stablecoin subscription billing platforms compared, October 2026

Stablecoin subscription billing platforms split into two groups as of 15 October 2026: most pull each renewal from the customer's wallet after one approval (Stripe's preview, Coinbase's Base Subscriptions and its enterprise mandates, Confirmo Subscribe, Request Network, Fianto), while MoonPay Commerce's subscription links describe renewal reminders instead. Choose by network and by how you sign up: Stripe's subscriptions need an access request and its announcement named Base and Polygon, Confirmo and Coinbase's mandates go through sales or onboarding, and Fianto is self-serve with a manual review but bills USDC on Solana only.

Solana10 min read

Solana Subscriptions and Allowances: the three delegation models, for merchants

Solana's Subscriptions and Allowances program gives a merchant three ways to take money from a customer's wallet later: a fixed delegation (a spending budget), a recurring delegation (a limit that resets each period, on terms the customer sets) and a subscription plan (billing terms the merchant publishes). Use a plan for fixed-price monthly or yearly products such as SaaS, API tiers and memberships. It is the only model Fianto runs, and Fianto operates the keys, the collection and the retries, so you run none of them.

Fixed price, Solana wallets: no backend to run.

Create a monthly or yearly price and let Fianto collect it.

New posts are announced on X and Discord.