Skip to content

This is a Clarity smart contract for the Stacks blockchain that implements a comprehensive subscription management system with recurring payments and flexible plan structures.

Notifications You must be signed in to change notification settings

doyin-b/Subscription-Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Subscription Service Smart Contract

A comprehensive Clarity smart contract for managing recurring subscription services on the Stacks blockchain. This contract enables businesses to create subscription plans and manage customer subscriptions with automatic renewal capabilities.

Features

Core Functionality

  • Subscription Plans: Create and manage multiple subscription tiers with custom pricing and duration
  • User Subscriptions: Subscribe to plans with STX token payments
  • Auto-Renewal: Automatic subscription renewal system for seamless service continuity
  • Subscription Management: Cancel, renew, or toggle auto-renewal settings
  • Payment Processing: Secure STX token transfers with balance tracking

Access Control

  • Owner Functions: Plan creation, deactivation, and fund withdrawal (contract owner only)
  • User Functions: Subscribe, cancel, renew, and manage personal subscriptions
  • Public Functions: Auto-renewal processing (callable by anyone)

Contract Structure

Data Storage

  • subscription-plans: Stores plan details (name, price, duration, status)
  • subscriptions: Tracks individual user subscriptions and their status
  • user-subscriptions: Maps users to their active subscriptions
  • plan-subscribers: Maintains subscriber counts per plan

Key Functions

Owner Functions

  • create-plan(name, price, duration): Create new subscription plans
  • deactivate-plan(plan-id): Disable existing plans
  • withdraw-funds(amount): Withdraw collected subscription fees

User Functions

  • subscribe(plan-id, auto-renew): Subscribe to a plan with payment
  • renew-subscription(subscription-id): Manually renew an active subscription
  • cancel-subscription(subscription-id): Cancel an active subscription
  • toggle-auto-renew(subscription-id): Enable/disable automatic renewal

Public Functions

  • process-auto-renewal(subscription-id): Process automatic renewals for eligible subscriptions

Read-Only Functions

  • get-subscription-plan(plan-id): Retrieve plan details
  • get-subscription(subscription-id): Get subscription information
  • is-subscription-active(subscription-id): Check subscription status
  • get-contract-balance(): View total contract balance

Usage Example

  1. Deploy Contract: Deploy the contract to Stacks blockchain
  2. Create Plans: Owner creates subscription plans with pricing
  3. User Subscribe: Users subscribe to plans by paying STX tokens
  4. Manage Subscriptions: Users can cancel, renew, or modify auto-renewal settings
  5. Process Renewals: Auto-renewals are processed when subscriptions expire

Error Codes

  • u100: Owner-only function called by non-owner
  • u101: Requested item not found
  • u102: Item already exists
  • u103: Insufficient funds for operation
  • u104: Subscription has expired
  • u105: Subscription is cancelled
  • u106: Invalid plan parameters
  • u107: Unauthorized access
  • u108: Invalid input parameters

Security Features

  • Input validation for all parameters
  • Authorization checks for user-specific operations
  • Balance verification before payments
  • Status validation for subscription operations
  • Owner-only restrictions for administrative functions

Requirements

  • Stacks blockchain environment
  • STX tokens for subscription payments
  • Clarity smart contract runtime

About

This is a Clarity smart contract for the Stacks blockchain that implements a comprehensive subscription management system with recurring payments and flexible plan structures.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published