diff --git a/src/components/ageAssurance/AgeAssurancePrompt.tsx b/src/components/ageAssurance/AgeAssurancePrompt.tsx
new file mode 100644
index 0000000000..842409478b
--- /dev/null
+++ b/src/components/ageAssurance/AgeAssurancePrompt.tsx
@@ -0,0 +1,123 @@
+import {View} from 'react-native'
+import {msg, Trans} from '@lingui/macro'
+import {useLingui} from '@lingui/react'
+
+import {useAgeAssuranceContext} from '#/state/ageAssurance'
+import {atoms as a, select, useTheme, type ViewStyleProp} from '#/alf'
+import {Button, ButtonText} from '#/components/Button'
+import {Divider} from '#/components/Divider'
+import {Shield_Stroke2_Corner0_Rounded as Shield} from '#/components/icons/Shield'
+import {Text} from '#/components/Typography'
+
+export function AgeAssurancePrompt({style}: ViewStyleProp & {}) {
+ const t = useTheme()
+ const {_} = useLingui()
+ const {isAgeRestricted} = useAgeAssuranceContext()
+
+ return !isAgeRestricted ? null : (
+
+
+
+
+
+
+ Age Asurrance
+
+
+
+
+ You're currently accessing Bluesky from a location that by law
+ requires you to verify your age prior to accessing certain content and
+ features.
+
+
+
+
+
+
+ Verification takes only a few minutes
+
+
+
+
+
+
+ )
+}
diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx
index 6e3d58892b..9b28e637a9 100644
--- a/src/screens/Moderation/index.tsx
+++ b/src/screens/Moderation/index.tsx
@@ -23,6 +23,7 @@ import {isNonConfigurableModerationAuthority} from '#/state/session/additional-m
import {useSetMinimalShellMode} from '#/state/shell'
import {ViewHeader} from '#/view/com/util/ViewHeader'
import {atoms as a, useBreakpoints, useTheme, type ViewStyleProp} from '#/alf'
+import {AgeAssurancePrompt} from '#/components/ageAssurance/AgeAssurancePrompt'
import {Button, ButtonText} from '#/components/Button'
import * as Dialog from '#/components/Dialog'
import {BirthDateSettingsDialog} from '#/components/dialogs/BirthDateSettings'
@@ -308,6 +309,8 @@ export function ModerationScreenInner({
Content filters
+
+
{ageNotSet && (
<>
diff --git a/src/screens/Settings/Settings.tsx b/src/screens/Settings/Settings.tsx
index aaba0b4b5c..8631c26690 100644
--- a/src/screens/Settings/Settings.tsx
+++ b/src/screens/Settings/Settings.tsx
@@ -32,6 +32,7 @@ import * as Toast from '#/view/com/util/Toast'
import {UserAvatar} from '#/view/com/util/UserAvatar'
import * as SettingsList from '#/screens/Settings/components/SettingsList'
import {atoms as a, platform, tokens, useBreakpoints, useTheme} from '#/alf'
+import {AgeAssurancePrompt} from '#/components/ageAssurance/AgeAssurancePrompt'
import {AvatarStackWithFetch} from '#/components/AvatarStack'
import {useDialogControl} from '#/components/Dialog'
import {SwitchAccountDialog} from '#/components/dialogs/SwitchAccount'
@@ -96,6 +97,8 @@ export function SettingsScreen({}: Props) {
+
+