Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)
    1. Документация
    2. /Функции
    3. /NFT Exhibition Marketplace

    Обновлено 12 июл. 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документация
    2. /Функции
    3. /NFT Exhibition Marketplace

    Обновлено 12 июл. 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документация
    2. /Функции
    3. /NFT Exhibition Marketplace

    Обновлено 12 июл. 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    NFT Exhibition Marketplace

    The shipped marketplace is Solana-first with two lanes: verified Ringdom KEYS gate NFTs, and an open member creator lane for on-platform Metaplex Core collections. Both settle in RING (ledger-dev PoC when gateMarketProgramId is empty).

    The NFT Exhibition Marketplace lets members list, browse, buy, and cancel eligible assets. For KEYS gates, a purchase transfers ownership, but ownership alone does not unlock product access — buyers must stake through GateEscrow before GateResolver.hasFeature grants the related feature. For member mints, purchase is ownership + RING only (no stake CTA, no feature unlock).

    SurfaceVerified truth
    Marketplace/nft/market, /nft/market/[listingId], /nft/market/sell
    Member create/nft/create, /nft/create/[collectionId]
    Collections/nft/collections, /nft/collections/[slug]
    SearchSearch redirects land on /nft/market?q=...
    FeeduseCursorFeed with moduleId="nft-market"; optional lane=keys|member
    PaymentRING only
    KEYS symbolKEYS from gate collection metadata
    Member collectionsnft_member_collections + listing lane: 'member'
    Listing storagenft_listings
    Sale ledgernft_market_sales
    Collection cachenft_market_collections
    Migrations031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql

    Why this matters for your clone

    The marketplace turns tradeable vendor access keys into a visible economy and lets privileged members create their own on-platform collections without opening an external NFT import path.

    KEYS resale liquidity

    Vendor-grade gates can move from one member to another without making membership transferable.

    Member creator lane

    Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.

    Keep KEYS access gated

    A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.

    Implementation Map

    PathRole
    app/[locale]/nft/market/page.tsxServer page, parses q, collection, slug, lane, sort
    app/[locale]/nft/create/page.tsxMember create/mint/list wizard (requires hasMemberPrivileges)
    app/[locale]/nft/market/sell/page.tsxKEYS seller wizard (excludes member_mint)
    app/_actions/nft-member.tscreateMemberCollectionAction, mintMemberAssetAction, listMemberAssetAction
    features/nft-market/member/*Collection/mint services + assertMemberAssetCanBeListed
    features/nft-market/listing-policy.tsKEYS tradeable SKU / stake / collection checks (lane K only)

    Future On-Chain Work

    Related Documentation

    Solana NFT Gates

    Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.

    Wallet

    Native RING balance and custodial Solana wallet flows used for marketplace settlement.

    Subscriptions

    How nft_gate fits beside other access providers.

    Security

    Production guardrails before audited on-chain marketplace deployment.

    NFT Exhibition Marketplace

    The shipped marketplace is Solana-first with two lanes: verified Ringdom KEYS gate NFTs, and an open member creator lane for on-platform Metaplex Core collections. Both settle in RING (ledger-dev PoC when gateMarketProgramId is empty).

    The NFT Exhibition Marketplace lets members list, browse, buy, and cancel eligible assets. For KEYS gates, a purchase transfers ownership, but ownership alone does not unlock product access — buyers must stake through GateEscrow before GateResolver.hasFeature grants the related feature. For member mints, purchase is ownership + RING only (no stake CTA, no feature unlock).

    SurfaceVerified truth
    Marketplace/nft/market, /nft/market/[listingId], /nft/market/sell
    Member create/nft/create, /nft/create/[collectionId]
    Collections/nft/collections, /nft/collections/[slug]
    SearchSearch redirects land on /nft/market?q=...
    FeeduseCursorFeed with moduleId="nft-market"; optional lane=keys|member
    PaymentRING only
    KEYS symbolKEYS from gate collection metadata
    Member collectionsnft_member_collections + listing lane: 'member'
    Listing storagenft_listings
    Sale ledgernft_market_sales
    Collection cachenft_market_collections
    Migrations031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql

    Why this matters for your clone

    The marketplace turns tradeable vendor access keys into a visible economy and lets privileged members create their own on-platform collections without opening an external NFT import path.

    KEYS resale liquidity

    Vendor-grade gates can move from one member to another without making membership transferable.

    Member creator lane

    Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.

    Keep KEYS access gated

    A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.

    Implementation Map

    PathRole
    app/[locale]/nft/market/page.tsxServer page, parses q, collection, slug, lane, sort
    app/[locale]/nft/create/page.tsxMember create/mint/list wizard (requires hasMemberPrivileges)
    app/[locale]/nft/market/sell/page.tsxKEYS seller wizard (excludes member_mint)
    app/_actions/nft-member.tscreateMemberCollectionAction, mintMemberAssetAction, listMemberAssetAction
    features/nft-market/member/*Collection/mint services + assertMemberAssetCanBeListed
    features/nft-market/listing-policy.tsKEYS tradeable SKU / stake / collection checks (lane K only)

    Future On-Chain Work

    Related Documentation

    Solana NFT Gates

    Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.

    Wallet

    Native RING balance and custodial Solana wallet flows used for marketplace settlement.

    Subscriptions

    How nft_gate fits beside other access providers.

    Security

    Production guardrails before audited on-chain marketplace deployment.

    NFT Exhibition Marketplace

    The shipped marketplace is Solana-first with two lanes: verified Ringdom KEYS gate NFTs, and an open member creator lane for on-platform Metaplex Core collections. Both settle in RING (ledger-dev PoC when gateMarketProgramId is empty).

    The NFT Exhibition Marketplace lets members list, browse, buy, and cancel eligible assets. For KEYS gates, a purchase transfers ownership, but ownership alone does not unlock product access — buyers must stake through GateEscrow before GateResolver.hasFeature grants the related feature. For member mints, purchase is ownership + RING only (no stake CTA, no feature unlock).

    SurfaceVerified truth
    Marketplace/nft/market, /nft/market/[listingId], /nft/market/sell
    Member create/nft/create, /nft/create/[collectionId]
    Collections/nft/collections, /nft/collections/[slug]
    SearchSearch redirects land on /nft/market?q=...
    FeeduseCursorFeed with moduleId="nft-market"; optional lane=keys|member
    PaymentRING only
    KEYS symbolKEYS from gate collection metadata
    Member collectionsnft_member_collections + listing lane: 'member'
    Listing storagenft_listings
    Sale ledgernft_market_sales
    Collection cachenft_market_collections
    Migrations031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql

    Why this matters for your clone

    The marketplace turns tradeable vendor access keys into a visible economy and lets privileged members create their own on-platform collections without opening an external NFT import path.

    KEYS resale liquidity

    Vendor-grade gates can move from one member to another without making membership transferable.

    Member creator lane

    Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.

    Keep KEYS access gated

    A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.

    Implementation Map

    PathRole
    app/[locale]/nft/market/page.tsxServer page, parses q, collection, slug, lane, sort
    app/[locale]/nft/create/page.tsxMember create/mint/list wizard (requires hasMemberPrivileges)
    app/[locale]/nft/market/sell/page.tsxKEYS seller wizard (excludes member_mint)
    app/_actions/nft-member.tscreateMemberCollectionAction, mintMemberAssetAction, listMemberAssetAction
    features/nft-market/member/*Collection/mint services + assertMemberAssetCanBeListed
    features/nft-market/listing-policy.tsKEYS tradeable SKU / stake / collection checks (lane K only)

    Future On-Chain Work

    Related Documentation

    Solana NFT Gates

    Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.

    Wallet

    Native RING balance and custodial Solana wallet flows used for marketplace settlement.

    Subscriptions

    How nft_gate fits beside other access providers.

    Security

    Production guardrails before audited on-chain marketplace deployment.

    Use RING settlement

    Buyers pay in the clone native token through the custodial Solana wallet path.

    Operator Checklist

    • Enable NFT gates and marketplace config (nft.marketplaceEnabled).
    • Enable member collections PoC with nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).
    • Mint or import eligible vendor gates from the KEYS collection for lane K.
    • Confirm KEYS sellers understand that staked gates must be unstaked before listing.
    • Confirm KEYS buyers understand that a bought gate must be staked before benefits activate.
    • Confirm member mints never promise GateEscrow feature unlock.
    • Keep mainnet GateMarket disabled until the Anchor programs pass audit and Squads authority setup.

    Membership NFTs are soulbound and never listable. KEYS lane remains only for vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, and vendor-quarterly-store-license. Member lane assets use source: member_mint and are never GateEscrow feature keys.

    User Journey

    Dual-lane marketplace journey
    features/nft-market/services/listing-service.ts
    Dual-lane draft/activate; member vs KEYS policy branch
    features/nft-market/services/solana-market-client.tsLedger-dev list/cancel/buy; Anchor branch blocked until program IDs
    features/wallet/conductor/wallet-conductor.tspurchaseNftListing for both lanes

    Listing and Purchase Sequence

    NFT market list and buy

    Listing Policy

    1. 1

      isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().

    2. 2

      Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.

    3. 3

      Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.

    4. 4

      An active listing blocks duplicate listings for the same asset. For KEYS: a staked gate blocks listing; an active listing means feature access is not active through staking.

    Configuration Keys

    KeyEffect
    nft.marketplaceEnabledMaster secondary-market switch
    nft.memberCollectionsEnabledEnables member create/mint/list PoC
    nft.maxCollectionsPerMemberCap (default 3)
    nft.maxMintsPerCollectionCap (default 50)
    nft.gateMarketProgramIdEmpty = ledger-dev; non-empty Anchor path throws in this build
    nft.marketplaceFeeRecipientOptional RING fee recipient
    nft.marketplaceFeeBpsFee split basis points, clamped 0–10000

    Persistence

    • 031_nft_exhibition_market_schema.sql — listings, sales, collection cache
    • 032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfill

    SolanaMarketClient.buyGate settles through ledger-dev RING transfers when gateMarketProgramId is empty. Member lane reuses the same purchase path. The Anchor GateMarket CPI path is intentionally not implemented in this build.

    The future program scaffold lives under solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md blocks production or mainnet deployment until Smart Contract Security Auditor review, Squads authorities, pinned deployment records, and invariant tests are complete.

    Use RING settlement

    Buyers pay in the clone native token through the custodial Solana wallet path.

    Operator Checklist

    • Enable NFT gates and marketplace config (nft.marketplaceEnabled).
    • Enable member collections PoC with nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).
    • Mint or import eligible vendor gates from the KEYS collection for lane K.
    • Confirm KEYS sellers understand that staked gates must be unstaked before listing.
    • Confirm KEYS buyers understand that a bought gate must be staked before benefits activate.
    • Confirm member mints never promise GateEscrow feature unlock.
    • Keep mainnet GateMarket disabled until the Anchor programs pass audit and Squads authority setup.

    Membership NFTs are soulbound and never listable. KEYS lane remains only for vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, and vendor-quarterly-store-license. Member lane assets use source: member_mint and are never GateEscrow feature keys.

    User Journey

    Dual-lane marketplace journey
    features/nft-market/services/listing-service.ts
    Dual-lane draft/activate; member vs KEYS policy branch
    features/nft-market/services/solana-market-client.tsLedger-dev list/cancel/buy; Anchor branch blocked until program IDs
    features/wallet/conductor/wallet-conductor.tspurchaseNftListing for both lanes

    Listing and Purchase Sequence

    NFT market list and buy

    Listing Policy

    1. 1

      isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().

    2. 2

      Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.

    3. 3

      Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.

    4. 4

      An active listing blocks duplicate listings for the same asset. For KEYS: a staked gate blocks listing; an active listing means feature access is not active through staking.

    Configuration Keys

    KeyEffect
    nft.marketplaceEnabledMaster secondary-market switch
    nft.memberCollectionsEnabledEnables member create/mint/list PoC
    nft.maxCollectionsPerMemberCap (default 3)
    nft.maxMintsPerCollectionCap (default 50)
    nft.gateMarketProgramIdEmpty = ledger-dev; non-empty Anchor path throws in this build
    nft.marketplaceFeeRecipientOptional RING fee recipient
    nft.marketplaceFeeBpsFee split basis points, clamped 0–10000

    Persistence

    • 031_nft_exhibition_market_schema.sql — listings, sales, collection cache
    • 032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfill

    SolanaMarketClient.buyGate settles through ledger-dev RING transfers when gateMarketProgramId is empty. Member lane reuses the same purchase path. The Anchor GateMarket CPI path is intentionally not implemented in this build.

    The future program scaffold lives under solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md blocks production or mainnet deployment until Smart Contract Security Auditor review, Squads authorities, pinned deployment records, and invariant tests are complete.

    Use RING settlement

    Buyers pay in the clone native token through the custodial Solana wallet path.

    Operator Checklist

    • Enable NFT gates and marketplace config (nft.marketplaceEnabled).
    • Enable member collections PoC with nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).
    • Mint or import eligible vendor gates from the KEYS collection for lane K.
    • Confirm KEYS sellers understand that staked gates must be unstaked before listing.
    • Confirm KEYS buyers understand that a bought gate must be staked before benefits activate.
    • Confirm member mints never promise GateEscrow feature unlock.
    • Keep mainnet GateMarket disabled until the Anchor programs pass audit and Squads authority setup.

    Membership NFTs are soulbound and never listable. KEYS lane remains only for vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, and vendor-quarterly-store-license. Member lane assets use source: member_mint and are never GateEscrow feature keys.

    User Journey

    Dual-lane marketplace journey
    features/nft-market/services/listing-service.ts
    Dual-lane draft/activate; member vs KEYS policy branch
    features/nft-market/services/solana-market-client.tsLedger-dev list/cancel/buy; Anchor branch blocked until program IDs
    features/wallet/conductor/wallet-conductor.tspurchaseNftListing for both lanes

    Listing and Purchase Sequence

    NFT market list and buy

    Listing Policy

    1. 1

      isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().

    2. 2

      Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.

    3. 3

      Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.

    4. 4

      An active listing blocks duplicate listings for the same asset. For KEYS: a staked gate blocks listing; an active listing means feature access is not active through staking.

    Configuration Keys

    KeyEffect
    nft.marketplaceEnabledMaster secondary-market switch
    nft.memberCollectionsEnabledEnables member create/mint/list PoC
    nft.maxCollectionsPerMemberCap (default 3)
    nft.maxMintsPerCollectionCap (default 50)
    nft.gateMarketProgramIdEmpty = ledger-dev; non-empty Anchor path throws in this build
    nft.marketplaceFeeRecipientOptional RING fee recipient
    nft.marketplaceFeeBpsFee split basis points, clamped 0–10000

    Persistence

    • 031_nft_exhibition_market_schema.sql — listings, sales, collection cache
    • 032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfill

    SolanaMarketClient.buyGate settles through ledger-dev RING transfers when gateMarketProgramId is empty. Member lane reuses the same purchase path. The Anchor GateMarket CPI path is intentionally not implemented in this build.

    The future program scaffold lives under solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md blocks production or mainnet deployment until Smart Contract Security Auditor review, Squads authorities, pinned deployment records, and invariant tests are complete.