МожливостіСутності
Документація
    Ring Platform

    Децентралізоване самобудівне майбутнє

    Увійти
    Сутності
    Можливості
    Магазин
    Документація
    Концепції
    RING ЕкономікаSonoratek LLCГлобальний впливAI зустрічає Web3
    Розпочати
    Швидкий стартКалькуляторДорожня карта
    Конфіденційність|Контакти
    v1.104.17|Sonoratek LLC

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    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
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    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
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    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)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    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.

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

    Оновлено 12 лип. 2026 р.4 хв прослуховування

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

    Оновлено 12 лип. 2026 р.4 хв прослуховування

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

    Оновлено 12 лип. 2026 р.4 хв прослуховування