Summary
This proposal introduces a new subscription module on Layer 1 that enables recurring payments directly on the blockchain.
Projects can use it to offer subscriptions for services, memberships, or premium features without having to develop or deploy their own smart contracts.
Payments are automatically processed in supported currencies (e.g., LUNC, USTC, USDC [IBC version]), with a portion of each processed payment sent to the chain treasury for further utilization as revenue share for the chain.
Important note: cw20 tokens are not supported for this module.
Motivation
Recurring payments are a common requirement for projects offering premium access, SaaS tools, or marketplace memberships.
Currently, dApps must implement these features via custom contracts or off-chain logic, which limits adoption and integration opportunities. Contracts cannot be executed automatically on chain, they need to be executed by users or off-chain background processes.
By providing a native on-chain subscription layer, Terra Classic can standardize this functionality and make it available to all projects and even external (Web2) platforms via simple REST queries.
Concept
Users can subscribe to a project by submitting a MsgSubscribe transaction.
The message defines:
- Amount
- Payment period (e.g., weekly or monthly)
- Recipient address
- Additional details
Once created, the first payment is executed immediately and a protocol fee (e.g., 1%) is deducted and kept by the chain.
The subscription data is stored in the blockchain, including:
- Status “active” or “canceled”
- Next payment due date
- Amount, currency, and recipient
- Date of last successful payment
- Further relevant information
At each payment interval, the module checks the subscriber’s account balance:
- If there are sufficient funds, the payment is executed automatically.
- If this is not the case, the subscription is automatically canceled.
- Users can cancel their subscriptions manually at any time.
You can think of this similar to what a direct debit mandate is for your bank account, or a PayPal subscription.
Query and integration
The module provides query endpoints such as:
/terra/subscription/{address}/status
which return real-time information about the subscription status, next payment date, and additional metadata.
These endpoints behave like normal REST API calls and allow for easy integration with external applications such as websites, marketplaces, or other Web2 platforms.
If Wasm bindings are included, smart contracts can also query subscription data directly in the blockchain to implement premium access or reward tiers.
Governance parameters
Governance can configure the following:
- Approved payment currencies (initially LUNC, USTC, USDC)
- Protocol fee (1% by default)
Example use cases
- Premium memberships or feature unlocks in dApps
- Marketplace or DEX fee reduction tiers
- Web2 pages with restricted login for subscribers
- Game passes or SaaS-like monthly billing models
Benefits
- Enables subscription payments without custom contract logic
- Offers new business models for projects and dApps
- Creates a recurring revenue source for the chain through protocol fees
- Simplifies integration for Web2 and Web3 developers through standardized API endpoints
Important Note
Same as when unstaked coins reach your wallet after 21 days, there is no direct transaction for recurring payments in the block explorer (e.g. finder) as it is an automatic process during block execution.
Conclusion
The proposed subscription module creates a standardized on-chain mechanism for recurring payments on Terra Classic.
It lowers the barrier to entry for developers, provides subscribers with a consistent user experience, and introduces a sustainable revenue source for the blockchain itself.
This functionality is consistent with the overarching goal of strengthening the utility layer of Terra Classic and encouraging further project development on the blockchain.