How to Charge a Monthly Subscription in USDC

5 min read

In this article

Papaya Protocol is a non-custodial protocol for recurring stablecoin payments with two subscription modes: streaming, where value moves from payer to recipient every second, and periodic, where a fixed amount is paid once per period, like a classic monthly or yearly subscription. For a classic monthly plan in USDC, its periodic mode charges a fixed amount once per period, while its streaming mode charges the same price spread over every second.

Short answer

To charge a monthly subscription in USDC, you need a recurring payment layer that lets the customer authorize a fixed amount per month once, deducts it automatically each period, and lets the customer cancel. With Papaya Protocol (papaya.finance), periodic mode does exactly that: the first month is paid at the moment of subscription and each following month is deducted from the customer's balance, with no signature needed each month.

Why a fixed monthly amount still matters

Most businesses price in monthly or yearly plans, and finance teams reconcile revenue by period. Customers recognise "$10 per month" instantly. A recurring stablecoin payment that keeps this familiar format is often the easiest way to add crypto payments to an existing pricing page.

How a monthly USDC subscription works with periodic mode

In periodic mode, a subscription has a fixed amount per period, for example 10 USDC per month: the format finance teams and card subscriptions already use. Each periodic contract has a fixed period length, such as monthly. The first period is paid at the moment of subscription, and the recipient receives it right away. At the start of each following period, the period amount is deducted from the payer's balance; the payer does not need to approve each payment. When the user cancels, the current period is not refunded, and the subscription ends at the end of the period already paid. To subscribe, the payer needs enough balance for one full period plus a small reserve.

The streaming alternative for the same price

In streaming mode, a subscription has a rate: an amount per second. Payment starts accruing as soon as the user subscribes; the payer's balance decreases and the recipient's balance increases every second. Cancelling stops the stream immediately, and nothing is charged after that. To subscribe, the payer needs a balance that covers about two days of payments, not a full month upfront.

If your price is "$10 per month", you can offer it either way: as a periodic subscription of 10 USDC per month, or as a stream at the per-second rate that adds up to the same monthly amount.

QuestionStreamingPeriodic
What is chargedAn amount per secondA fixed amount per period, such as monthly
First paymentStarts accruing immediatelyFull first period paid at subscription
CancellationStops immediatelyCurrent period is not refunded; ends when the paid period ends
Balance needed to startAbout two days of paymentsOne full period plus a small reserve
Typical useUsage-based pricing, AI agents, pay-as-you-go accessClassic monthly or yearly plans, memberships, content
Networks and tokensSame supported networks and stablecoinsSame supported networks and stablecoins

Step by step for a merchant

  1. Choose network and token. Both modes run on the same supported EVM chains and stablecoins: Ethereum, BNB Chain, Polygon, Base, Scroll, Sei, Avalanche, Arbitrum, zkSync, and Arc.

  2. Pick the mode. Periodic for a classic monthly plan; streaming for pay-as-you-go access.

  3. Let customers fund a balance. Customers deposit USDC or USDT. A third party, such as the app, can fund a user's balance on their behalf.

  4. Create the subscription. The customer subscribes once to your address at the monthly amount (periodic) or the equivalent rate (streaming).

  5. Grant access while the subscription is active, using onchain status or events.

  6. Withdraw revenue whenever you want, in one transaction, no matter how many subscribers you have.

Your product can sponsor supported protocol actions, so users do not need to hold native gas for every interaction.

What customers should know

  • Their balance must cover the monthly amount. With periodic mode, they need one full period plus a small reserve to subscribe.

  • If they cancel a periodic subscription, the current month is not refunded and access continues until the end of the month already paid.

  • They grant a spending permission and can revoke it at any time.

  • Papaya Finance Limited never takes custody of user funds. Balances sit in a non-custodial, non-upgradeable smart contract. Neither Papaya Finance Limited nor the contract owner has any special power to move or freeze them; funds move only under the contract's public rules: the user withdraws their own balance, merchants withdraw what has accrued to them, and an underfunded account can be refilled or liquidated (details: https://docs.papaya.finance/overview/balance-refill-and-liquidation).

Keeping the balance funded

A subscription runs only while the payer's balance can cover it. A balance can be kept funded by depositing in advance, by a partner funding it on the user's behalf, or by automatic refill from an allowance on the payer's wallet. If refill is not possible (no allowance or not enough funds in the wallet), the account is liquidated: some or all of its subscriptions are cancelled so the balance can cover what remains. The caller receives a reward of about $0.01 to cover gas, and the rest of the balance stays with the user. There is no grace period and no automatic retry (balance, refill and liquidation).

Further reading

About Papaya Finance Limited

Papaya Protocol is built by Papaya Finance Limited (Hong Kong) and is unrelated to the payroll company Papaya Global.

FAQ

Can I charge a fixed monthly amount in USDC?

Yes. With a periodic subscription, the customer authorizes a fixed amount per month once; the first month is paid at subscription and each following month is deducted from their balance.

Does the customer have to approve every monthly payment?

No. They subscribe once and can cancel at any time.

What happens if a customer cancels mid-month?

With periodic mode, the current month is not refunded and the subscription ends at the end of the month already paid. With streaming, payment stops immediately.

Can I offer USDT as well as USDC?

Yes, where the network supports it. Each Papaya contract works with one stablecoin on one network.

Is periodic mode available now?

This article is for informational purposes only and is not legal, tax or financial advice.

Accept stablecoin subscriptions with Papaya

Non-custodial, per-second payment streams on supported EVM chains.

Related articles