# Ore — Terms of Use (EULA) Note
Status: launch deliverable (`terms-eula`). Scope: the licensed-application end-user license
agreement (EULA) required for the Ore iOS app and its auto-renewable subscription.
This note resolves **which EULA Ore uses** and **where it must be linked**, and supplies a
custom EULA draft as the alternative. It is grounded in the real app: Ore is an AI nutrition
logging app (Sign in with Apple, text/voice/photo meal logging with model-estimated calories and
macros you can correct), shipping **trial-gated with no free tier** behind a single monthly
auto-renewable subscription. Account deletion is already implemented
(`DELETE /v1/ios/account` in `src/meal-api/app.ts`, with Apple token revocation).
---
## 1. Decision: use Apple's standard EULA
**Recommendation: adopt Apple's standard Licensed Application End User License Agreement
(the "Apple Standard EULA").** It is legally sufficient for Ore at launch, requires no custom
drafting or legal review, and is the default Apple applies to every app that does not supply its
own. Ore's app does nothing that the standard EULA fails to cover:
- It is a normal sandboxed iOS app (no kernel/system extension, no sideloaded payload).
- Subscriptions are sold **exclusively through Apple In-App Purchase** (StoreKit 2,
product id `sage.pro.monthly`), so Apple's billing/cancellation/refund terms govern payment —
Ore never takes a card number.
- It transmits meal text/audio/images to a server-side model for estimation but **does not store
image bytes** and does not resell user data, so no special data-licensing clause is needed
beyond what the Privacy Policy covers.
Apple Standard EULA URL (link this verbatim):
> https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
Operationally, "using the Apple Standard EULA" means: in **App Store Connect → App →
(Version) → App Information → License Agreement**, leave the **Apple Standard License Agreement**
selected (do **not** upload a custom EULA). You then link the URL above from the paywall and
Settings (see §3).
A custom EULA (§4) is **optional** and only worth the legal cost if Ore later adds terms the
standard EULA omits — e.g. an explicit "AI estimates are not medical or dietary advice"
disclaimer or a contractual fair-use cap. For v1 launch, the standard EULA is the right call and
the AI/medical disclaimer can live in the Privacy Policy / in-app copy instead.
---
## 2. Why this is required (auto-renewable subscriptions)
App Store Review Guideline **3.1.2** and the **Schedule 2 / Paid Applications Agreement** require
that any app selling an **auto-renewable subscription** present, *within the app*, a **functional
link to the EULA** alongside a functional link to the **Privacy Policy**, plus clear subscription
disclosure. Because Ore is trial-gated (the paywall is the gate to all logging) and sells one
auto-renewable product, these links are **submission blockers** — a missing EULA link on the
paywall is a common 3.1.2 rejection.
The same Guideline 3.1.2 disclosure set (title, length, price, what the trial converts to) is a
separate paywall-copy requirement; this note covers only the **EULA link** obligation. See the
App Store submission checklist (`docs/app-store-submission-checklist.md`) for the full 3.1.2 copy
list and the Privacy Policy URL requirement.
---
## 3. Required link placements (both are mandatory)
The EULA link (Apple Standard EULA URL from §1) **must appear in both** of these surfaces. Apple
checks the paywall placement specifically.
1. **Paywall** — `PaywallView` (the `.paywall` phase in `ios/Ore/App/AppState.swift`; built in
WS-F). Show, near the subscribe/start-trial button and beside the existing Privacy Policy and
Restore Purchases controls, a tappable **"Terms of Use (EULA)"** link opening the URL above
(in-app `SFSafariViewController` or external Safari). This is the placement most often cited in
3.1.2 rejections, since the paywall is where the purchase is made.
2. **Settings** — the subscription/legal section of the iOS Settings screen (the same section that
holds **Manage Subscription** (`.manageSubscriptionsSheet`), **Restore Purchases**, Privacy
Policy, and **Delete Account**). Add a persistent **"Terms of Use (EULA)"** row opening the
same URL, so the EULA stays reachable after purchase.
Implementation notes for whoever builds the paywall (out of scope for this deliverable — do not
edit code here):
- A single shared constant for the URL (paywall + Settings reference one source of truth).
- Open in `SFSafariViewController`; do not require leaving the app.
- The `locked` phase (lapsed access) reuses `PaywallView`, so it inherits the link automatically.
- SwiftUI sheets do not inherit environment objects — if the link is presented inside a sheet,
follow the project convention and re-inject as needed.
---
## 4. Optional custom EULA draft (alternative to §1)
Use this **only** if the team decides to supersede the Apple Standard EULA. Apple requires a
custom EULA to **meet or exceed** the minimum terms of the standard EULA and to include Apple's
required third-party-beneficiary clause. If adopted, upload this in App Store Connect → App
Information → License Agreement, and link **this** document's public URL (not Apple's) from the
paywall and Settings. Have counsel review before use. Replace every `[BRACKET]` placeholder.
---
### Ore End User License Agreement
**Last updated: [DATE]**
This End User License Agreement ("Agreement") is between you and **[LEGAL ENTITY NAME]** ("we,"
"us," or the "Company") and governs your use of the **Ore** mobile application and related
services (the "App"). By downloading, installing, or using the App, you agree to this Agreement.
If you do not agree, do not use the App.
**1. License.** We grant you a limited, non-exclusive, non-transferable, revocable license to use
the App on any Apple-branded device that you own or control, as permitted by the Apple Media
Services Terms and Conditions ("Usage Rules"). This license does not allow you to use the App on a
device you do not own or control, and you may not distribute or make the App available over a
network where it could be used by multiple devices at once.
**2. Subscriptions, free trial, and billing.** Full access to Ore requires an auto-renewable
subscription, **Ore Pro (monthly)**, sold through Apple In-App Purchase at the price shown in the
App at purchase ([currently $12.99/month, subject to change]). New subscribers may be offered a
**7-day free trial**; unless you cancel at least 24 hours before the trial ends, the subscription
automatically converts to a paid monthly subscription and your Apple ID is charged. The
subscription **renews automatically** each month until cancelled. You manage or cancel your
subscription in your Apple ID account settings; cancellation takes effect at the end of the
current billing period. **All payment, billing, and refunds are handled by Apple** — we do not
process payments and cannot issue refunds directly. There is no free usage tier: without an active
subscription or trial, meal-logging features are unavailable.
**3. AI estimates are not medical or dietary advice.** Ore uses AI models to **estimate**
calories and macronutrients from your text, voice, and photo inputs. **These are estimates, not
exact measurements, and may be inaccurate.** Ore is a wellness and informational tool only and is
**not a medical device** and does **not provide medical, nutritional, or dietary advice**. Do not
rely on Ore for medical decisions. Consult a qualified healthcare professional before making
changes to your diet, especially if you have a medical condition, allergy, eating disorder, or are
pregnant or nursing. You are responsible for verifying any information before acting on it.
**4. Your content.** You retain ownership of the meal descriptions, audio, and images you submit.
You grant us a license to process that content to provide the App's features (including sending it
to AI models for estimation). **We do not store the image bytes of photos you submit for meal
estimation.** Our handling of your data is described in our Privacy Policy, incorporated by
reference.
**5. Acceptable use.** You agree not to reverse-engineer, decompile, or disassemble the App except
as permitted by law; not to use the App to violate any law or third-party right; and not to abuse
the service (including automated, excessive, or fraudulent use beyond ordinary personal logging).
**6. Account and deletion.** Ore uses Sign in with Apple. You may delete your account and
associated data from within the App at any time, which terminates this license; deletion does not
by itself cancel an active Apple subscription, which you must cancel through Apple.
**7. Disclaimers.** THE APP IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
NON-INFRINGEMENT, TO THE MAXIMUM EXTENT PERMITTED BY LAW.
**8. Limitation of liability.** TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE WILL NOT BE LIABLE FOR
ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS ARISING FROM
YOUR RELIANCE ON THE APP'S ESTIMATES. OUR TOTAL LIABILITY WILL NOT EXCEED THE AMOUNT YOU PAID FOR
THE SUBSCRIPTION IN THE TWELVE MONTHS BEFORE THE CLAIM.
**9. Apple-specific terms (required).** You and we acknowledge that this Agreement is between you
and the Company only, **not with Apple**, and that **Apple is not responsible for the App or its
content**. Apple has **no obligation to furnish any maintenance or support** for the App. In the
event the App fails to conform to any applicable warranty, you may notify Apple, and Apple will
refund the purchase price (if any) for the App; to the maximum extent permitted by law, Apple has
**no other warranty obligation** with respect to the App. Apple is **not responsible** for
addressing any claims by you or any third party relating to the App, including product-liability,
legal/regulatory, and intellectual-property claims. Apple and its subsidiaries are
**third-party beneficiaries** of this Agreement and, upon your acceptance, have the right to
enforce it against you. You represent that you are not located in a U.S.-embargoed country or on a
U.S. prohibited-parties list, and you will comply with applicable third-party terms (e.g., your
wireless carrier's) when using the App.
**10. Termination.** This license is effective until terminated. It terminates automatically if
you breach it or delete your account. We may suspend or terminate access for misuse.
**11. Changes.** We may update this Agreement; continued use after an update constitutes
acceptance. Material changes will be surfaced in the App.
**12. Governing law.** This Agreement is governed by the laws of **[STATE/COUNTRY]**, excluding
its conflict-of-laws rules, except where superseded by the Apple Usage Rules.
**13. Contact.** Questions about this Agreement: **[SUPPORT EMAIL]**.
---
## 5. Launch action items
- [ ] In App Store Connect, **leave the Apple Standard License Agreement selected** (do not upload
a custom EULA) — adopts §1.
- [ ] Add the **Terms of Use (EULA)** link (Apple Standard EULA URL) to the **paywall** beside
Privacy Policy / Restore Purchases.
- [ ] Add the **Terms of Use (EULA)** link to the **Settings** legal/subscription section.
- [ ] Confirm the Privacy Policy URL is live and also linked from the paywall (separate
Guideline 3.1.2 requirement; tracked in the submission checklist).
- [ ] (Only if going custom) Fill the §4 placeholders, get legal review, host at a public URL, and
link **that** URL instead of Apple's in both surfaces and App Store Connect.