OpportunitiesEntities
Docs
    Ring Platform

    Decentralized Self-building Future

    Sign In
    Entities
    Opportunities
    Store
    Docs
    Platform Concepts
    RING EconomySonoratek LLCGlobal ImpactAI Meets Web3
    Get Started
    Quick StartCalculatorRoadmap
    Privacy|Contact
    v1.104.21|Sonoratek LLC

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Privacy & GDPR

    Use Founder / Developer tabs in the docs sidebar to filter this page. Members manage their own settings at /privacy; this article documents the services behind those surfaces.

    Ring gives every clone two concrete privacy surfaces out of the box: granular consent management (stored on the user record) and a scheduled account-deletion lifecycle with a 30-day window and cancellation. Both are implemented in features/auth/services/ — no third-party consent SDK required.

    PreviousRing equivalent
    All-or-nothing tracking consentFour data-sharing toggles + four contact preferences
    Immediate, irreversible delete30-day scheduled deletion with canCancel and status lifecycle
    Consent scattered across vendorsConsent persisted on the users record (data_sharing_consent)

    Consent model (verified)

    PrivacyConsent in features/auth/types.ts:

    GroupFields
    dataSharingConsentanalytics · personalization · notifications · research
    anonymizedResearchConsentsingle boolean
    contactPreferencesmarketing · opportunities · system · evolution

    PrivacyConsentService (getUserConsent / updateUserConsent) reads and writes these against the user's own record — a member changing consent never leaves the clone.

    Why this matters for your clone

    • GDPR-facing clones get a head start. Consent toggles and erasure requests ship in the codebase; you wire your local legal review on top.
    • Deletion is humane, not instant. Members request deletion with their password and a reason; the record waits 30 days and can be cancelled — giving people a real reversal window.
    • No vendor lock for privacy. Consent lives in your database, not a third-party dashboard.

    What to review before go-live

    1. Confirm your privacy policy text matches the four consent groups you enable.
    2. Decide your deletion window (default 30 days, scheduledDeletionDate = request + 30).
    3. Run one end-to-end deletion test in staging: request → cancel → request again → confirm.

    Service surfaces (verified)

    ModuleRole
    features/auth/services/privacy-consent-service.tsGDPR-compliant consent read/update on the users record
    features/auth/services/account-deletion.tsFull deletion lifecycle over the account_deletions collection

    Deletion lifecycle

    1. 1

      Request

      requestAccountDeletion({ userId, password, reason, userEmail, userName }) creates an account_deletions record with status: 'pending', scheduledDeletionDate = now + 30 days, and canCancel: true. A duplicate pending request returns DELETION_ALREADY_PENDING.

    2. 2

      Cancel or confirm

      • cancelAccountDeletion — member reverses a pending request inside the window.
      • confirmAccountDeletion — member confirms; processing starts.
      • getAccountDeletionStatus — read current state for the UI.
    3. 3

      Process

      processExpiredDeletions() sweeps expired scheduled deletions through . Statuses: (failures carry ).

    Related documentation

    Related documentation

    Authentication

    Same-workflow: consent and deletion both operate on the Auth.js user record.

    Security

    See-also: defense-in-depth layers that protect the privacy surfaces.

    Admin console

    Next-step: where operators review user records and deletion states.

    1. Docs
    2. /Features
    3. /Privacy & GDPR

    Updated Aug 23, 20263 min listen

    Privacy & GDPR

    Use Founder / Developer tabs in the docs sidebar to filter this page. Members manage their own settings at /privacy; this article documents the services behind those surfaces.

    Ring gives every clone two concrete privacy surfaces out of the box: granular consent management (stored on the user record) and a scheduled account-deletion lifecycle with a 30-day window and cancellation. Both are implemented in features/auth/services/ — no third-party consent SDK required.

    PreviousRing equivalent
    All-or-nothing tracking consentFour data-sharing toggles + four contact preferences
    Immediate, irreversible delete30-day scheduled deletion with canCancel and status lifecycle
    Consent scattered across vendorsConsent persisted on the users record (data_sharing_consent)

    Consent model (verified)

    PrivacyConsent in features/auth/types.ts:

    GroupFields
    dataSharingConsentanalytics · personalization · notifications · research
    anonymizedResearchConsentsingle boolean
    contactPreferencesmarketing · opportunities · system · evolution

    PrivacyConsentService (getUserConsent / updateUserConsent) reads and writes these against the user's own record — a member changing consent never leaves the clone.

    Why this matters for your clone

    • GDPR-facing clones get a head start. Consent toggles and erasure requests ship in the codebase; you wire your local legal review on top.
    • Deletion is humane, not instant. Members request deletion with their password and a reason; the record waits 30 days and can be cancelled — giving people a real reversal window.
    • No vendor lock for privacy. Consent lives in your database, not a third-party dashboard.

    What to review before go-live

    1. Confirm your privacy policy text matches the four consent groups you enable.
    2. Decide your deletion window (default 30 days, scheduledDeletionDate = request + 30).
    3. Run one end-to-end deletion test in staging: request → cancel → request again → confirm.

    Service surfaces (verified)

    ModuleRole
    features/auth/services/privacy-consent-service.tsGDPR-compliant consent read/update on the users record
    features/auth/services/account-deletion.tsFull deletion lifecycle over the account_deletions collection

    Deletion lifecycle

    1. 1

      Request

      requestAccountDeletion({ userId, password, reason, userEmail, userName }) creates an account_deletions record with status: 'pending', scheduledDeletionDate = now + 30 days, and canCancel: true. A duplicate pending request returns DELETION_ALREADY_PENDING.

    2. 2

      Cancel or confirm

      • cancelAccountDeletion — member reverses a pending request inside the window.
      • confirmAccountDeletion — member confirms; processing starts.
      • getAccountDeletionStatus — read current state for the UI.
    3. 3

      Process

      processExpiredDeletions() sweeps expired scheduled deletions through . Statuses: (failures carry ).

    Related documentation

    Related documentation

    Authentication

    Same-workflow: consent and deletion both operate on the Auth.js user record.

    Security

    See-also: defense-in-depth layers that protect the privacy surfaces.

    Admin console

    Next-step: where operators review user records and deletion states.

    1. Docs
    2. /Features
    3. /Privacy & GDPR

    Updated Aug 23, 20263 min listen

    Privacy & GDPR

    Use Founder / Developer tabs in the docs sidebar to filter this page. Members manage their own settings at /privacy; this article documents the services behind those surfaces.

    Ring gives every clone two concrete privacy surfaces out of the box: granular consent management (stored on the user record) and a scheduled account-deletion lifecycle with a 30-day window and cancellation. Both are implemented in features/auth/services/ — no third-party consent SDK required.

    PreviousRing equivalent
    All-or-nothing tracking consentFour data-sharing toggles + four contact preferences
    Immediate, irreversible delete30-day scheduled deletion with canCancel and status lifecycle
    Consent scattered across vendorsConsent persisted on the users record (data_sharing_consent)

    Consent model (verified)

    PrivacyConsent in features/auth/types.ts:

    GroupFields
    dataSharingConsentanalytics · personalization · notifications · research
    anonymizedResearchConsentsingle boolean
    contactPreferencesmarketing · opportunities · system · evolution

    PrivacyConsentService (getUserConsent / updateUserConsent) reads and writes these against the user's own record — a member changing consent never leaves the clone.

    Why this matters for your clone

    • GDPR-facing clones get a head start. Consent toggles and erasure requests ship in the codebase; you wire your local legal review on top.
    • Deletion is humane, not instant. Members request deletion with their password and a reason; the record waits 30 days and can be cancelled — giving people a real reversal window.
    • No vendor lock for privacy. Consent lives in your database, not a third-party dashboard.

    What to review before go-live

    1. Confirm your privacy policy text matches the four consent groups you enable.
    2. Decide your deletion window (default 30 days, scheduledDeletionDate = request + 30).
    3. Run one end-to-end deletion test in staging: request → cancel → request again → confirm.

    Service surfaces (verified)

    ModuleRole
    features/auth/services/privacy-consent-service.tsGDPR-compliant consent read/update on the users record
    features/auth/services/account-deletion.tsFull deletion lifecycle over the account_deletions collection

    Deletion lifecycle

    1. 1

      Request

      requestAccountDeletion({ userId, password, reason, userEmail, userName }) creates an account_deletions record with status: 'pending', scheduledDeletionDate = now + 30 days, and canCancel: true. A duplicate pending request returns DELETION_ALREADY_PENDING.

    2. 2

      Cancel or confirm

      • cancelAccountDeletion — member reverses a pending request inside the window.
      • confirmAccountDeletion — member confirms; processing starts.
      • getAccountDeletionStatus — read current state for the UI.
    3. 3

      Process

      processExpiredDeletions() sweeps expired scheduled deletions through . Statuses: (failures carry ).

    Related documentation

    Related documentation

    Authentication

    Same-workflow: consent and deletion both operate on the Auth.js user record.

    Security

    See-also: defense-in-depth layers that protect the privacy surfaces.

    Admin console

    Next-step: where operators review user records and deletion states.

    1. Docs
    2. /Features
    3. /Privacy & GDPR

    Updated Aug 23, 20263 min listen

    pending → processing → completed
    pending | cancelled | processing | completed | failed
    failureReason

    Frequently asked questions

    Impact

    Do consent changes affect existing notifications?

    Consent lives on the user record; notification delivery honors the stored dataSharingConsent.notifications preference at read time.

    Is there a data export surface?

    No dedicated export endpoint ships today — deletion and consent are the implemented GDPR surfaces. Flag this to the Ringdom team if export becomes a requirement for your jurisdiction.

    Ops

    Can I change the 30-day window?

    The window is set in requestAccountDeletion (+30 days). Clone owners who need a different window should adjust it in the service and record the change in their compliance docs.

    pending → processing → completed
    pending | cancelled | processing | completed | failed
    failureReason

    Frequently asked questions

    Impact

    Do consent changes affect existing notifications?

    Consent lives on the user record; notification delivery honors the stored dataSharingConsent.notifications preference at read time.

    Is there a data export surface?

    No dedicated export endpoint ships today — deletion and consent are the implemented GDPR surfaces. Flag this to the Ringdom team if export becomes a requirement for your jurisdiction.

    Ops

    Can I change the 30-day window?

    The window is set in requestAccountDeletion (+30 days). Clone owners who need a different window should adjust it in the service and record the change in their compliance docs.

    pending → processing → completed
    pending | cancelled | processing | completed | failed
    failureReason

    Frequently asked questions

    Impact

    Do consent changes affect existing notifications?

    Consent lives on the user record; notification delivery honors the stored dataSharingConsent.notifications preference at read time.

    Is there a data export surface?

    No dedicated export endpoint ships today — deletion and consent are the implemented GDPR surfaces. Flag this to the Ringdom team if export becomes a requirement for your jurisdiction.

    Ops

    Can I change the 30-day window?

    The window is set in requestAccountDeletion (+30 days). Clone owners who need a different window should adjust it in the service and record the change in their compliance docs.