Концепції, цінність і типові сценарії
Концепції, цінність і типові сценарії
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
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).
| Surface | Verified truth |
|---|---|
| Marketplace | /nft/market, /nft/market/[listingId], /nft/market/sell |
| Member create | /nft/create, /nft/create/[collectionId] |
| Collections | /nft/collections, /nft/collections/[slug] |
| Search | Search redirects land on /nft/market?q=... |
| Feed | useCursorFeed with moduleId="nft-market"; optional lane=keys|member |
| Payment | RING only |
| KEYS symbol | KEYS from gate collection metadata |
| Member collections | nft_member_collections + listing lane: 'member' |
| Listing storage | nft_listings |
| Sale ledger | nft_market_sales |
| Collection cache | nft_market_collections |
| Migrations | 031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql |
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.
Vendor-grade gates can move from one member to another without making membership transferable.
Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.
A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.
Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.
Native RING balance and custodial Solana wallet flows used for marketplace settlement.
How nft_gate fits beside other access providers.
Production guardrails before audited on-chain marketplace deployment.
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).
| Surface | Verified truth |
|---|---|
| Marketplace | /nft/market, /nft/market/[listingId], /nft/market/sell |
| Member create | /nft/create, /nft/create/[collectionId] |
| Collections | /nft/collections, /nft/collections/[slug] |
| Search | Search redirects land on /nft/market?q=... |
| Feed | useCursorFeed with moduleId="nft-market"; optional lane=keys|member |
| Payment | RING only |
| KEYS symbol | KEYS from gate collection metadata |
| Member collections | nft_member_collections + listing lane: 'member' |
| Listing storage | nft_listings |
| Sale ledger | nft_market_sales |
| Collection cache | nft_market_collections |
| Migrations | 031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql |
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.
Vendor-grade gates can move from one member to another without making membership transferable.
Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.
A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.
Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.
Native RING balance and custodial Solana wallet flows used for marketplace settlement.
How nft_gate fits beside other access providers.
Production guardrails before audited on-chain marketplace deployment.
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).
| Surface | Verified truth |
|---|---|
| Marketplace | /nft/market, /nft/market/[listingId], /nft/market/sell |
| Member create | /nft/create, /nft/create/[collectionId] |
| Collections | /nft/collections, /nft/collections/[slug] |
| Search | Search redirects land on /nft/market?q=... |
| Feed | useCursorFeed with moduleId="nft-market"; optional lane=keys|member |
| Payment | RING only |
| KEYS symbol | KEYS from gate collection metadata |
| Member collections | nft_member_collections + listing lane: 'member' |
| Listing storage | nft_listings |
| Sale ledger | nft_market_sales |
| Collection cache | nft_market_collections |
| Migrations | 031_nft_exhibition_market_schema.sql, 032_nft_member_collections_schema.sql |
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.
Vendor-grade gates can move from one member to another without making membership transferable.
Members create Metaplex Core collections, mint, and list for RING — ownership transfer only, no GateEscrow features.
A KEYS buyer must stake the gate before features activate. Listing and staking are mutually exclusive.
Primary sale, KEYS collection metadata, GateEscrow staking, and template activation.
Native RING balance and custodial Solana wallet flows used for marketplace settlement.
How nft_gate fits beside other access providers.
Production guardrails before audited on-chain marketplace deployment.
Buyers pay in the clone native token through the custodial Solana wallet path.
nft.marketplaceEnabled).nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).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.
features/nft-market/services/listing-service.ts| Dual-lane draft/activate; member vs KEYS policy branch |
features/nft-market/services/solana-market-client.ts | Ledger-dev list/cancel/buy; Anchor branch blocked until program IDs |
features/wallet/conductor/wallet-conductor.ts | purchaseNftListing for both lanes |
isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().
Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.
Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.
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.
| Key | Effect |
|---|---|
nft.marketplaceEnabled | Master secondary-market switch |
nft.memberCollectionsEnabled | Enables member create/mint/list PoC |
nft.maxCollectionsPerMember | Cap (default 3) |
nft.maxMintsPerCollection | Cap (default 50) |
nft.gateMarketProgramId | Empty = ledger-dev; non-empty Anchor path throws in this build |
nft.marketplaceFeeRecipient | Optional RING fee recipient |
nft.marketplaceFeeBps | Fee split basis points, clamped 0–10000 |
031_nft_exhibition_market_schema.sql — listings, sales, collection cache032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfillSolanaMarketClient.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.
Buyers pay in the clone native token through the custodial Solana wallet path.
nft.marketplaceEnabled).nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).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.
features/nft-market/services/listing-service.ts| Dual-lane draft/activate; member vs KEYS policy branch |
features/nft-market/services/solana-market-client.ts | Ledger-dev list/cancel/buy; Anchor branch blocked until program IDs |
features/wallet/conductor/wallet-conductor.ts | purchaseNftListing for both lanes |
isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().
Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.
Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.
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.
| Key | Effect |
|---|---|
nft.marketplaceEnabled | Master secondary-market switch |
nft.memberCollectionsEnabled | Enables member create/mint/list PoC |
nft.maxCollectionsPerMember | Cap (default 3) |
nft.maxMintsPerCollection | Cap (default 50) |
nft.gateMarketProgramId | Empty = ledger-dev; non-empty Anchor path throws in this build |
nft.marketplaceFeeRecipient | Optional RING fee recipient |
nft.marketplaceFeeBps | Fee split basis points, clamped 0–10000 |
031_nft_exhibition_market_schema.sql — listings, sales, collection cache032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfillSolanaMarketClient.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.
Buyers pay in the clone native token through the custodial Solana wallet path.
nft.marketplaceEnabled).nft.memberCollectionsEnabled and caps (maxCollectionsPerMember, maxMintsPerCollection).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.
features/nft-market/services/listing-service.ts| Dual-lane draft/activate; member vs KEYS policy branch |
features/nft-market/services/solana-market-client.ts | Ledger-dev list/cancel/buy; Anchor branch blocked until program IDs |
features/wallet/conductor/wallet-conductor.ts | purchaseNftListing for both lanes |
isNftMarketplaceEnabled() must pass. Member create/mint also requires isMemberCollectionsEnabled().
Lane K: slug must be one of the four tradeable SKUs. Template/ownership must not be soulbound; asset verifies against KEYS; no active stake.
Lane M: hasMemberPrivileges, ownership source: member_mint, collection active, not soulbound, no active listing. No GateEscrow stake check for listing.
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.
| Key | Effect |
|---|---|
nft.marketplaceEnabled | Master secondary-market switch |
nft.memberCollectionsEnabled | Enables member create/mint/list PoC |
nft.maxCollectionsPerMember | Cap (default 3) |
nft.maxMintsPerCollection | Cap (default 50) |
nft.gateMarketProgramId | Empty = ledger-dev; non-empty Anchor path throws in this build |
nft.marketplaceFeeRecipient | Optional RING fee recipient |
nft.marketplaceFeeBps | Fee split basis points, clamped 0–10000 |
031_nft_exhibition_market_schema.sql — listings, sales, collection cache032_nft_member_collections_schema.sql — nft_member_collections + listing lane / collectionId indexes + KEYS lane backfillSolanaMarketClient.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.