NOTE: this is still a draft, so it's subject to changes. This alert will be removed as soon as final version will be available

πŸ“‹@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/subscriptions

Basic 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 identifier

    • planType: 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

Error Type
Status Code
Description
Resolution

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