web/docs/app-channel-spec.md

1.7 KiB

App Channel Communication Spec

Principle

Member communication is delivered through EDUT app channels after wallet sign-in.

Why

  1. Avoids email deliverability and spam filtering constraints.
  2. Avoids SMS compliance overhead.
  3. Keeps communication tied to wallet-authenticated entitlements.

Channel Model

  1. Membership mint unlocks app download.
  2. App sign-in with wallet activates member channel.
  3. Push/in-app notifications are scoped to member ownership state.
  4. Web never becomes a long-term broadcast channel once membership is active.

Notification Classes

  1. Offer availability relevant to owned memberships/entitlements.
  2. License activation and entitlement state updates.
  3. Platform updates and required migration actions.
  4. Publisher updates for offers a member owns.
  5. Membership policy changes that affect purchase or activation behavior.

Gate Rule

No active membership -> no app access channel.

Deterministic Delivery Rules

  1. Notification eligibility is computed from wallet-authenticated entitlement state.
  2. Delivery payloads must include deterministic event ids for dedupe and audit.
  3. Membership revocation/suspension immediately suppresses member-channel delivery.
  4. No marketing list fan-out disconnected from entitlement state.
  5. Event polling inbox is canonical; push transport is optional acceleration.

Contract References

  1. docs/api/member-channel.openapi.yaml
  2. docs/api/examples/member-channel.examples.md
  3. docs/handoff/member-channel-backend-checklist.md
  4. docs/conformance/member-channel-vectors.md

Non-Goals

  1. Marketing blast lists detached from wallet state.
  2. SMS-first member notification flows.
  3. Email-first member notification dependency.