diff --git a/src/components/dms/MessageProfileButton.tsx b/src/components/dms/MessageProfileButton.tsx
new file mode 100644
index 0000000000..6f227de65a
--- /dev/null
+++ b/src/components/dms/MessageProfileButton.tsx
@@ -0,0 +1,39 @@
+import React from 'react'
+import {AppBskyActorDefs} from '@atproto/api'
+import {msg} from '@lingui/macro'
+import {useLingui} from '@lingui/react'
+
+import {useMaybeConvoForUser} from '#/state/queries/messages/get-convo-for-members'
+import {atoms as a, useTheme} from '#/alf'
+import {Message_Stroke2_Corner0_Rounded as Message} from '../icons/Message'
+import {Link} from '../Link'
+
+export function MessageProfileButton({
+ profile,
+}: {
+ profile: AppBskyActorDefs.ProfileView
+}) {
+ const {_} = useLingui()
+ const t = useTheme()
+
+ const {data: convoId} = useMaybeConvoForUser(profile.did)
+
+ if (!convoId) return null
+
+ return (
+
+
+
+ )
+}
diff --git a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
index 459bd0d958..e79b345cd3 100644
--- a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
+++ b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
@@ -128,7 +128,7 @@ let ProfileHeaderLabeler = ({
const onPressSubscribe = React.useCallback(
() =>
- requireAuth(async () => {
+ requireAuth(async (): Promise => {
if (!canSubscribe) {
cantSubscribePrompt.open()
return
@@ -197,7 +197,6 @@ let ProfileHeaderLabeler = ({
diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx
index f3f2a370da..66141e7826 100644
--- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx
+++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx
@@ -28,6 +28,7 @@ import {ProfileMenu} from '#/view/com/profile/ProfileMenu'
import * as Toast from '#/view/com/util/Toast'
import {atoms as a, useTheme} from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+import {MessageProfileButton} from '#/components/dms/MessageProfileButton'
import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
import * as Prompt from '#/components/Prompt'
@@ -156,7 +157,14 @@ let ProfileHeaderStandard = ({
style={[a.px_lg, a.pt_md, a.pb_sm]}
pointerEvents={isIOS ? 'auto' : 'box-none'}>
{isMe ? (