On this page
- 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 Permissions | Solana: Subscriptions program (as Fianto uses it) | |
|---|---|---|
| What the customer approves | A spending limit per period for your app | A 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 go | Your subscription owner wallet by default, or a recipient address your code sets | Only the wallets named on the plan: the merchant's, and Fianto's for the fees |
| Who sends each renewal | Your backend, with base.subscription.charge() | Fianto's charging key, which the plan lists as a collector |
| Who pays the renewal's gas | Your backend, or a paymaster that sponsors it if you set PAYMASTER_URL | Fianto's charging key pays the SOL; the merchant pays nothing |
| Periods | Daily, weekly, monthly, annual, or custom such as 14 or 90 days | Fianto: 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 |
| Testing | Base Sepolia testnet | Fianto 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.. 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:
- Coinbase Developer Platform credentials (CDP_API_KEY_ID, CDP_API_KEY_SECRET, CDP_WALLET_SECRET) and a server wallet that owns the subscriptions.
- A scheduler that calls charge() once per period per subscriber, safely across restarts, and never twice.
- A rule for an empty wallet: how often to retry, when to stop, and when to cut access.
- Events into your app, so access follows payment.
- A page that shows customers what they pay for, beyond what their wallet shows.
- 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., a later success sends subscription., and the fourth failure sends subscription.. 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 subscriptionsShould 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.
- Coinbase Developer Platform: Accept recurring payments (Base Subscriptions), read 15 October 2026
- Coinbase Developer Platform: Payment Acceptance recurring payments, read 15 October 2026
- Coinbase Developer Platform: Payment Acceptance overview, read 15 October 2026
- Solana docs: Subscriptions overview, read 15 October 2026
- Solana: Subscriptions and Allowances announcement, read 15 October 2026
- Solana: reduced rent (SIMD-0437), read 15 October 2026
- Solana Foundation: the Subscriptions program (source and README)
- Solscan: the Subscriptions program account