Концепції, цінність і типові сценарії
Концепції, цінність і типові сценарії
Preparing Ring content
Preparing Ring content
Preparing Ring content
Публічні пули — це спільнотні банки фінансування для кожного клону. Учасники ставлять вподобайки й роблять внески до цілі у native token; документація вбудовує той самий банк через <FutureFeatureWidget />. Продуктові маршрути живуть під /dao (не /pools). SSOT коштів для внесків карткою/PayPal — призначення PaymentConductor public_pool_contribution, а не API PSP «donation product».
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Видимість бічної панелі контролює lib/docs/audience-curated-docs.ts.
Hosted Донати WayForPay, Stripe Checkout submit_type=donate і PayPal Donate SDK не є SSOT банок Ring. Внески Ring карткою/PayPal використовують PaymentConductor.createCheckout({ purpose: 'public_pool_contribution' }) через POST /api/public-pools/[slug]/card-checkout. Нативні внески використовують SPL-переказ до treasury (contributeToPool) — поза Conductor.
| Напрям | Статус | Істина |
|---|---|---|
| Інтерактивний чат Tier A | Live | poll, rsvp, dao_jar, share_card виправлено (оновлення jar, RSVP зустрічі, cron closeAt poll, заблоковані голоси) |
| TD-MONEY-01 Card jar | Live | Призначення public_pool_contribution; settle збільшує pledged_native_token через desk oracle FX |
| TD-MONEY-02 Builder payout | Live | При фінансуванні ≥100%: авто-завершення + treasury виплачує builder net (pledged − комісія ролі) на основний Solana wallet builder |
| TD-MONEY-03 Escrow | Partial | Anchor-програма в solana/programs/public-pool (init/contribute/finalize/refund). Donation path live; on-chain escrow contribute потребує deploy + IDL wire |
| Dual-currency CTA | Live | PoolContributePanel — fiat для картки/PayPal; native symbol для внеску; показує credit + native balances |
Card jar — не конвертація fiat↔RING 1:1. PublicPool escrow — не live у production. Builder payout — не завжди дорівнює всій сумі pledged (комісія 0 лише для ролей admin/superadmin за замовчуванням).
SSOT FX (той самий, що й у Token Desk): nativeUi = fiatMajor / nativePerMainCurrency через getNativeTokenPerMainCurrencyRate / features/public-pools/lib/public-pool-desk-fx.ts.
SSOT комісії платформи: ring-config.json → publicPools.platformFeePercentByRole (типові значення: admin/superadmin 0%, confidential 6%, member 7%).
Учасники фінансують функції та колективні цілі у вашому native token (а картковий fiat конвертується за актуальним desk rate). Коли банк заповнюється, власник opportunity отримує net native token на свій основний custodial Solana wallet — за мінусом налаштованої комісії ролі. Форми collective-order показують це явно (collectiveJarPayoutNote у локалях opportunities).
Призначення картки/PayPal public_pool_contribution використовує той самий ledger і webhooks, що й store та wallet.
Ставка desk oracle — той самий FX, який використовується, коли картковий внесок стає pledged native units.
Віджети чату оновлюються після внеску; публікуйте банки з документації або .
Залежність: settle картки/PayPal для jar використовує PaymentPurpose public_pool_contribution і спільні webhooks.
Залежність: nativePerMainCurrency від desk oracle — SSOT FX для fiat→pledged native.
Той самий процес: віджети dao_jar і PostDaoJarToChatButton оновлюються після внеску.
Наступний крок: колективні банки виплачують у wallet builder opportunity, коли фінансування сягає 100%.
Публічні пули — це спільнотні банки фінансування для кожного клону. Учасники ставлять вподобайки й роблять внески до цілі у native token; документація вбудовує той самий банк через <FutureFeatureWidget />. Продуктові маршрути живуть під /dao (не /pools). SSOT коштів для внесків карткою/PayPal — призначення PaymentConductor public_pool_contribution, а не API PSP «donation product».
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Видимість бічної панелі контролює lib/docs/audience-curated-docs.ts.
Hosted Донати WayForPay, Stripe Checkout submit_type=donate і PayPal Donate SDK не є SSOT банок Ring. Внески Ring карткою/PayPal використовують PaymentConductor.createCheckout({ purpose: 'public_pool_contribution' }) через POST /api/public-pools/[slug]/card-checkout. Нативні внески використовують SPL-переказ до treasury (contributeToPool) — поза Conductor.
| Напрям | Статус | Істина |
|---|---|---|
| Інтерактивний чат Tier A | Live | poll, rsvp, dao_jar, share_card виправлено (оновлення jar, RSVP зустрічі, cron closeAt poll, заблоковані голоси) |
| TD-MONEY-01 Card jar | Live | Призначення public_pool_contribution; settle збільшує pledged_native_token через desk oracle FX |
| TD-MONEY-02 Builder payout | Live | При фінансуванні ≥100%: авто-завершення + treasury виплачує builder net (pledged − комісія ролі) на основний Solana wallet builder |
| TD-MONEY-03 Escrow | Partial | Anchor-програма в solana/programs/public-pool (init/contribute/finalize/refund). Donation path live; on-chain escrow contribute потребує deploy + IDL wire |
| Dual-currency CTA | Live | PoolContributePanel — fiat для картки/PayPal; native symbol для внеску; показує credit + native balances |
Card jar — не конвертація fiat↔RING 1:1. PublicPool escrow — не live у production. Builder payout — не завжди дорівнює всій сумі pledged (комісія 0 лише для ролей admin/superadmin за замовчуванням).
SSOT FX (той самий, що й у Token Desk): nativeUi = fiatMajor / nativePerMainCurrency через getNativeTokenPerMainCurrencyRate / features/public-pools/lib/public-pool-desk-fx.ts.
SSOT комісії платформи: ring-config.json → publicPools.platformFeePercentByRole (типові значення: admin/superadmin 0%, confidential 6%, member 7%).
Учасники фінансують функції та колективні цілі у вашому native token (а картковий fiat конвертується за актуальним desk rate). Коли банк заповнюється, власник opportunity отримує net native token на свій основний custodial Solana wallet — за мінусом налаштованої комісії ролі. Форми collective-order показують це явно (collectiveJarPayoutNote у локалях opportunities).
Призначення картки/PayPal public_pool_contribution використовує той самий ledger і webhooks, що й store та wallet.
Ставка desk oracle — той самий FX, який використовується, коли картковий внесок стає pledged native units.
Віджети чату оновлюються після внеску; публікуйте банки з документації або .
Залежність: settle картки/PayPal для jar використовує PaymentPurpose public_pool_contribution і спільні webhooks.
Залежність: nativePerMainCurrency від desk oracle — SSOT FX для fiat→pledged native.
Той самий процес: віджети dao_jar і PostDaoJarToChatButton оновлюються після внеску.
Наступний крок: колективні банки виплачують у wallet builder opportunity, коли фінансування сягає 100%.
Публічні пули — це спільнотні банки фінансування для кожного клону. Учасники ставлять вподобайки й роблять внески до цілі у native token; документація вбудовує той самий банк через <FutureFeatureWidget />. Продуктові маршрути живуть під /dao (не /pools). SSOT коштів для внесків карткою/PayPal — призначення PaymentConductor public_pool_contribution, а не API PSP «donation product».
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Видимість бічної панелі контролює lib/docs/audience-curated-docs.ts.
Hosted Донати WayForPay, Stripe Checkout submit_type=donate і PayPal Donate SDK не є SSOT банок Ring. Внески Ring карткою/PayPal використовують PaymentConductor.createCheckout({ purpose: 'public_pool_contribution' }) через POST /api/public-pools/[slug]/card-checkout. Нативні внески використовують SPL-переказ до treasury (contributeToPool) — поза Conductor.
| Напрям | Статус | Істина |
|---|---|---|
| Інтерактивний чат Tier A | Live | poll, rsvp, dao_jar, share_card виправлено (оновлення jar, RSVP зустрічі, cron closeAt poll, заблоковані голоси) |
| TD-MONEY-01 Card jar | Live | Призначення public_pool_contribution; settle збільшує pledged_native_token через desk oracle FX |
| TD-MONEY-02 Builder payout | Live | При фінансуванні ≥100%: авто-завершення + treasury виплачує builder net (pledged − комісія ролі) на основний Solana wallet builder |
| TD-MONEY-03 Escrow | Partial | Anchor-програма в solana/programs/public-pool (init/contribute/finalize/refund). Donation path live; on-chain escrow contribute потребує deploy + IDL wire |
| Dual-currency CTA | Live | PoolContributePanel — fiat для картки/PayPal; native symbol для внеску; показує credit + native balances |
Card jar — не конвертація fiat↔RING 1:1. PublicPool escrow — не live у production. Builder payout — не завжди дорівнює всій сумі pledged (комісія 0 лише для ролей admin/superadmin за замовчуванням).
SSOT FX (той самий, що й у Token Desk): nativeUi = fiatMajor / nativePerMainCurrency через getNativeTokenPerMainCurrencyRate / features/public-pools/lib/public-pool-desk-fx.ts.
SSOT комісії платформи: ring-config.json → publicPools.platformFeePercentByRole (типові значення: admin/superadmin 0%, confidential 6%, member 7%).
Учасники фінансують функції та колективні цілі у вашому native token (а картковий fiat конвертується за актуальним desk rate). Коли банк заповнюється, власник opportunity отримує net native token на свій основний custodial Solana wallet — за мінусом налаштованої комісії ролі. Форми collective-order показують це явно (collectiveJarPayoutNote у локалях opportunities).
Призначення картки/PayPal public_pool_contribution використовує той самий ledger і webhooks, що й store та wallet.
Ставка desk oracle — той самий FX, який використовується, коли картковий внесок стає pledged native units.
Віджети чату оновлюються після внеску; публікуйте банки з документації або .
Залежність: settle картки/PayPal для jar використовує PaymentPurpose public_pool_contribution і спільні webhooks.
Залежність: nativePerMainCurrency від desk oracle — SSOT FX для fiat→pledged native.
Той самий процес: віджети dao_jar і PostDaoJarToChatButton оновлюються після внеску.
Наступний крок: колективні банки виплачують у wallet builder opportunity, коли фінансування сягає 100%.
dao_jar/daopublicPools у ring-config.json) — карта комісій + autoPayoutOnGoalMet.SOLANA_RPC_URL, SOLANA_TREASURY_PRIVATE_KEY), щоб native внески та виплати builder могли переміщувати SPL.getNativeTokenPerMainCurrencyRate.solana/programs/public-pool і не встановите NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID./dao/[slug] і підтвердьте, що pledged native зростає в desk-конвертованих одиницях, а не 1:1 fiat.<FutureFeatureWidget poolSlug="…" /> — учасники ставлять вподобайку й роблять внесок зі сторінки.dao_jar — та сама панель; підсумки оновлюються через refreshOpenDaoJarMessages.completed → treasury виплачує net RING на wallet builder.| GET/POST | /api/public-pools | Список / upsert статистики future_feature |
| POST | /api/public-pools/signal | Перемикач like |
| POST | /api/public-pools/contribute | Ініціація native |
| POST | /api/public-pools/contribute/confirm | Native confirm + оновлення jar |
| POST | /api/public-pools/[slug]/card-checkout | Checkout картки/PayPal через Conductor |
| * | /api/admin/public-pools… | CRUD + статус для адміна |
Settle: lib/payments/conductor/handlers/public-pool-contribution.ts → settlePublicPoolCardContribution (ідемпотентний за orderReference). Webhooks: гілки диспетчера WayForPay / Stripe / PayPal перевіряють purpose === 'public_pool_contribution'.
Необов’язкове перевизначення процесора: PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR (lib/payments/payment.config.ts).
| Модуль | Відповідальність |
|---|---|
features/public-pools/services/public-pool-service.ts | Підсумки, queue gate, auto-complete, виплата builder |
features/public-pools/services/public-pool-contribute.ts | Внесок до native treasury |
features/public-pools/lib/public-pool-desk-fx.ts | FX desk oracle |
features/public-pools/lib/public-pool-platform-fee.ts | Карта комісій за ролями |
features/public-pools/lib/public-pool-escrow-gate.ts | NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID |
lib/payments/conductor/settle-public-pool-contribution.ts | Card settle → pledged_native_token |
features/chat/lib/refresh-open-dao-jar-messages.ts | Синхронізація знімка чату |
solana/programs/public-pool | Anchor: init_pool / contribute / finalize_success / refund_contributor |
Card checkout приймає amount_fiat або amount_native і перед redirect завжди зберігає обидва значення + nativePerMainCurrency у payment metadata.
Коли autoPayoutOnGoalMet і funding ≥ 100%:
completedpayout_wallet_address або основний native wallet builderfeePercent = resolveBuilderPlatformFeePercent(builderRole)net = pledged − fee; transferTokenFromTreasury(wallet, net)public_pool_payout із gross/fee/feePctТекст collective-order: locales/*/modules/opportunities.json → collectiveJarPayoutNote.
Donation mode (treasury SPL) — live-шлях. Escrow contribute потребує: deploy програми → встановити NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID → підключити IDL client → зберігати on_chain { pool_pda, vault_ata } для кожного jar. Не документуйте escrow як live у production.
| Var | Використання |
|---|---|
SOLANA_RPC_URL | Chain RPC |
SOLANA_TREASURY_PRIVATE_KEY | Native внесок + виплата builder |
NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID | Гейт escrow (необов’язково; ще немає в env.local.template) |
PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR | Необов’язкове перевизначення PSP для призначення |
| Standard WFP / Stripe / PayPal secrets | Ті самі webhooks Conductor, що й для інших призначень |
public_pools, public_pool_signals, public_pool_contributions (ізолюються за clone через getPublicPoolConfig().cloneId).
Домен володіє коштами; чат володіє знімком dao_jar. Після зміни підсумків завжди викликайте refreshOpenDaoJarMessages. Scorecard: AI-CONTEXT concepts/chat-interactive-type-debt.json — Tier A CLOSED; TD-MONEY-01/02 CLOSED; TD-MONEY-03 PARTIAL.
Поглиблення: типи conductor, ledger і диспетчер webhook.
// features/public-pools/lib/public-pool-desk-fx.ts
// nativeUi = fiatMajor / nativePerMainCurrency
// nativePerMainCurrency from getNativeTokenPerMainCurrencyRate() — same SSOT as Token Desk
// features/public-pools/lib/public-pool-escrow-gate.ts
isPublicPoolEscrowDeployed() // true only when PROGRAM_ID env is setdao_jar/daopublicPools у ring-config.json) — карта комісій + autoPayoutOnGoalMet.SOLANA_RPC_URL, SOLANA_TREASURY_PRIVATE_KEY), щоб native внески та виплати builder могли переміщувати SPL.getNativeTokenPerMainCurrencyRate.solana/programs/public-pool і не встановите NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID./dao/[slug] і підтвердьте, що pledged native зростає в desk-конвертованих одиницях, а не 1:1 fiat.<FutureFeatureWidget poolSlug="…" /> — учасники ставлять вподобайку й роблять внесок зі сторінки.dao_jar — та сама панель; підсумки оновлюються через refreshOpenDaoJarMessages.completed → treasury виплачує net RING на wallet builder.| GET/POST | /api/public-pools | Список / upsert статистики future_feature |
| POST | /api/public-pools/signal | Перемикач like |
| POST | /api/public-pools/contribute | Ініціація native |
| POST | /api/public-pools/contribute/confirm | Native confirm + оновлення jar |
| POST | /api/public-pools/[slug]/card-checkout | Checkout картки/PayPal через Conductor |
| * | /api/admin/public-pools… | CRUD + статус для адміна |
Settle: lib/payments/conductor/handlers/public-pool-contribution.ts → settlePublicPoolCardContribution (ідемпотентний за orderReference). Webhooks: гілки диспетчера WayForPay / Stripe / PayPal перевіряють purpose === 'public_pool_contribution'.
Необов’язкове перевизначення процесора: PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR (lib/payments/payment.config.ts).
| Модуль | Відповідальність |
|---|---|
features/public-pools/services/public-pool-service.ts | Підсумки, queue gate, auto-complete, виплата builder |
features/public-pools/services/public-pool-contribute.ts | Внесок до native treasury |
features/public-pools/lib/public-pool-desk-fx.ts | FX desk oracle |
features/public-pools/lib/public-pool-platform-fee.ts | Карта комісій за ролями |
features/public-pools/lib/public-pool-escrow-gate.ts | NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID |
lib/payments/conductor/settle-public-pool-contribution.ts | Card settle → pledged_native_token |
features/chat/lib/refresh-open-dao-jar-messages.ts | Синхронізація знімка чату |
solana/programs/public-pool | Anchor: init_pool / contribute / finalize_success / refund_contributor |
Card checkout приймає amount_fiat або amount_native і перед redirect завжди зберігає обидва значення + nativePerMainCurrency у payment metadata.
Коли autoPayoutOnGoalMet і funding ≥ 100%:
completedpayout_wallet_address або основний native wallet builderfeePercent = resolveBuilderPlatformFeePercent(builderRole)net = pledged − fee; transferTokenFromTreasury(wallet, net)public_pool_payout із gross/fee/feePctТекст collective-order: locales/*/modules/opportunities.json → collectiveJarPayoutNote.
Donation mode (treasury SPL) — live-шлях. Escrow contribute потребує: deploy програми → встановити NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID → підключити IDL client → зберігати on_chain { pool_pda, vault_ata } для кожного jar. Не документуйте escrow як live у production.
| Var | Використання |
|---|---|
SOLANA_RPC_URL | Chain RPC |
SOLANA_TREASURY_PRIVATE_KEY | Native внесок + виплата builder |
NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID | Гейт escrow (необов’язково; ще немає в env.local.template) |
PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR | Необов’язкове перевизначення PSP для призначення |
| Standard WFP / Stripe / PayPal secrets | Ті самі webhooks Conductor, що й для інших призначень |
public_pools, public_pool_signals, public_pool_contributions (ізолюються за clone через getPublicPoolConfig().cloneId).
Домен володіє коштами; чат володіє знімком dao_jar. Після зміни підсумків завжди викликайте refreshOpenDaoJarMessages. Scorecard: AI-CONTEXT concepts/chat-interactive-type-debt.json — Tier A CLOSED; TD-MONEY-01/02 CLOSED; TD-MONEY-03 PARTIAL.
Поглиблення: типи conductor, ledger і диспетчер webhook.
// features/public-pools/lib/public-pool-desk-fx.ts
// nativeUi = fiatMajor / nativePerMainCurrency
// nativePerMainCurrency from getNativeTokenPerMainCurrencyRate() — same SSOT as Token Desk
// features/public-pools/lib/public-pool-escrow-gate.ts
isPublicPoolEscrowDeployed() // true only when PROGRAM_ID env is setdao_jar/daopublicPools у ring-config.json) — карта комісій + autoPayoutOnGoalMet.SOLANA_RPC_URL, SOLANA_TREASURY_PRIVATE_KEY), щоб native внески та виплати builder могли переміщувати SPL.getNativeTokenPerMainCurrencyRate.solana/programs/public-pool і не встановите NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID./dao/[slug] і підтвердьте, що pledged native зростає в desk-конвертованих одиницях, а не 1:1 fiat.<FutureFeatureWidget poolSlug="…" /> — учасники ставлять вподобайку й роблять внесок зі сторінки.dao_jar — та сама панель; підсумки оновлюються через refreshOpenDaoJarMessages.completed → treasury виплачує net RING на wallet builder.| GET/POST | /api/public-pools | Список / upsert статистики future_feature |
| POST | /api/public-pools/signal | Перемикач like |
| POST | /api/public-pools/contribute | Ініціація native |
| POST | /api/public-pools/contribute/confirm | Native confirm + оновлення jar |
| POST | /api/public-pools/[slug]/card-checkout | Checkout картки/PayPal через Conductor |
| * | /api/admin/public-pools… | CRUD + статус для адміна |
Settle: lib/payments/conductor/handlers/public-pool-contribution.ts → settlePublicPoolCardContribution (ідемпотентний за orderReference). Webhooks: гілки диспетчера WayForPay / Stripe / PayPal перевіряють purpose === 'public_pool_contribution'.
Необов’язкове перевизначення процесора: PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR (lib/payments/payment.config.ts).
| Модуль | Відповідальність |
|---|---|
features/public-pools/services/public-pool-service.ts | Підсумки, queue gate, auto-complete, виплата builder |
features/public-pools/services/public-pool-contribute.ts | Внесок до native treasury |
features/public-pools/lib/public-pool-desk-fx.ts | FX desk oracle |
features/public-pools/lib/public-pool-platform-fee.ts | Карта комісій за ролями |
features/public-pools/lib/public-pool-escrow-gate.ts | NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID |
lib/payments/conductor/settle-public-pool-contribution.ts | Card settle → pledged_native_token |
features/chat/lib/refresh-open-dao-jar-messages.ts | Синхронізація знімка чату |
solana/programs/public-pool | Anchor: init_pool / contribute / finalize_success / refund_contributor |
Card checkout приймає amount_fiat або amount_native і перед redirect завжди зберігає обидва значення + nativePerMainCurrency у payment metadata.
Коли autoPayoutOnGoalMet і funding ≥ 100%:
completedpayout_wallet_address або основний native wallet builderfeePercent = resolveBuilderPlatformFeePercent(builderRole)net = pledged − fee; transferTokenFromTreasury(wallet, net)public_pool_payout із gross/fee/feePctТекст collective-order: locales/*/modules/opportunities.json → collectiveJarPayoutNote.
Donation mode (treasury SPL) — live-шлях. Escrow contribute потребує: deploy програми → встановити NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID → підключити IDL client → зберігати on_chain { pool_pda, vault_ata } для кожного jar. Не документуйте escrow як live у production.
| Var | Використання |
|---|---|
SOLANA_RPC_URL | Chain RPC |
SOLANA_TREASURY_PRIVATE_KEY | Native внесок + виплата builder |
NEXT_PUBLIC_PUBLIC_POOL_PROGRAM_ID / PUBLIC_POOL_PROGRAM_ID | Гейт escrow (необов’язково; ще немає в env.local.template) |
PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR | Необов’язкове перевизначення PSP для призначення |
| Standard WFP / Stripe / PayPal secrets | Ті самі webhooks Conductor, що й для інших призначень |
public_pools, public_pool_signals, public_pool_contributions (ізолюються за clone через getPublicPoolConfig().cloneId).
Домен володіє коштами; чат володіє знімком dao_jar. Після зміни підсумків завжди викликайте refreshOpenDaoJarMessages. Scorecard: AI-CONTEXT concepts/chat-interactive-type-debt.json — Tier A CLOSED; TD-MONEY-01/02 CLOSED; TD-MONEY-03 PARTIAL.
Поглиблення: типи conductor, ledger і диспетчер webhook.
// features/public-pools/lib/public-pool-desk-fx.ts
// nativeUi = fiatMajor / nativePerMainCurrency
// nativePerMainCurrency from getNativeTokenPerMainCurrencyRate() — same SSOT as Token Desk
// features/public-pools/lib/public-pool-escrow-gate.ts
isPublicPoolEscrowDeployed() // true only when PROGRAM_ID env is set