# Launcher Integration Contract Launcher integrates with EDUT web/backend contracts as follows: ## Required APIs 1. `POST /secret/wallet/intent` 2. `POST /secret/wallet/verify` 3. `POST /secret/membership/quote` 4. `POST /secret/membership/confirm` 5. `GET /secret/membership/status` 6. `GET /marketplace/offers` 7. `POST /marketplace/checkout/quote` 8. `POST /marketplace/checkout/confirm` 9. `GET /marketplace/entitlements` 10. `POST /governance/install/token` 11. `POST /governance/install/confirm` 12. `GET /governance/install/status` 13. `GET /member/channel/events` ## Wallet Session Contract 1. `POST /secret/wallet/verify` returns `session_token` and `session_expires_at`. 2. Launcher must attach session token on wallet-scoped calls using: - `Authorization: Bearer ` (preferred) - `X-Edut-Session: ` (compatibility) 3. Wallet change must clear cached session token before further calls. 4. Endpoints that require membership/admin authority can fail with: - `wallet_session_required` - `wallet_session_invalid` - `wallet_session_expired` - `wallet_session_mismatch` ## Deterministic Requirements 1. No runtime activation without entitlement proof. 2. All install packages verified by hash and signature. 3. Membership and entitlement unknown state fails closed. 4. Event inbox polling remains canonical even if push unavailable. 5. Identity assurance is evaluated independently from membership state. 6. Owner/admin launcher actions must require `identity_assurance_level=onramp_attested`. 7. Governance activation evidence must include signing authority class (`identity_human` vs delegated).