The Fianto blog, page 3.
Notes on USDC subscriptions on Solana: how renewals are collected, what Fianto ships, and the numbers behind it.
Older posts.
Why do I need SOL to send USDC on Solana?
Solana charges every transaction's fee in SOL, its native coin, so a wallet holding only USDC cannot send it. The fee itself is tiny, 5,000 lamports per signature plus any priority fee, but your wallet must also keep a minimum SOL balance and pay rent for any new account the transaction opens. As of 15 October 2026, a one-off USDC payment through Fianto needed about 0.00067 SOL in the wallet and a first subscription about 0.0033 SOL; the checkout shows the live amount, and renewals need none.
PaymentsHow a merchant knows a crypto payment arrived: references, memos and order matching
To know a crypto payment really arrived, you need three answers: which transfer belongs to which order, whether it moved the right token and amount into your wallet, and whether the network has made it final. On Solana the first is solved with a reference key added to the transfer, the second by reading the transfer itself, and the third by waiting for the finalized commitment level. Fianto does all three and sends your server a signed order.paid webhook only once the payment is finalized.
Use casesAccept USDC for API and RPC plans: tiers, sessions and key webhooks
To accept USDC for API plans, make each tier a recurring USDC price, create a subscription checkout session when a signed-in account picks a tier, and let four webhook events drive the API key: issue it on subscription.created, extend it on subscription.renewed, decide on a grace rule at subscription.past_due, and revoke it on subscription.ended. Store the paid-until date from each event and check it on every request, so a missed webhook can never keep a key alive past what was paid. The customer approves once; Fianto collects every 30 or 365 days and sends the money straight to your wallet.
WalletsPaying a subscription with crypto: what changes for the customer
Paying a subscription with crypto replaces the card on file with one signature in your own wallet: you approve a fixed maximum per period, and each renewal is then pulled from your USDC balance with nothing for you to do. Three things change against a card. You cancel in a portal instead of calling your bank, a refund comes from the merchant because there are no chargebacks, and you pay a few small Solana costs, part of which you get back when the subscription ends.
StablecoinsUSDC vs USDT for accepting payments: what a merchant should compare
For a business taking payments, USDC and USDT both aim to be worth one US dollar, and the differences that matter are the issuer, how reserves are reported, who can redeem, and where each may be offered. USDT is the bigger token, about $184.6 billion issued at the end of June 2026 against $73.3 billion of USDC; on 15 October 2026 ESMA's MiCA register lists Circle as an e-money token issuer and does not list Tether. Accept the one your customers hold, and know that Fianto takes USDC on Solana only.
Use casesStripe closed my account: USDC as a second payment rail
If Stripe closed your account or put a reserve on your payouts, a USDC rail on Solana removes the part that hurt most: there is no processor balance, so there is nothing to hold back, and a finalized payment is in your own wallet. It does not remove review. Fianto approves every merchant by hand under an acceptable-use policy that forbids many of the same businesses card processors refuse, and USDC only reaches customers who already hold it, so treat it as a second rail beside cards, not a way around a ban.
CompareMoonPay Commerce (Helio) vs Fianto: renewals, fees and chains
MoonPay Commerce, the product that was Helio, renews a crypto subscription by emailing the customer a link to pay again each cycle, according to its own docs on 15 October 2026; Fianto collects each USDC renewal on Solana automatically after one approval. MoonPay lists a 2% transaction fee (1% with a HelioX Pass) and takes many tokens on many chains, with an optional bank off-ramp. Fianto takes USDC on Solana only, has no fiat payout, and charges the merchant nothing.
CompareConfirmo Subscribe vs Fianto: two pull-based stablecoin subscription products
Confirmo Subscribe and Fianto agree on the core idea: the customer approves once and each renewal is collected from their wallet. They differ on almost everything around it, as of 15 October 2026: Confirmo takes USDC, USDT and USDG on several chains, settles into a Confirmo balance, lets the merchant set the retry window and publishes no fee, while Fianto takes USDC on Solana only, pays each charge straight to the merchant's wallet and charges the merchant nothing. Confirmo suits enterprises that want many chains and a regulated counterparty; Fianto suits self-serve merchants whose customers hold Solana USDC.
Use casesDevelopersPaid Discord roles with USDC: a bot, a checkout and two webhook events
To sell a Discord role for USDC, run a bot that holds the Manage Roles permission, let a /join command open a Fianto subscription checkout with the member's Discord user ID as the customer reference, and add or remove the role when Fianto's subscription.created and subscription.ended webhooks arrive. Fianto has no Discord integration of its own: it collects the USDC into your wallet and tells your server what happened, and your bot does the Discord part.
GuidesAdd a crypto payment option alongside Stripe without changing your billing stack
You can add crypto payments next to Stripe without touching your card billing: keep Stripe for cards and add a second "Pay with USDC" option that writes to the same customer and access records. If you are a US business happy to be paid in dollars, Stripe's own stablecoin payment method is the smallest change. If you want USDC in your own wallet, no merchant fee, or Stripe's stablecoin option is not open to you, add a separate USDC checkout such as Fianto's beside it.
DevelopersAccept USDC in a Next.js app, and gate pages by subscription status
To accept USDC in a Next.js App Router app, install @fianto/nextjs, export Checkout() from a route that creates the session and Webhooks() from a route that receives signed events, then render FiantoButton from @fianto/react. Grant and revoke access from the webhook, never from the browser: store each subscription's status (ACTIVE, PAST_DUE or ENDED) and let your pages read it.
ProductZapier and Make automations for USDC shop sales
A Fianto shop can send its sales to Zapier or Make with no code: paste a Zapier "Catch Hook" URL or a Make "Custom webhook" URL into Connect an app in your shop settings. Fianto then posts two events as flat JSON, purchase.paid when someone pays and subscription.ended when a subscription bought in the shop ends. Only shop sales are sent: payment link and API sales, renewals and failed renewals are not.