π@hsuite/subscriptions - Enterprise Subscription Management System
π³ Comprehensive NestJS module for Web3-based subscription systems with multi-blockchain support
Enterprise-grade subscription management platform providing NFT-based subscription issuance, token gating, activity logging, payment processing, and comprehensive analytics with seamless integration across multiple blockchain networks.
π Table of Contents
β¨ Quick Start
Installation
npm install @hsuite/subscriptionsBasic Setup
Basic Usage
ποΈ Architecture
Core Subscription Framework
π³ NFT-Based Subscription System
Multi-Blockchain Support - Hedera Hashgraph and XRP Ledger integration
NFT Issuance - Subscription NFTs with configurable plans and billing cycles
Token Gating - Access control based on NFT ownership and subscription status
Smart Contract Integration - Direct blockchain interaction for subscription operations
π Access Control & Token Gating
Real-time Validation - Live subscription status and access rights verification
Grace Period Support - Configurable grace periods for expired subscriptions
Role-based Access - Granular permission management with subscription tiers
Cross-platform Integration - Unified access control across applications
π Analytics & Monitoring
Activity Logging - Comprehensive blockchain activity tracking
Payment Analytics - Revenue tracking and payment success rates
Subscription Metrics - Usage analytics and subscription performance data
Real-time Dashboards - WebSocket-based live monitoring and notifications
β‘ Background Processing
Redis Job Queue - Scalable background task processing with Bull
Retry Mechanisms - Configurable retry policies for failed operations
Event-driven Architecture - Real-time event processing and notifications
Asynchronous Operations - Non-blocking subscription and payment processing
Service Architecture
Module Structure
π§ API Reference
SubscriptionsModule
Static Methods
forRootAsync(options: SubscriptionsAsyncOptions): DynamicModule
Purpose: Configure module with async options and dependencies
Parameters: Configuration options with Redis, JWT, and subscription settings
Features: Multi-blockchain support, background processing, token gating
Returns: Configured dynamic module with all services and providers
SubscriptionIssuerService
Core Methods
issueSubscriptionNFT(request: IssueSubscriptionRequest): Promise<SubscriptionResult>
Purpose: Issue new subscription NFT on specified blockchain
Parameters:
userId: string- Target user identifierplanType: string- Subscription plan type (basic, premium, enterprise)duration: string- Subscription duration (1month, 3months, 1year)blockchain: string- Target blockchain (hedera, ripple)
Returns: Transaction details and NFT information
Process: Validates user, creates NFT metadata, submits blockchain transaction
renewSubscription(subscriptionId: string, duration: string): Promise<RenewalResult>
Purpose: Renew existing subscription with extended duration
Parameters: Subscription ID and new duration period
Returns: Updated subscription details and transaction information
Process: Validates subscription, updates metadata, processes payment
cancelSubscription(subscriptionId: string, reason?: string): Promise<CancellationResult>
Purpose: Cancel active subscription and update status
Parameters: Subscription ID and optional cancellation reason
Returns: Cancellation confirmation and effective date
Process: Updates subscription status, handles refunds if applicable
upgradeSubscriptionPlan(subscriptionId: string, newPlan: string): Promise<UpgradeResult>
Purpose: Upgrade subscription to higher tier plan
Parameters: Subscription ID and target plan type
Returns: Plan change details and prorated payment information
Process: Calculates proration, processes payment difference, updates plan
TokenGateService
Access Control Methods
validateAccess(userId: string, requiredTier: string): Promise<AccessValidationResult>
Purpose: Validate user access rights based on subscription status
Parameters: User ID and required subscription tier
Returns: Access validation result with subscription details
Process: Checks NFT ownership, validates expiration, applies grace period
checkSubscriptionStatus(userId: string): Promise<SubscriptionStatus>
Purpose: Get current subscription status for user
Parameters: User identifier
Returns: Detailed subscription status with expiration and tier information
Process: Queries blockchain for NFT ownership and metadata
getAccessPermissions(userId: string): Promise<Permission[]>
Purpose: Retrieve all access permissions for user
Parameters: User identifier
Returns: Array of permissions based on subscription tier
Process: Maps subscription tier to permission matrix
SubscriptionLoggerService
Activity Tracking
logSubscriptionActivity(activity: SubscriptionActivity): Promise<void>
Purpose: Log subscription-related activities for analytics
Parameters: Activity object with type, user, and metadata
Process: Stores activity data for analytics and monitoring
getSubscriptionAnalytics(period: string): Promise<AnalyticsData>
Purpose: Retrieve subscription analytics for specified period
Parameters: Time period (daily, weekly, monthly, yearly)
Returns: Comprehensive analytics data with metrics and trends
Ledger Plugin System
Multi-Blockchain Support
Hedera Hashgraph Plugin
NFT Operations - HTS-based subscription NFT management
Transaction Processing - Hedera transaction submission and validation
Metadata Storage - IPFS integration for NFT metadata
Ripple/XRP Plugin
NFT Operations - XLS-20 NFT standard implementation
Transaction Processing - XRP Ledger transaction handling
Metadata Management - Ripple-compatible metadata storage
Error Types
SubscriptionNotFoundError
404
Subscription with ID not found
Verify subscription exists and ID is correct
InsufficientFundsError
402
Insufficient funds for subscription
Add funds to account or update payment method
BlockchainTransactionError
500
Blockchain transaction failed
Retry transaction or check network status
AccessDeniedError
403
User lacks required subscription tier
Upgrade subscription or check access requirements
ExpiredSubscriptionError
410
Subscription has expired
Renew subscription or check grace period
π Guides
Subscription Setup Guide
Complete guide to setting up and configuring subscription systems. Comprehensive setup instructions covering subscription lifecycle management, NFT-based subscriptions, payment processing integration, multi-blockchain support, and enterprise-grade subscription platform configuration.
Multi-Blockchain Integration Guide
Integrating with multiple blockchain networks for subscription management. Advanced integration guide covering cross-chain subscription systems, blockchain-specific configurations, network switching, fee optimization, and unified subscription management across multiple protocols.
Token Gating Implementation Guide
Implementing access control and subscription-based permissions. Detailed implementation guide for token-gated access systems, permission management, subscription verification, role-based access control, and enterprise security integration.
Analytics & Monitoring Guide
Setting up subscription analytics and performance monitoring. Comprehensive guide for subscription metrics tracking, user analytics, payment monitoring, churn analysis, and enterprise reporting with real-time dashboards and automated alerts.
π― Examples
Enterprise Subscription Management Platform
Multi-Blockchain Subscription Platform
Advanced Token Gating System
π Integration
Required Dependencies
Environment Configuration
Module Integration
Subscription Lifecycle Example
Database Schema
π³ Subscription Management: Comprehensive NFT-based subscription system with multi-blockchain support.
π Access Control: Advanced token gating with granular permissions and usage tracking.
π Analytics Platform: Real-time monitoring and comprehensive subscription analytics.
Built with β€οΈ by the HSuite Team Copyright Β© 2025 HSuite. All rights reserved.
Last updated