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

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

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

    Documentation

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

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Кредитні винагороди
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання 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)
    Розгортання
    Розгортання на власному сервері
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Архітектура News Kingdom
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server
    OSS і enterprise

    Швидкий вхід (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)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання 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)
    Розгортання
    Розгортання на власному сервері
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Архітектура News Kingdom
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server
    OSS і enterprise

    Швидкий вхід (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)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання 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)
    Розгортання
    Розгортання на власному сервері
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Архітектура News Kingdom
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server
    OSS і enterprise

    Швидкий вхід (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

    Solana NFT Gates

    Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Frontmatter audience керує блоками всередині сторінки; видимість у sidebar курується в lib/docs/audience-curated-docs.ts.

    MVP-A постачає gate NFT Solana Metaplex Core для розблокування членства й vendor-функцій. Покупці сплачують первинний продаж нативним токеном клону (RING у цьому дереві), стейкають у GateEscrow (а не в NATIVE_NFT_APR), а GateResolver.hasFeature відкриває продуктові поверхні. Торгові vendor gates тепер можна виставляти на NFT Exhibition Marketplace, але придбаний gate усе одно треба застейкати, перш ніж функції активуються.

    ПитанняФактична реалізація
    SSOT mintMetaplex Core (createCollection / create / fetchAsset)
    SSOT stakeGateEscrow DB + необов’язковий program id — не APR Ring staking
    Первинний продажRING transferChecked, потім mint (features/nft-gates/purchase.ts)
    Поверхня користувача/nft/gates
    Вторинна поверхня/nft/market, /nft/market/[listingId], /nft/market/sell
    Admin/admin/nft/templates, /admin/nft/mint
    Провайдер підпискиnft_gate → nftGateSubscriptionProvider
    Схемаdata/migrations/029_nft_gates_schema.sql
    Схема маркетплейсуdata/migrations/031_nft_exhibition_market_schema.sql

    Чому це важливо для вашого клону

    Продавайте доступ як on-chain сертифікат, а не лише через картки чи кредитні rails. Gate членства є soulbound; vendor deed / DAGI / license gates торгові в NFT Exhibition Marketplace. Зміна ціни створює новий активний template asset — продані assets ніколи не змінюються.

    Шлях оператора

    1. Один раз створіть колекцію Metaplex Core (admin mint console).
    2. Задайте nft.collectionMint у ring-config.json (приклад devnet уже налаштований у цьому дереві).
    3. Відкрийте Mint / activate + art → виберіть один із чотирьох preview ImageConductor → виконайте mint у колекцію.
    4. Учасники купують на /nft/gates; membership slugs автоматично стейкаються й відкривають функції учасника.
    5. Торгові vendor gates можна виставити на /nft/market/sell, лише якщо вони належать власнику, перевірені, не soulbound і не застейкані.
    6. Перед mainnet: передайте update authority колекції та authorities маркетплейсу до Squads (див. solana/SECURITY.md).

    Symbol в Explorer: KEYS (не RING)

    Symbol у Solana Explorer надходить із JSON off-chain metadata колекції за uri колекції — Metaplex Core не має on-chain symbol. Ring Platform використовує KEYS для сімейства gate NFT (Ringdom Keys Collection). RING залишається лише SPL валютою продажу.

    Live family JSON (on-chain uri devnet): gist collection.json з "symbol":"KEYS". SSOT застосунку: public/nft/gates/collection.json. Після деплою стабільний шлях /nft/gates/collection.json переписується на /api/nft/gates/collection.

    Типові сценарії

    Архітектура

    Покупка NFT gate → stake → feature

    Карта модулів

    ШляхРоль
    features/nft-gates/umi-client.tsSponsor umi з SOLANA_FEE_PAYER_PRIVATE_KEY
    features/nft-gates/metaplex-core-onchain.tscreateCollection, mint, fetchAsset, soulbound freeze
    features/nft-gates/metaplex-core.tsАдаптер on-chain проти ledger-dev
    features/nft-gates/purchase.tsRING pay → mint → ownership
    features/nft-gates/gate-escrow.tsStake / unstake + інвалідація entitlement

    Беклог (не поставлено)

    Пов’язана документація

    SubscriptionConductor

    Реєстр провайдерів, що містить nft_gate.

    Generative images

    Провайдери ImageConductor і persistence у ring-filebase.

    RingFileBase

    Upload API проти CDN read path.

    Staking

    APR pools — не плутайте з GateEscrow.

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

    Оновлено 6 вер. 2026 р.6 хв прослуховування

    Solana NFT Gates

    Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Frontmatter audience керує блоками всередині сторінки; видимість у sidebar курується в lib/docs/audience-curated-docs.ts.

    MVP-A постачає gate NFT Solana Metaplex Core для розблокування членства й vendor-функцій. Покупці сплачують первинний продаж нативним токеном клону (RING у цьому дереві), стейкають у GateEscrow (а не в NATIVE_NFT_APR), а GateResolver.hasFeature відкриває продуктові поверхні. Торгові vendor gates тепер можна виставляти на NFT Exhibition Marketplace, але придбаний gate усе одно треба застейкати, перш ніж функції активуються.

    ПитанняФактична реалізація
    SSOT mintMetaplex Core (createCollection / create / fetchAsset)
    SSOT stakeGateEscrow DB + необов’язковий program id — не APR Ring staking
    Первинний продажRING transferChecked, потім mint (features/nft-gates/purchase.ts)
    Поверхня користувача/nft/gates
    Вторинна поверхня/nft/market, /nft/market/[listingId], /nft/market/sell
    Admin/admin/nft/templates, /admin/nft/mint
    Провайдер підпискиnft_gate → nftGateSubscriptionProvider
    Схемаdata/migrations/029_nft_gates_schema.sql
    Схема маркетплейсуdata/migrations/031_nft_exhibition_market_schema.sql

    Чому це важливо для вашого клону

    Продавайте доступ як on-chain сертифікат, а не лише через картки чи кредитні rails. Gate членства є soulbound; vendor deed / DAGI / license gates торгові в NFT Exhibition Marketplace. Зміна ціни створює новий активний template asset — продані assets ніколи не змінюються.

    Шлях оператора

    1. Один раз створіть колекцію Metaplex Core (admin mint console).
    2. Задайте nft.collectionMint у ring-config.json (приклад devnet уже налаштований у цьому дереві).
    3. Відкрийте Mint / activate + art → виберіть один із чотирьох preview ImageConductor → виконайте mint у колекцію.
    4. Учасники купують на /nft/gates; membership slugs автоматично стейкаються й відкривають функції учасника.
    5. Торгові vendor gates можна виставити на /nft/market/sell, лише якщо вони належать власнику, перевірені, не soulbound і не застейкані.
    6. Перед mainnet: передайте update authority колекції та authorities маркетплейсу до Squads (див. solana/SECURITY.md).

    Symbol в Explorer: KEYS (не RING)

    Symbol у Solana Explorer надходить із JSON off-chain metadata колекції за uri колекції — Metaplex Core не має on-chain symbol. Ring Platform використовує KEYS для сімейства gate NFT (Ringdom Keys Collection). RING залишається лише SPL валютою продажу.

    Live family JSON (on-chain uri devnet): gist collection.json з "symbol":"KEYS". SSOT застосунку: public/nft/gates/collection.json. Після деплою стабільний шлях /nft/gates/collection.json переписується на /api/nft/gates/collection.

    Типові сценарії

    Архітектура

    Покупка NFT gate → stake → feature

    Карта модулів

    ШляхРоль
    features/nft-gates/umi-client.tsSponsor umi з SOLANA_FEE_PAYER_PRIVATE_KEY
    features/nft-gates/metaplex-core-onchain.tscreateCollection, mint, fetchAsset, soulbound freeze
    features/nft-gates/metaplex-core.tsАдаптер on-chain проти ledger-dev
    features/nft-gates/purchase.tsRING pay → mint → ownership
    features/nft-gates/gate-escrow.tsStake / unstake + інвалідація entitlement

    Беклог (не поставлено)

    Пов’язана документація

    SubscriptionConductor

    Реєстр провайдерів, що містить nft_gate.

    Generative images

    Провайдери ImageConductor і persistence у ring-filebase.

    RingFileBase

    Upload API проти CDN read path.

    Staking

    APR pools — не плутайте з GateEscrow.

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

    Оновлено 6 вер. 2026 р.6 хв прослуховування

    Solana NFT Gates

    Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Frontmatter audience керує блоками всередині сторінки; видимість у sidebar курується в lib/docs/audience-curated-docs.ts.

    MVP-A постачає gate NFT Solana Metaplex Core для розблокування членства й vendor-функцій. Покупці сплачують первинний продаж нативним токеном клону (RING у цьому дереві), стейкають у GateEscrow (а не в NATIVE_NFT_APR), а GateResolver.hasFeature відкриває продуктові поверхні. Торгові vendor gates тепер можна виставляти на NFT Exhibition Marketplace, але придбаний gate усе одно треба застейкати, перш ніж функції активуються.

    ПитанняФактична реалізація
    SSOT mintMetaplex Core (createCollection / create / fetchAsset)
    SSOT stakeGateEscrow DB + необов’язковий program id — не APR Ring staking
    Первинний продажRING transferChecked, потім mint (features/nft-gates/purchase.ts)
    Поверхня користувача/nft/gates
    Вторинна поверхня/nft/market, /nft/market/[listingId], /nft/market/sell
    Admin/admin/nft/templates, /admin/nft/mint
    Провайдер підпискиnft_gate → nftGateSubscriptionProvider
    Схемаdata/migrations/029_nft_gates_schema.sql
    Схема маркетплейсуdata/migrations/031_nft_exhibition_market_schema.sql

    Чому це важливо для вашого клону

    Продавайте доступ як on-chain сертифікат, а не лише через картки чи кредитні rails. Gate членства є soulbound; vendor deed / DAGI / license gates торгові в NFT Exhibition Marketplace. Зміна ціни створює новий активний template asset — продані assets ніколи не змінюються.

    Шлях оператора

    1. Один раз створіть колекцію Metaplex Core (admin mint console).
    2. Задайте nft.collectionMint у ring-config.json (приклад devnet уже налаштований у цьому дереві).
    3. Відкрийте Mint / activate + art → виберіть один із чотирьох preview ImageConductor → виконайте mint у колекцію.
    4. Учасники купують на /nft/gates; membership slugs автоматично стейкаються й відкривають функції учасника.
    5. Торгові vendor gates можна виставити на /nft/market/sell, лише якщо вони належать власнику, перевірені, не soulbound і не застейкані.
    6. Перед mainnet: передайте update authority колекції та authorities маркетплейсу до Squads (див. solana/SECURITY.md).

    Symbol в Explorer: KEYS (не RING)

    Symbol у Solana Explorer надходить із JSON off-chain metadata колекції за uri колекції — Metaplex Core не має on-chain symbol. Ring Platform використовує KEYS для сімейства gate NFT (Ringdom Keys Collection). RING залишається лише SPL валютою продажу.

    Live family JSON (on-chain uri devnet): gist collection.json з "symbol":"KEYS". SSOT застосунку: public/nft/gates/collection.json. Після деплою стабільний шлях /nft/gates/collection.json переписується на /api/nft/gates/collection.

    Типові сценарії

    Архітектура

    Покупка NFT gate → stake → feature

    Карта модулів

    ШляхРоль
    features/nft-gates/umi-client.tsSponsor umi з SOLANA_FEE_PAYER_PRIVATE_KEY
    features/nft-gates/metaplex-core-onchain.tscreateCollection, mint, fetchAsset, soulbound freeze
    features/nft-gates/metaplex-core.tsАдаптер on-chain проти ledger-dev
    features/nft-gates/purchase.tsRING pay → mint → ownership
    features/nft-gates/gate-escrow.tsStake / unstake + інвалідація entitlement

    Беклог (не поставлено)

    Пов’язана документація

    SubscriptionConductor

    Реєстр провайдерів, що містить nft_gate.

    Generative images

    Провайдери ImageConductor і persistence у ring-filebase.

    RingFileBase

    Upload API проти CDN read path.

    Staking

    APR pools — не плутайте з GateEscrow.

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

    Оновлено 6 вер. 2026 р.6 хв прослуховування

  1. Довічний membership NFT як постійна печатка учасника (потрібен stake).
  2. Vendor DAGI key застейканий до активації агента (hasFeature('vendor.dagi')).
  3. Store deed / DAGI / annual / quarterly vendor gates виставляються на перепродаж за RING, коли не застейкані.
  4. Придбаний vendor gate стейкається після покупки, перш ніж активується доступ до продукту.
  5. SubscriptionConductor

    Як nft_gate працює поруч із credit, WayForPay, Stripe і native token.

    Wallet

    Кастодіальні Solana-гаманці та перекази RING, які фінансують первинний продаж.

    RingFileBase

    Куди потрапляє згенероване ImageConductor NFT art.

    NFT Marketplace

    Запущений Exhibition Marketplace для допущених vendor KEYS gates; перевірений on-chain GateMarket залишається майбутньою роботою.

    Покупка на marketplace передає лише право власності. Вона не відкриває функції, доки покупець не застейкає gate. Активний listing означає hasFeature:false; активний stake означає canList:false.

    features/nft-gates/gate-resolver.tshasFeature (cache → stakes → RPC)
    features/nft-gates/admin-mint.tsСтворення collection + активація template
    features/nft-gates/art-prompt.tsPrompt vars + favicon data URI
    features/nft-market/listing-policy.tsTradeable SKU, soulbound, stake, перевірки duplicate listing
    features/nft-market/services/listing-service.tsЖиттєвий цикл NFT Exhibition listing
    features/nft-market/services/solana-market-client.tsАдаптер marketplace ledger-dev; Anchor branch заблокований
    features/admin/nft/gate-art-preview-modal.tsxfs-modal із preview 4-up
    app/_actions/nft-gates.tsServer actions
    app/_actions/nft-market.tsList, cancel, purchase marketplace actions
    lib/payments/subscription/providers/nft-gate-subscription.tsПровайдер nft_gate

    Конфігурація (ring-config.json → nft)

    Перевірені ключі: enabled, collectionMint, collectionUri, collectionSymbol (KEYS), sponsorFeePayer, marketplaceEnabled, marketplaceFeeRecipient, marketplaceFeeBps, gateEscrowProgramId, gateMarketProgramId, templates[].

    Off-chain family metadata: public/nft/gates/collection.json (symbol: KEYS). Admin Point collection URI → KEYS JSON запускає Metaplex Core updateCollection, доки sponsor все ще має update authority.

    Сім template-ів (slugs): one-month-membership, annual-membership, lifetime-membership, vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, vendor-quarterly-store-license.

    payment.gateways.nft_gate.enabled у цьому дереві має значення true. nft_gate залишається в payment.futureMethods (ще не в supportedMethods), тому membership PaymentModal може й надалі позначати його як coming-soon, хоча /nft/gates і модуль provider уже працюють.

    Торгові marketplace slugs навмисно вужчі: vendor-store-deed, vendor-dagi-key, vendor-annual-store-license і vendor-quarterly-store-license. Membership slugs залишаються soulbound і не можуть бути виставлені.

    Server actions

    ActionПризначення
    purchaseGateActionКупити gate NFT за RING
    stakeGateAction / unstakeGateActionGateEscrow
    hasGateFeatureActionПеревірка entitlement
    previewGateArtActionImageConductor n: 4 + посилання на favicon
    adminActivateGateTemplateActionMint/activate з необов’язковим imageUri
    adminCreateGateCollectionActionСтворити Core collection

    Потік preview art адміністратора

    1. 1

      Відкрийте /admin/nft/templates або /admin/nft/mint і натисніть Mint / activate + art.

    2. 2

      previewGateArtAction підставляє $projectName, $activeColor, $secondaryColor, $projectColor1, $projectColor2, $organization, потім викликає ImageConductor.generate з n: 4 і favicon referenceImages.

    3. 3

      Fullscreen modal показує сітку 2×2, згортане поле Generation prompt і Regenerate (зміни prompt лише на час сесії — у ring-config не записуються).

    4. 4

      Mint with selected art викликає adminActivateGateTemplateAction({ imageUri, regenerateArt: false }) → Metaplex Core mint → рядок edition nft_gates + db() active-template pointer (nft_active_{slug}). Runtime SSOT — listNftGateTemplatesResolved() (дефолти ring-config + overlay DB). ring-config.json у k8s ніколи не переписується.

    Підключення image і storage

    ЧастинаШлях / env
    Conductorlib/images/conductor/image-conductor.ts
    xAI providerlib/images/providers/xai.provider.ts — /images/generations або /images/edits
    Favicon PNGpublic/images/favicon.png → data:image/png;base64,…
    Persistfile().upload → RingBaseAdapter, коли NEXT_PUBLIC_STORAGE_PROVIDER=ring_filebase
    Local→prod APIPort-forward ring-filebase-api до 127.0.0.1:18080 (див. RingFileBase)

    Не задавайте RINGBASE_API_URL=https://api.ring-platform.org — цей host є ingress Next.js app, а не ring-filebase-api. Upload повертає HTML і проявляється як HTTP 500 у RingBaseAdapter.

    Колекції persistence

    Міграція 029_nft_gates_schema.sql створює JSONB collections: nft_gates, nft_stakes, nft_entitlement_cache, nft_ownership (і пов’язані індекси). Cron: GET /api/cron/nft-gate-expiry → runNftGateExpiry (щоденний розклад о 4am описано в документації SubscriptionConductor).

    Міграція 031_nft_exhibition_market_schema.sql додає persistence вторинного ринку: nft_listings, nft_market_sales і nft_market_collections.

    Ledger-dev проти on-chain

    Якщо nft.collectionMint порожній, metaplex-core.ts видає asset id ledger-dev не в production або коли ALLOW_LEDGER_NFT_MINT=1. Production відмовляється від ledger mint без цього flag.

    Якщо nft.gateMarketProgramId порожній, SolanaMarketClient використовує поставлений ledger-dev market adapter. Якщо в цій збірці задано program id, list/cancel/buy викидають помилку, оскільки перевірений Anchor GateMarket CPI ще не реалізований.

    Anchor scaffolds знаходяться в solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md не допускає обидві програми до production, доки не завершені аудит, контроль authorities через Squads, pinned IDs/IDLs і тести інваріантів.

    NFT Exhibition Marketplace

    Вторинна торгівля допущеними vendor KEYS gates.

  6. Довічний membership NFT як постійна печатка учасника (потрібен stake).
  7. Vendor DAGI key застейканий до активації агента (hasFeature('vendor.dagi')).
  8. Store deed / DAGI / annual / quarterly vendor gates виставляються на перепродаж за RING, коли не застейкані.
  9. Придбаний vendor gate стейкається після покупки, перш ніж активується доступ до продукту.
  10. SubscriptionConductor

    Як nft_gate працює поруч із credit, WayForPay, Stripe і native token.

    Wallet

    Кастодіальні Solana-гаманці та перекази RING, які фінансують первинний продаж.

    RingFileBase

    Куди потрапляє згенероване ImageConductor NFT art.

    NFT Marketplace

    Запущений Exhibition Marketplace для допущених vendor KEYS gates; перевірений on-chain GateMarket залишається майбутньою роботою.

    Покупка на marketplace передає лише право власності. Вона не відкриває функції, доки покупець не застейкає gate. Активний listing означає hasFeature:false; активний stake означає canList:false.

    features/nft-gates/gate-resolver.tshasFeature (cache → stakes → RPC)
    features/nft-gates/admin-mint.tsСтворення collection + активація template
    features/nft-gates/art-prompt.tsPrompt vars + favicon data URI
    features/nft-market/listing-policy.tsTradeable SKU, soulbound, stake, перевірки duplicate listing
    features/nft-market/services/listing-service.tsЖиттєвий цикл NFT Exhibition listing
    features/nft-market/services/solana-market-client.tsАдаптер marketplace ledger-dev; Anchor branch заблокований
    features/admin/nft/gate-art-preview-modal.tsxfs-modal із preview 4-up
    app/_actions/nft-gates.tsServer actions
    app/_actions/nft-market.tsList, cancel, purchase marketplace actions
    lib/payments/subscription/providers/nft-gate-subscription.tsПровайдер nft_gate

    Конфігурація (ring-config.json → nft)

    Перевірені ключі: enabled, collectionMint, collectionUri, collectionSymbol (KEYS), sponsorFeePayer, marketplaceEnabled, marketplaceFeeRecipient, marketplaceFeeBps, gateEscrowProgramId, gateMarketProgramId, templates[].

    Off-chain family metadata: public/nft/gates/collection.json (symbol: KEYS). Admin Point collection URI → KEYS JSON запускає Metaplex Core updateCollection, доки sponsor все ще має update authority.

    Сім template-ів (slugs): one-month-membership, annual-membership, lifetime-membership, vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, vendor-quarterly-store-license.

    payment.gateways.nft_gate.enabled у цьому дереві має значення true. nft_gate залишається в payment.futureMethods (ще не в supportedMethods), тому membership PaymentModal може й надалі позначати його як coming-soon, хоча /nft/gates і модуль provider уже працюють.

    Торгові marketplace slugs навмисно вужчі: vendor-store-deed, vendor-dagi-key, vendor-annual-store-license і vendor-quarterly-store-license. Membership slugs залишаються soulbound і не можуть бути виставлені.

    Server actions

    ActionПризначення
    purchaseGateActionКупити gate NFT за RING
    stakeGateAction / unstakeGateActionGateEscrow
    hasGateFeatureActionПеревірка entitlement
    previewGateArtActionImageConductor n: 4 + посилання на favicon
    adminActivateGateTemplateActionMint/activate з необов’язковим imageUri
    adminCreateGateCollectionActionСтворити Core collection

    Потік preview art адміністратора

    1. 1

      Відкрийте /admin/nft/templates або /admin/nft/mint і натисніть Mint / activate + art.

    2. 2

      previewGateArtAction підставляє $projectName, $activeColor, $secondaryColor, $projectColor1, $projectColor2, $organization, потім викликає ImageConductor.generate з n: 4 і favicon referenceImages.

    3. 3

      Fullscreen modal показує сітку 2×2, згортане поле Generation prompt і Regenerate (зміни prompt лише на час сесії — у ring-config не записуються).

    4. 4

      Mint with selected art викликає adminActivateGateTemplateAction({ imageUri, regenerateArt: false }) → Metaplex Core mint → рядок edition nft_gates + db() active-template pointer (nft_active_{slug}). Runtime SSOT — listNftGateTemplatesResolved() (дефолти ring-config + overlay DB). ring-config.json у k8s ніколи не переписується.

    Підключення image і storage

    ЧастинаШлях / env
    Conductorlib/images/conductor/image-conductor.ts
    xAI providerlib/images/providers/xai.provider.ts — /images/generations або /images/edits
    Favicon PNGpublic/images/favicon.png → data:image/png;base64,…
    Persistfile().upload → RingBaseAdapter, коли NEXT_PUBLIC_STORAGE_PROVIDER=ring_filebase
    Local→prod APIPort-forward ring-filebase-api до 127.0.0.1:18080 (див. RingFileBase)

    Не задавайте RINGBASE_API_URL=https://api.ring-platform.org — цей host є ingress Next.js app, а не ring-filebase-api. Upload повертає HTML і проявляється як HTTP 500 у RingBaseAdapter.

    Колекції persistence

    Міграція 029_nft_gates_schema.sql створює JSONB collections: nft_gates, nft_stakes, nft_entitlement_cache, nft_ownership (і пов’язані індекси). Cron: GET /api/cron/nft-gate-expiry → runNftGateExpiry (щоденний розклад о 4am описано в документації SubscriptionConductor).

    Міграція 031_nft_exhibition_market_schema.sql додає persistence вторинного ринку: nft_listings, nft_market_sales і nft_market_collections.

    Ledger-dev проти on-chain

    Якщо nft.collectionMint порожній, metaplex-core.ts видає asset id ledger-dev не в production або коли ALLOW_LEDGER_NFT_MINT=1. Production відмовляється від ledger mint без цього flag.

    Якщо nft.gateMarketProgramId порожній, SolanaMarketClient використовує поставлений ledger-dev market adapter. Якщо в цій збірці задано program id, list/cancel/buy викидають помилку, оскільки перевірений Anchor GateMarket CPI ще не реалізований.

    Anchor scaffolds знаходяться в solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md не допускає обидві програми до production, доки не завершені аудит, контроль authorities через Squads, pinned IDs/IDLs і тести інваріантів.

    NFT Exhibition Marketplace

    Вторинна торгівля допущеними vendor KEYS gates.

  11. Довічний membership NFT як постійна печатка учасника (потрібен stake).
  12. Vendor DAGI key застейканий до активації агента (hasFeature('vendor.dagi')).
  13. Store deed / DAGI / annual / quarterly vendor gates виставляються на перепродаж за RING, коли не застейкані.
  14. Придбаний vendor gate стейкається після покупки, перш ніж активується доступ до продукту.
  15. SubscriptionConductor

    Як nft_gate працює поруч із credit, WayForPay, Stripe і native token.

    Wallet

    Кастодіальні Solana-гаманці та перекази RING, які фінансують первинний продаж.

    RingFileBase

    Куди потрапляє згенероване ImageConductor NFT art.

    NFT Marketplace

    Запущений Exhibition Marketplace для допущених vendor KEYS gates; перевірений on-chain GateMarket залишається майбутньою роботою.

    Покупка на marketplace передає лише право власності. Вона не відкриває функції, доки покупець не застейкає gate. Активний listing означає hasFeature:false; активний stake означає canList:false.

    features/nft-gates/gate-resolver.tshasFeature (cache → stakes → RPC)
    features/nft-gates/admin-mint.tsСтворення collection + активація template
    features/nft-gates/art-prompt.tsPrompt vars + favicon data URI
    features/nft-market/listing-policy.tsTradeable SKU, soulbound, stake, перевірки duplicate listing
    features/nft-market/services/listing-service.tsЖиттєвий цикл NFT Exhibition listing
    features/nft-market/services/solana-market-client.tsАдаптер marketplace ledger-dev; Anchor branch заблокований
    features/admin/nft/gate-art-preview-modal.tsxfs-modal із preview 4-up
    app/_actions/nft-gates.tsServer actions
    app/_actions/nft-market.tsList, cancel, purchase marketplace actions
    lib/payments/subscription/providers/nft-gate-subscription.tsПровайдер nft_gate

    Конфігурація (ring-config.json → nft)

    Перевірені ключі: enabled, collectionMint, collectionUri, collectionSymbol (KEYS), sponsorFeePayer, marketplaceEnabled, marketplaceFeeRecipient, marketplaceFeeBps, gateEscrowProgramId, gateMarketProgramId, templates[].

    Off-chain family metadata: public/nft/gates/collection.json (symbol: KEYS). Admin Point collection URI → KEYS JSON запускає Metaplex Core updateCollection, доки sponsor все ще має update authority.

    Сім template-ів (slugs): one-month-membership, annual-membership, lifetime-membership, vendor-store-deed, vendor-dagi-key, vendor-annual-store-license, vendor-quarterly-store-license.

    payment.gateways.nft_gate.enabled у цьому дереві має значення true. nft_gate залишається в payment.futureMethods (ще не в supportedMethods), тому membership PaymentModal може й надалі позначати його як coming-soon, хоча /nft/gates і модуль provider уже працюють.

    Торгові marketplace slugs навмисно вужчі: vendor-store-deed, vendor-dagi-key, vendor-annual-store-license і vendor-quarterly-store-license. Membership slugs залишаються soulbound і не можуть бути виставлені.

    Server actions

    ActionПризначення
    purchaseGateActionКупити gate NFT за RING
    stakeGateAction / unstakeGateActionGateEscrow
    hasGateFeatureActionПеревірка entitlement
    previewGateArtActionImageConductor n: 4 + посилання на favicon
    adminActivateGateTemplateActionMint/activate з необов’язковим imageUri
    adminCreateGateCollectionActionСтворити Core collection

    Потік preview art адміністратора

    1. 1

      Відкрийте /admin/nft/templates або /admin/nft/mint і натисніть Mint / activate + art.

    2. 2

      previewGateArtAction підставляє $projectName, $activeColor, $secondaryColor, $projectColor1, $projectColor2, $organization, потім викликає ImageConductor.generate з n: 4 і favicon referenceImages.

    3. 3

      Fullscreen modal показує сітку 2×2, згортане поле Generation prompt і Regenerate (зміни prompt лише на час сесії — у ring-config не записуються).

    4. 4

      Mint with selected art викликає adminActivateGateTemplateAction({ imageUri, regenerateArt: false }) → Metaplex Core mint → рядок edition nft_gates + db() active-template pointer (nft_active_{slug}). Runtime SSOT — listNftGateTemplatesResolved() (дефолти ring-config + overlay DB). ring-config.json у k8s ніколи не переписується.

    Підключення image і storage

    ЧастинаШлях / env
    Conductorlib/images/conductor/image-conductor.ts
    xAI providerlib/images/providers/xai.provider.ts — /images/generations або /images/edits
    Favicon PNGpublic/images/favicon.png → data:image/png;base64,…
    Persistfile().upload → RingBaseAdapter, коли NEXT_PUBLIC_STORAGE_PROVIDER=ring_filebase
    Local→prod APIPort-forward ring-filebase-api до 127.0.0.1:18080 (див. RingFileBase)

    Не задавайте RINGBASE_API_URL=https://api.ring-platform.org — цей host є ingress Next.js app, а не ring-filebase-api. Upload повертає HTML і проявляється як HTTP 500 у RingBaseAdapter.

    Колекції persistence

    Міграція 029_nft_gates_schema.sql створює JSONB collections: nft_gates, nft_stakes, nft_entitlement_cache, nft_ownership (і пов’язані індекси). Cron: GET /api/cron/nft-gate-expiry → runNftGateExpiry (щоденний розклад о 4am описано в документації SubscriptionConductor).

    Міграція 031_nft_exhibition_market_schema.sql додає persistence вторинного ринку: nft_listings, nft_market_sales і nft_market_collections.

    Ledger-dev проти on-chain

    Якщо nft.collectionMint порожній, metaplex-core.ts видає asset id ledger-dev не в production або коли ALLOW_LEDGER_NFT_MINT=1. Production відмовляється від ledger mint без цього flag.

    Якщо nft.gateMarketProgramId порожній, SolanaMarketClient використовує поставлений ledger-dev market adapter. Якщо в цій збірці задано program id, list/cancel/buy викидають помилку, оскільки перевірений Anchor GateMarket CPI ще не реалізований.

    Anchor scaffolds знаходяться в solana/programs/{gate-escrow,gate-market}. solana/SECURITY.md не допускає обидві програми до production, доки не завершені аудит, контроль authorities через Squads, pinned IDs/IDLs і тести інваріантів.

    NFT Exhibition Marketplace

    Вторинна торгівля допущеними vendor KEYS gates.