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

Streaming payments and per-period subscriptions: how each one moves the money.

Money streaming moves tokens from payer to payee continuously at a set rate per second, so the payee's balance grows every second until someone stops the stream or the payer's balance runs out; Superfluid does this on EVM networks with wrapped Super Tokens such as USDCx. A per-period subscription instead collects one fixed charge per billing period, which is how Fianto bills USDC on Solana: the customer approves once, and each 30- or 365-day charge is pulled within a cap. Streaming fits salaries, vesting and pay-as-you-go use; per-period billing fits a product sold by the month or year.

On this page
What is the difference between streaming payments and subscriptions?How does a Superfluid stream work?How does a per-period USDC subscription work on Solana?What does a 30 USDC monthly plan look like under each model?Which model is easier to account for?When is streaming the better choice?SourcesQuestions
TL;DR
  • Superfluid (docs, 15 October 2026): tokens flow at a per-second rate from a Super Token balance; opening a stream takes a buffer deposit of 4 hours of flow on the mainnets its liquidation page lists, with fixed minimums on Ethereum mainnet.
  • Fianto: plain USDC on Solana stays in the customer wallet until each due date; one charge per 30 or 365 days, within an on-chain cap, with four attempts if the wallet is short.
  • A stream pays for exactly the time used. A per-period charge is a discrete payment you can match to an invoice line, a webhook and an access period.

What is the difference between streaming payments and subscriptions?

A streaming payment moves money continuously, second by second, while a subscription moves a fixed amount once per billing period. Superfluid's docs define the first in one sentence: "Money Streaming is a process where tokens are continuously transferred from a sender to a receiver at a defined per-second rate." A per-period subscription, in the on-chain sense used here, is a standing permission: the customer approves once, and the merchant collects one charge per period, never more than the cap the customer agreed to.

Fianto publishes this post and builds the second kind, so weigh it accordingly. It does not compete with Superfluid on the same chain: Superfluid runs on EVM networks, and Fianto bills only USDC on Solana. The useful question is which model fits what you sell. The wider set of ways to bill on a schedule, from invoice links to capped pulls, is laid out in how crypto recurring payments work.

How does a Superfluid stream work?

A Superfluid stream is opened once and then runs without further transactions. The docs put it plainly: "Creating a stream is a one-time action. The balance is dynamically calculated and does not require continuous transactions." Each account's balance is computed from its last change plus its net flow rate multiplied by the seconds since then.

Four parts of the design matter to a business:

  • Super Tokens. Streams move Super Tokens, an extension of the ERC-20 standard. A plain stablecoin is wrapped first. The docs describe it in one line, "Deposit ERC20 tokens into the Wrapper Super Token contract to mint an equivalent amount of Super Tokens.", and their streaming examples use USDCx, the Super Token for USDC. The receiver unwraps to get the original token back.
  • The buffer. Opening a stream sets aside a deposit, which the sender stands to lose if the stream is left open after their balance runs out. Superfluid's liquidation page lists a 4-hour deposit for Polygon, Ethereum mainnet, Gnosis Chain, Optimism and Arbitrum; on Ethereum mainnet a minimum applies instead when it is larger, 69 tokens for USDCx.
  • Running dry. When the sender's balance reaches zero the stream turns critical, and the docs say: "The sender's balance is now zero, and the permissions on the stream now allow anyone to close it." The receiver is paid out of the buffer until someone does. "By leaving their streams open for too long, stream creators stand to lose this buffer."
  • Networks. Superfluid's own network list names Ethereum, Base, Polygon, Optimism, Arbitrum One, Avalanche C, BNB Smart Chain, Gnosis Chain, Celo, Scroll and Arc among its mainnets. Solana is not on it.

Superfluid adds automation on top. Auto-Wrap tops up a sender's Super Token balance from their plain tokens when it runs low, and the Stream Scheduler can start and stop a stream on set dates. Superfluid describes itself as bringing streams to more than payroll: "Superfluid is a revolutionary asset streaming and distribution protocol bringing subscriptions, salaries, vesting, and rewards to DAOs and crypto-native businesses worldwide."

How does a per-period USDC subscription work on Solana?

A per-period subscription on Solana is a capped permission that the Solana Foundation's Subscriptions program enforces each period. With Fianto, the customer signs one transaction at checkout. It records a cap per period, the price plus the fees, names the wallets the money may go to, and pays the first period at once. From then on, Fianto asks the program to collect one charge per period, two minutes into each new period, and the program refuses any amount above the cap or any destination the plan does not name.

Nothing is wrapped, and nothing is handed to Fianto in advance. The customer pays in plain USDC, and the USDC stays in their own wallet until each due date. A monthly plan renews every 30 days and a yearly plan every 365 days; those are the only intervals. The mechanics of the permission are in Solana token delegation explained, and the product page for this kind of billing is Solana subscriptions. Why the plan is priced in USDC rather than SOL is in why price a subscription in USDC, not SOL.

What does a 30 USDC monthly plan look like under each model?

A 30.00 USDC monthly plan as a stream runs at 30 / 2,592,000 seconds, about 0.0000116 USDCx per second, which is 1.00 a day. As a Fianto subscription it is one 30.00 USDC charge every 30 days. Here is the same customer under both, with the figures computed from the documented rules:

MomentSuperfluid streamFianto subscription
Day 0, startCustomer wraps USDC into USDCx and opens the stream; a buffer of 4 hours of flow, about 0.17 USDCx, is set aside (69 USDCx on Ethereum mainnet, where the minimum applies)Customer signs once and pays 30.00 USDC plus a 0.01 USDC network fee today; they also pay rent in SOL, shown on the checkout
Day 1010.00 USDCx has reached the merchant, second by secondNothing moves; the customer has paid for days 0 to 30
Customer cancels on day 10The stream stops; the merchant has 10.00 and the customer keeps the restCancelled in the portal; the subscription runs to day 30, and nothing is returned unless the merchant refunds by hand
Wallet runs dry on day 18 insteadThe stream turns critical; anyone may close it, and the buffer pays the merchant until then; the customer loses what is left of the bufferNothing happens until day 30
Day 30, two minutes in(only if still funded) the flow simply continuesFianto collects 30.00 plus the fee; if the wallet is short, nothing is taken and the subscription is past due
After a failed chargeNot applicable: there is no charge to retryFianto tries again about one hour, six hours and one day after the due time; after the fourth failure the subscription ends

The rent on the Fianto side is a Solana rule, not a fee. As of 15 October 2026 the subscription account holds about 0.00144 SOL, returned when the customer reclaims it after the subscription ends, and a wallet's first subscription also sets up an account of about 0.00119 SOL that is not returned. Solana is cutting rent in phases, so the checkout reads the live amount and shows it before the customer signs. The 0.01 USDC network fee is today's amount on plans created since 6 October 2026, and the customer, never the merchant, pays it. What happens during the retries is in failed renewals and retries.

Sell a monthly or yearly plan in plain USDC. The customer approves once; the merchant pays nothing.

See how a plan is billed

Which model is easier to account for?

Per-period charges are easier to account for, because each one is a discrete payment with its own transaction signature, amount and date. On Fianto each charge appears in the dashboard Payments list, exports to CSV, and sends your server a signed webhook: subscription.created for the first period, subscription.renewed for each later one, subscription.payment_failed when a charge fails and subscription.ended at the end. Access can follow the events directly: extend by one period on a renewal, remove it on an end. The states behind those events are on the docs page Subscription lifecycle.

A webhook delivery log: subscription.created on 13 October 2026, subscription.renewed on 12 November, subscription.past_due on 12 December, all delivered.

A stream has no such moments. Revenue accrues every second, and the balance is a formula until someone wraps, unwraps or transfers. That is exact for pay-as-you-go use, but it means your books need a rule for when streamed income is recognised, and an invoice for "30 days of service" has no single payment to point at. What to record for each USDC payment is covered in accounting for USDC revenue.

When is streaming the better choice?

Streaming is the better choice when value is delivered continuously and either side may stop at any moment. Pick Superfluid, or another streaming protocol, if:

  • You pay salaries, contractor retainers or token vesting, where paying by the second is the point.
  • You sell metered or pay-as-you-go access and want the customer charged for exactly the time used, with no proration. Paying per API request is a separate model, compared in x402 vs subscriptions for APIs.
  • Your customers and treasury are on Ethereum, Base, Polygon, Optimism, Arbitrum or another network Superfluid lists, and they are comfortable wrapping tokens.

Per-period billing is the better choice when you sell a plan by the month or year, want a fixed price on a fixed date, and want the customer's money to stay plain USDC in their own wallet until it is due. Fianto's limits are real: USDC on Solana only, monthly and yearly intervals only, no usage-based billing, no free trials, and no renewal reminders sent to subscribers. If you need per-second or metered billing, Fianto cannot do it. Prepaid credits are the usual workaround, as in accepting USDC for an AI app, and a monthly retainer is a natural per-period plan, as in getting paid in USDC as a freelancer.

Sources
Questions

Questions about streaming payments and subscriptions.

What is money streaming in crypto?

Money streaming is a continuous transfer of tokens from a sender to a receiver at a set rate per second. Superfluid opens a stream with one transaction, and both balances then change every second without further transactions.

Does Superfluid work on Solana?

Superfluid's own network list, read on 15 October 2026, names EVM networks such as Ethereum, Base, Polygon, Optimism and Arbitrum One. Solana is not on it.

Do I need to wrap USDC to stream it?

On Superfluid, yes: streams move Super Tokens, so USDC is wrapped into USDCx first and unwrapped by the receiver. A Fianto subscription charges plain USDC on Solana.

What happens when a stream runs out of money?

The stream becomes critical and anyone may close it. Until it is closed the receiver is paid from the buffer the sender deposited, and the sender can lose that buffer.

Is there a Superfluid alternative for subscriptions on Solana?

Fianto bills USDC subscriptions on Solana through the Solana Foundation's Subscriptions program: one approval, then one capped charge every 30 or 365 days. It does not stream per second.

Read next.

Payments8 min read

How crypto recurring payments work: push, pull and the four billing models

Crypto recurring payments work in one of two ways: the customer pushes a new payment every period, usually after an invoice link, or the customer approves once and the merchant pulls each charge within an on-chain limit. A wallet never pays on its own, so a true automatic renewal needs that approval and a program that enforces it. On Solana, Fianto uses the Solana Foundation's Subscriptions program for this and pulls each period's USDC straight into the merchant's wallet.

Compare9 min read

Confirmo 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 cases9 min read

Accept USDC for an AI app: monthly credits and one-off packs

An AI app can take USDC with two Fianto products: a monthly price that grants a set number of credits each time a period is paid, and one-off checkout sessions that sell credit packs on top. Fianto charges fixed amounts only, with no metering or usage-based billing, so the credit balance lives in your own database and webhooks tell it when to add credits. You pay nothing per charge; on a 5.00 pack, a US card would cost you $0.445 at Stripe's published rate.

Bill by the month, not by the second.

Create a monthly plan and share its checkout.

New posts are announced on X and Discord.