SMS Consent & Opt-In Evidence
Last updated: August 21, 2026 · Evidence last verified: 2026-08-21
Reviewer: start here
This is the single opt-in evidence page for the G8 Events messaging program. Its canonical URL is https://www.g8events.com/sms-consent. It is public and requires no login, no account, and no contact with us.
Below are all five live consent paths, each with the exact URL, the exact disclosure text shown to the user, and hosted screenshots of the real screen. Two paths sit behind sign-in; for those, the screenshots are the proof, so you are never asked to create an account. A sixth entry documents a consent-capable API that has no shipped user surface and is therefore not an active opt-in path.
- 1. Phone sign-in (one-time passcode) — public
- 2. Guest checkout (ticket purchase) — public
- 3. Sold-out event waitlist — public
- 4. Profile completion — account required, hosted screenshot below
- 5. SMS preference center — account required, hosted screenshot below
- 6. Mobile app text preferences — not an active opt-in path (no shipped user surface)
An evidence summary table and a machine-readable JSON manifest (with the SHA-256 of every screenshot) are at the bottom of this page.
About this page
This page describes every way a person can give SMS consent to G8 Events (G8 Events LLC), the exact disclosure shown at each path, and how to verify each one. It exists so carriers and messaging reviewers can independently verify our consent flows.
This page documents our consent paths; it does not itself collect consent, phone numbers, or any personal information.
Every screenshot below is a capture of the exact production component named beneath it, rendered with synthetic fixture data (a fictional 555-01XX phone number and an example.com address). No real customer, order, ticket, or account data appears in any image.
Program disclosures
The following disclosures apply to every G8 Events text message and are shown at each opt-in path below:
- Message frequency varies.
- Msg & data rates may apply.
- Reply STOP to opt out, HELP for help.
- Marketing SMS consent is optional, is a separate and explicit opt-in, is unchecked by default, and is not a condition of purchase.
- See our Terms & Conditions and Privacy Policy.
1. Phone sign-in (one-time passcode)
Public — https://www.g8events.com/signin · Consent API: no consent record; sends a verification OTP only
Anyone can sign in with a phone number. The one-time passcode verifies identity only; it does not create marketing consent.
- Open https://www.g8events.com/signin (public, no login required).
- The phone number field and the Continue with Phone button appear in the sign-in card.
- The disclosure below is rendered directly beneath the button, before any code can be sent.
By continuing with your phone number, you agree to receive one-time passcode (OTP) text messages from G8 Events to verify your identity at sign-in. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help. This does not sign you up for marketing messages.

app/signin/page.tsxURL: https://www.g8events.com/sms-consent-evidence/signin-otp-desktop.pngSHA-256: 7f083eb085cb9244eef77b1c16df7be5459a202f21f63d670cc3e64b7bbc3c11 · 217,317 bytes
app/signin/page.tsxURL: https://www.g8events.com/sms-consent-evidence/signin-otp-mobile.pngSHA-256: c2683563c2e2169f5ac992081a1473c0087f3ef4f12557f0d90b9c1d6604f384 · 244,095 bytes2. Guest checkout (ticket purchase)
Public — start at https://www.g8events.com/events · Consent API: POST /api/checkout
Entering a phone number authorizes transactional SMS for that order, with the disclosure shown adjacent to the phone field. A separate, unchecked marketing checkbox appears below it; marketing consent is recorded only if the buyer explicitly checks it, and the checkbox states that consent is not a condition of purchase.
- Open https://www.g8events.com/events (public catalog, no login required).
- Choose any currently listed event and select a ticket quantity; the order panel opens.
- The phone field shows the transactional disclosure beneath it; the separate marketing checkbox below it is unchecked by default.
By providing your phone number, you agree to receive transactional SMS from G8 Events — ticket delivery, order confirmations, and event-critical updates. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Text me early access to G8 event presales, VIP upgrades & exclusive offers Msg & data rates may apply. Reply STOP to cancel, HELP for help. ~4 msgs/mo. Consent is not a condition of purchase.
Note: every event listed publicly right now is an age-gated nightlife event. Rather than deep-link one as consent evidence, the hosted screenshot below shows the exact production order panel rendered with synthetic fixture data. The live catalog URL above still lets you walk the flow yourself.

src/components/event-page/order-summary.tsxURL: https://www.g8events.com/sms-consent-evidence/guest-checkout-desktop.pngSHA-256: e013902f9986d5059c3f73c5ca723f7b0cd8da38b77156d9ad90ec71dbd4b56c · 601,472 bytes
src/components/event-page/order-summary.tsxURL: https://www.g8events.com/sms-consent-evidence/guest-checkout-mobile.pngSHA-256: 0a58d4f28487d10937f60e2492568e689de325e898eac20caf3f43ae690ac613 · 738,182 bytes3. Sold-out event waitlist
Public — from any sold-out listing at https://www.g8events.com/events · Consent API: POST /api/waitlist
The phone field is optional; providing a number opts in to SMS ticket-availability alerts for that event only, with this disclosure shown directly under the phone field.
- Open https://www.g8events.com/events (public catalog, no login required).
- Choose a sold-out event and tap Join Waitlist.
- The optional phone field shows the event-specific SMS alert disclosure beneath it.
By providing your phone number, you agree to receive SMS ticket-availability alerts from G8 Events for this event. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Note: as above, current public listings are age-gated nightlife events, so the hosted screenshot below shows the exact production waitlist form rendered with synthetic fixture data rather than deep-linking a listing.

src/components/waitlist-button.tsxURL: https://www.g8events.com/sms-consent-evidence/waitlist-desktop.pngSHA-256: 69e923cd9a9c87f6a43bd4c90d4e9546c61d2b5bb5ef87fcd7893cee0b0e1e27 · 358,776 bytes
src/components/waitlist-button.tsxURL: https://www.g8events.com/sms-consent-evidence/waitlist-mobile.pngSHA-256: bf75a2b33b9eb2266315272f57442033578fcb47bf03a52351b46b19bc4bce0c · 452,662 bytes4. Profile completion (signed in)
Account required — hosted screenshot below — https://www.g8events.com/complete-profile · Consent API: POST /api/profile/complete
After signing in at /signin, new users complete their profile at /complete-profile. Entering a phone number records transactional consent with the transactional disclosure shown adjacent to the field. Two separate, unchecked checkboxes offer optional event-alert SMS and optional marketing SMS. The exact disclosures rendered on that page are reproduced here from the same shared copy the production page uses:
By providing your phone number, you agree to receive transactional SMS from G8 Events — ticket delivery, order confirmations, and event-critical updates. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Event Alerts: SMS updates from G8 Events about events you are attending, including schedule changes, venue updates, and day-of reminders. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Marketing & Promotions: recurring marketing SMS from G8 Events — new event announcements, presales, and exclusive offers. Marketing consent is optional and is not a condition of purchase. Message frequency varies. Msg & data rates may apply. Reply STOP to cancel, HELP for help.
Account required — hosted screenshot below. You do not need to sign in or contact us: the images below are the evidence for this path, served publicly from this domain.

src/components/profile-completion-form.tsxURL: https://www.g8events.com/sms-consent-evidence/profile-completion-desktop.pngSHA-256: 4bb2217adc5bf9adbe709c21c42b5f80cb197368d89cb0c7f76d4263c77166f2 · 742,167 bytes
src/components/profile-completion-form.tsxURL: https://www.g8events.com/sms-consent-evidence/profile-completion-mobile.pngSHA-256: 208c345733217ab2b46b329e087af74adcf75cfd0605c55b0b489ae242a703ab · 836,764 bytes5. SMS preference center (signed in)
Account required — hosted screenshot below — https://www.g8events.com/profile/sms-preferences · Consent API: PATCH /api/preferences/sms
Signed-in users can enable or disable Event Alerts and Marketing & Promotions at /profile/sms-preferences. Each toggle renders the user's recorded server state and can never create consent without an explicit tap; for a new number every toggleable scope is off. Each toggle shows its full disclosure directly beneath it, reproduced here from the same shared copy the production page uses:
Event Alerts: SMS updates from G8 Events about events you are attending, including schedule changes, venue updates, and day-of reminders. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Marketing & Promotions: recurring marketing SMS from G8 Events — new event announcements, presales, and exclusive offers. Marketing consent is optional and is not a condition of purchase. Message frequency varies. Msg & data rates may apply. Reply STOP to cancel, HELP for help.
If a number is opted out at the carrier level (STOP), the toggles are disabled until the user replies START to re-enable SMS. The second pair of screenshots below shows exactly that suppressed state.
Account required — hosted screenshot below. You do not need to sign in or contact us: the images below are the evidence for this path, served publicly from this domain.

app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-desktop.pngSHA-256: 8016afd5cadc62002f500c1fb47fa8649679f097baaec681572efadd3509152f · 1,232,192 bytes
app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-mobile.pngSHA-256: 599db080756fa6a9744c447bd900b508db704a43d528a4925f644749367c318a · 958,043 bytes
app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-desktop.pngSHA-256: 9ba948568a61668ed87dbba1041827bd687e7b0f8fcf9d3584617a65877226e8 · 1,361,488 bytes
app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-mobile.pngSHA-256: 1fbd5e0139af3080800506622c66d505343a79fb3ef955753f78bb71555a6d8a · 1,011,846 bytes6. Mobile app text preferences — not an active opt-in path
No shipped user surface — nothing to open · Consent API: PATCH /api/mobile/v1/me
Our mobile API exposes an endpoint that can accept an SMS preference update, so we list it here for inventory completeness. It is not an active opt-in path: no shipped user surface reaches it, and no consent has been or can be collected through the app as it ships today. We are not presenting a development-only screen as evidence of a flow users cannot reach.
The reason is recorded verbatim in the unavailableReason field of the machine-readable manifest below, and is shown here:
Not an active opt-in path — no hosted screenshot exists
The mobile API can accept an SMS preference update, so it is listed here for inventory completeness. The shipped iOS source was audited at immutable origin/main commit 4a67cb8caaac988df80c8264133d215fb463fac9: both profile entry points and the SMSPrefsScreen destination are compiled out of release builds by #if DEBUG guards, while the production runtime policy sets supportsSMSPreferences=false and showsSMSSettings=false; ProductionTruthfulnessTests pins both values. No consent can originate through the app as shipped, so there is no honest live mobile opt-in screenshot to host, and we will not present a debug-only screen as carrier evidence. If a production surface ships, this inventory must be updated with its own hosted capture before it is claimed as an opt-in path.
- g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Features/Attendee/AProfileScreen.swift lines 43-47, 150-163, and 291-300 (#if DEBUG entry-point and destination guards)
- g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Shared/Services/G8Environment.swift lines 90-100 (production supportsSMSPreferences=false; showsSMSSettings=false)
- g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8EventsTests/ProductionTruthfulnessTests.swift lines 12 and 58-62 (production flags pinned false)
Evidence summary
The same facts as the machine-readable manifest, in human-readable form. Every hosted image URL is public and its SHA-256 is printed beneath the image in each section above.
| Scenario | Live route | Consent scope | Default state | Disclosure version | Hosted evidence | Source component | Verified |
|---|---|---|---|---|---|---|---|
| Phone sign-in (one-time passcode) | https://www.g8events.com/signin | otp-only (identity verification; no marketing consent created) | No checkboxes; the OTP disclosure is displayed adjacent to the phone field before a code can be requested. | 2026-08-20 |
| app/signin/page.tsx | 2026-08-21 |
| Guest checkout (ticket purchase) | https://www.g8events.com/events | transactional (ticket delivery, order confirmations, event-critical updates); separate optional marketing | The marketing SMS checkbox is unchecked (default off); marketing consent is recorded only on an explicit check. | 2026-08-20 |
| src/components/event-page/order-summary.tsx | 2026-08-21 |
| Sold-out event waitlist | https://www.g8events.com/events | event-specific ticket-availability SMS alerts (phone field optional) | The phone field is optional and empty by default; no SMS consent is created without a voluntarily entered number. | 2026-08-20 |
| src/components/waitlist-button.tsx | 2026-08-21 |
| Profile completion (signed in) | https://www.g8events.com/complete-profile | transactional; separate optional event-alert and marketing scopes | The event-alert and marketing SMS checkboxes are both unchecked (default off). | 2026-08-20 |
| src/components/profile-completion-form.tsx | 2026-08-21 |
| SMS preference center (signed in) | https://www.g8events.com/profile/sms-preferences | event_alert and marketing toggles; carrier-level STOP suppression honored | Toggles render the recorded server state only; for a new number every toggleable scope is off, and a carrier-level STOP leaves them disabled by default. | 2026-08-20 |
| app/profile/sms-preferences/sms-preferences-form.tsx | 2026-08-21 |
| Mobile app text preferences — API exists, no shipped user surface | None — no shipped app screen reaches this endpoint | event_alert and marketing scopes; would write the same consent records as the web preference center | Not applicable — no user-facing surface is shipped, so no consent can originate here today. | 2026-08-20 | None — no shipped user surface | app/api/mobile/v1/me/route.ts | 2026-08-21 |
Machine-readable manifest
Embedded in this page as <script type="application/json" id="sms-consent-evidence-manifest">. Each entry carries the scenario id, live route, consent scope, default state, disclosure version, the exact production source component, and every hosted asset URL with its sha256 and byte size.
{
"program": "G8 Events (G8 Events LLC) A2P 10DLC messaging",
"page": "https://www.g8events.com/sms-consent",
"lastVerified": "2026-08-21",
"assetBaseUrl": "https://www.g8events.com/sms-consent-evidence",
"scenarios": [
{
"id": "signin-otp",
"title": "Phone sign-in (one-time passcode)",
"access": "public",
"liveRoute": "https://www.g8events.com/signin",
"consentApi": null,
"consentScope": "otp-only (identity verification; no marketing consent created)",
"defaultState": "No checkboxes; the OTP disclosure is displayed adjacent to the phone field before a code can be requested.",
"disclosureVersion": "2026-08-20",
"sourceComponent": "app/signin/page.tsx",
"reviewedSourceEvidence": null,
"steps": [
"Open https://www.g8events.com/signin (public, no login required).",
"The phone number field and the Continue with Phone button appear in the sign-in card.",
"The OTP disclosure is rendered directly beneath the button, before any code can be sent."
],
"unavailableReason": null,
"assets": [
{
"url": "https://www.g8events.com/sms-consent-evidence/signin-otp-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "7f083eb085cb9244eef77b1c16df7be5459a202f21f63d670cc3e64b7bbc3c11",
"bytes": 217317
},
{
"url": "https://www.g8events.com/sms-consent-evidence/signin-otp-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "c2683563c2e2169f5ac992081a1473c0087f3ef4f12557f0d90b9c1d6604f384",
"bytes": 244095
}
]
},
{
"id": "guest-checkout",
"title": "Guest checkout (ticket purchase)",
"access": "public",
"liveRoute": "https://www.g8events.com/events",
"consentApi": "POST /api/checkout",
"consentScope": "transactional (ticket delivery, order confirmations, event-critical updates); separate optional marketing",
"defaultState": "The marketing SMS checkbox is unchecked (default off); marketing consent is recorded only on an explicit check.",
"disclosureVersion": "2026-08-20",
"sourceComponent": "src/components/event-page/order-summary.tsx",
"reviewedSourceEvidence": null,
"steps": [
"Open https://www.g8events.com/events (public catalog, no login required).",
"Choose any currently listed event and select a ticket quantity; the order panel opens.",
"The phone field shows the transactional disclosure beneath it; the separate marketing checkbox below it is unchecked by default."
],
"unavailableReason": null,
"assets": [
{
"url": "https://www.g8events.com/sms-consent-evidence/guest-checkout-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "e013902f9986d5059c3f73c5ca723f7b0cd8da38b77156d9ad90ec71dbd4b56c",
"bytes": 601472
},
{
"url": "https://www.g8events.com/sms-consent-evidence/guest-checkout-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "0a58d4f28487d10937f60e2492568e689de325e898eac20caf3f43ae690ac613",
"bytes": 738182
}
]
},
{
"id": "waitlist",
"title": "Sold-out event waitlist",
"access": "public",
"liveRoute": "https://www.g8events.com/events",
"consentApi": "POST /api/waitlist",
"consentScope": "event-specific ticket-availability SMS alerts (phone field optional)",
"defaultState": "The phone field is optional and empty by default; no SMS consent is created without a voluntarily entered number.",
"disclosureVersion": "2026-08-20",
"sourceComponent": "src/components/waitlist-button.tsx",
"reviewedSourceEvidence": null,
"steps": [
"Open https://www.g8events.com/events (public catalog, no login required).",
"Choose a sold-out event and tap Join Waitlist.",
"The optional phone field shows the event-specific SMS alert disclosure beneath it."
],
"unavailableReason": null,
"assets": [
{
"url": "https://www.g8events.com/sms-consent-evidence/waitlist-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "69e923cd9a9c87f6a43bd4c90d4e9546c61d2b5bb5ef87fcd7893cee0b0e1e27",
"bytes": 358776
},
{
"url": "https://www.g8events.com/sms-consent-evidence/waitlist-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "bf75a2b33b9eb2266315272f57442033578fcb47bf03a52351b46b19bc4bce0c",
"bytes": 452662
}
]
},
{
"id": "profile-completion",
"title": "Profile completion (signed in)",
"access": "account",
"liveRoute": "https://www.g8events.com/complete-profile",
"consentApi": "POST /api/profile/complete",
"consentScope": "transactional; separate optional event-alert and marketing scopes",
"defaultState": "The event-alert and marketing SMS checkboxes are both unchecked (default off).",
"disclosureVersion": "2026-08-20",
"sourceComponent": "src/components/profile-completion-form.tsx",
"reviewedSourceEvidence": null,
"steps": null,
"unavailableReason": null,
"assets": [
{
"url": "https://www.g8events.com/sms-consent-evidence/profile-completion-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "4bb2217adc5bf9adbe709c21c42b5f80cb197368d89cb0c7f76d4263c77166f2",
"bytes": 742167
},
{
"url": "https://www.g8events.com/sms-consent-evidence/profile-completion-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "208c345733217ab2b46b329e087af74adcf75cfd0605c55b0b489ae242a703ab",
"bytes": 836764
}
]
},
{
"id": "preference-center",
"title": "SMS preference center (signed in)",
"access": "account",
"liveRoute": "https://www.g8events.com/profile/sms-preferences",
"consentApi": "PATCH /api/preferences/sms",
"consentScope": "event_alert and marketing toggles; carrier-level STOP suppression honored",
"defaultState": "Toggles render the recorded server state only; for a new number every toggleable scope is off, and a carrier-level STOP leaves them disabled by default.",
"disclosureVersion": "2026-08-20",
"sourceComponent": "app/profile/sms-preferences/sms-preferences-form.tsx",
"reviewedSourceEvidence": null,
"steps": null,
"unavailableReason": null,
"assets": [
{
"url": "https://www.g8events.com/sms-consent-evidence/preference-center-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "8016afd5cadc62002f500c1fb47fa8649679f097baaec681572efadd3509152f",
"bytes": 1232192
},
{
"url": "https://www.g8events.com/sms-consent-evidence/preference-center-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "599db080756fa6a9744c447bd900b508db704a43d528a4925f644749367c318a",
"bytes": 958043
},
{
"url": "https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-desktop.png",
"viewport": "desktop",
"width": 1280,
"height": 900,
"sha256": "9ba948568a61668ed87dbba1041827bd687e7b0f8fcf9d3584617a65877226e8",
"bytes": 1361488
},
{
"url": "https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-mobile.png",
"viewport": "mobile",
"width": 390,
"height": 844,
"sha256": "1fbd5e0139af3080800506622c66d505343a79fb3ef955753f78bb71555a6d8a",
"bytes": 1011846
}
]
},
{
"id": "mobile-app",
"title": "Mobile app text preferences — API exists, no shipped user surface",
"access": "not-live",
"liveRoute": "None — no shipped app screen reaches this endpoint",
"consentApi": "PATCH /api/mobile/v1/me",
"consentScope": "event_alert and marketing scopes; would write the same consent records as the web preference center",
"defaultState": "Not applicable — no user-facing surface is shipped, so no consent can originate here today.",
"disclosureVersion": "2026-08-20",
"sourceComponent": "app/api/mobile/v1/me/route.ts",
"reviewedSourceEvidence": [
"g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Features/Attendee/AProfileScreen.swift lines 43-47, 150-163, and 291-300 (#if DEBUG entry-point and destination guards)",
"g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Shared/Services/G8Environment.swift lines 90-100 (production supportsSMSPreferences=false; showsSMSSettings=false)",
"g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8EventsTests/ProductionTruthfulnessTests.swift lines 12 and 58-62 (production flags pinned false)"
],
"steps": null,
"unavailableReason": "The mobile API can accept an SMS preference update, so it is listed here for inventory completeness. The shipped iOS source was audited at immutable origin/main commit 4a67cb8caaac988df80c8264133d215fb463fac9: both profile entry points and the SMSPrefsScreen destination are compiled out of release builds by #if DEBUG guards, while the production runtime policy sets supportsSMSPreferences=false and showsSMSSettings=false; ProductionTruthfulnessTests pins both values. No consent can originate through the app as shipped, so there is no honest live mobile opt-in screenshot to host, and we will not present a debug-only screen as carrier evidence. If a production surface ships, this inventory must be updated with its own hosted capture before it is claimed as an opt-in path.",
"assets": []
}
]
}Opt-out and help
- Reply STOP to any G8 Events message to opt out of all SMS at the carrier level. Reply START to re-enable. Keyword handling is processed at
/api/sms/webhook. - Reply HELP for help, or contact hello@g8events.com.
- Signed-in users can also manage Event Alert and Marketing preferences at /profile/sms-preferences.