diff --git a/README.md b/README.md index 81422f9..11d8287 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Public-facing EDUT web surfaces and deployment specs. ```text public/ index.html + store/index.html privacy/index.html terms/index.html translations/ @@ -34,6 +35,10 @@ docs/ membership-platform-interfaces.md conformance/ membership-gating-vectors.md + deployment/ + README.md + chain-config.template.json + contract-addresses.template.json schemas/ offer.v1.schema.json entitlement.v1.schema.json diff --git a/docs/deployment/README.md b/docs/deployment/README.md new file mode 100644 index 0000000..b49f427 --- /dev/null +++ b/docs/deployment/README.md @@ -0,0 +1,23 @@ +# Deployment Templates + +These templates are deployment-time placeholders for membership-gated commerce. + +## Files + +1. `chain-config.template.json` +- Network and quote policy defaults. + +2. `contract-addresses.template.json` +- Canonical contract and treasury addresses. + +## Usage + +1. Copy templates to environment-specific files. +2. Fill contract addresses only after deployment finalization. +3. Keep config under change control with signed release notes. + +## Required Invariants + +1. Chain ID must match API allowlist. +2. Membership contract address must match quote/confirm backend configuration. +3. Treasury wallet must be explicit and audited. diff --git a/docs/deployment/chain-config.template.json b/docs/deployment/chain-config.template.json new file mode 100644 index 0000000..c7e25b6 --- /dev/null +++ b/docs/deployment/chain-config.template.json @@ -0,0 +1,20 @@ +{ + "network": { + "name": "base-mainnet", + "chain_id": 8453, + "rpc_urls": [ + "https://mainnet.base.org" + ], + "explorer_base_url": "https://basescan.org" + }, + "quote_policy": { + "default_currency": "USDC", + "minimum_floor_usd": "5.00", + "safety_multiplier": "1.5", + "quote_ttl_seconds": 300 + }, + "allowed_origins": [ + "https://edut.ai", + "https://edut.dev" + ] +} diff --git a/docs/deployment/contract-addresses.template.json b/docs/deployment/contract-addresses.template.json new file mode 100644 index 0000000..610137c --- /dev/null +++ b/docs/deployment/contract-addresses.template.json @@ -0,0 +1,8 @@ +{ + "membership_contract": "0x0000000000000000000000000000000000000000", + "offer_registry_contract": "0x0000000000000000000000000000000000000000", + "entitlement_contract": "0x0000000000000000000000000000000000000000", + "treasury_wallet": "0x0000000000000000000000000000000000000000", + "usdc_contract": "0x0000000000000000000000000000000000000000", + "version": "v1" +} diff --git a/docs/roadmap-status.md b/docs/roadmap-status.md index 7f5505f..83afdb7 100644 --- a/docs/roadmap-status.md +++ b/docs/roadmap-status.md @@ -36,8 +36,8 @@ Implemented now: Remaining in this repo: -1. Add static marketplace skeleton page showing membership-gated checkout states. -2. Add deployment-ready docs for contract addresses and chain/network configuration. +1. Build live store behavior on top of the static skeleton once checkout APIs are available. +2. Replace deployment templates with real contract addresses after chain deployment. Cross-repo dependencies (kernel/backend/contracts): diff --git a/public/store/index.html b/public/store/index.html new file mode 100644 index 0000000..084d804 --- /dev/null +++ b/public/store/index.html @@ -0,0 +1,133 @@ + + + + + +EDUT Store Preview + + + + + +
+ ← Back +

EDUT Store

+

Membership-gated checkout states (preview skeleton)

+ +
+
+

State A

+

Wallet connected, no membership

+

Checkout is blocked. User is prompted to mint membership first.

+ membership required +
+ +
+

State B

+

Membership active

+

Offers can be quoted and purchased. Entitlement mint becomes available.

+ checkout enabled +
+ +
+

State C

+

Membership suspended or revoked

+

Checkout and activation both fail closed until state returns to active.

+ fail-closed +
+
+ +
+

Offer Skeleton

+

EDUT CRM Pro

+

Price: 199.00 USDC

+

Policy: member-only, workspace-bound, non-transferable

+

Action: membership check -> quote -> wallet confirm -> entitlement receipt

+
+ +

This page is a static contract between UX and policy: membership gates purchasing; entitlement gates runtime.

+
+ +