diff --git a/lib/permissions/minimally-encoded-thread-permissions-test-data.js b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
--- a/lib/permissions/minimally-encoded-thread-permissions-test-data.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
@@ -101,6 +101,14 @@
           value: false,
           source: null,
         },
+        delete_own_messages: {
+          value: false,
+          source: null,
+        },
+        delete_all_messages: {
+          value: false,
+          source: null,
+        },
       },
       isSender: false,
     },
@@ -192,6 +200,14 @@
           value: false,
           source: null,
         },
+        delete_own_messages: {
+          value: false,
+          source: null,
+        },
+        delete_all_messages: {
+          value: false,
+          source: null,
+        },
       },
       isSender: true,
     },
@@ -305,6 +321,14 @@
         value: false,
         source: null,
       },
+      delete_own_messages: {
+        value: false,
+        source: null,
+      },
+      delete_all_messages: {
+        value: false,
+        source: null,
+      },
     },
     subscription: {
       home: true,
@@ -484,6 +508,14 @@
           value: false,
           source: null,
         },
+        delete_own_messages: {
+          value: false,
+          source: null,
+        },
+        delete_all_messages: {
+          value: false,
+          source: null,
+        },
       },
       isSender: false,
     },
@@ -583,6 +615,14 @@
           value: false,
           source: null,
         },
+        delete_own_messages: {
+          value: false,
+          source: null,
+        },
+        delete_all_messages: {
+          value: false,
+          source: null,
+        },
       },
       isSender: true,
     },
@@ -704,6 +744,14 @@
         value: false,
         source: null,
       },
+      delete_own_messages: {
+        value: false,
+        source: null,
+      },
+      delete_all_messages: {
+        value: false,
+        source: null,
+      },
     },
     subscription: {
       home: true,
diff --git a/lib/permissions/minimally-encoded-thread-permissions.js b/lib/permissions/minimally-encoded-thread-permissions.js
--- a/lib/permissions/minimally-encoded-thread-permissions.js
+++ b/lib/permissions/minimally-encoded-thread-permissions.js
@@ -51,6 +51,8 @@
   manage_invite_links: BigInt(20),
   voiced_in_announcement_channels: BigInt(21),
   manage_farcaster_channel_tags: BigInt(22),
+  delete_own_messages: BigInt(23),
+  delete_all_messages: BigInt(24),
 });
 
 // `minimallyEncodedThreadPermissions` is used to map each permission
diff --git a/lib/permissions/minimally-encoded-thread-permissions.test.js b/lib/permissions/minimally-encoded-thread-permissions.test.js
--- a/lib/permissions/minimally-encoded-thread-permissions.test.js
+++ b/lib/permissions/minimally-encoded-thread-permissions.test.js
@@ -54,6 +54,8 @@
   manage_invite_links: { value: false, source: null },
   voiced_in_announcement_channels: { value: false, source: null },
   manage_farcaster_channel_tags: { value: false, source: null },
+  delete_own_messages: { value: false, source: null },
+  delete_all_messages: { value: false, source: null },
 };
 
 describe('minimallyEncodedThreadPermissions', () => {
@@ -131,6 +133,8 @@
     manage_invite_links: { value: false, source: null },
     voiced_in_announcement_channels: { value: false, source: null },
     manage_farcaster_channel_tags: { value: false, source: null },
+    delete_own_messages: { value: false, source: null },
+    delete_all_messages: { value: false, source: null },
   };
 
   it('should decode ThreadPermissionsInfo from bitmask', () => {
@@ -173,6 +177,8 @@
       manage_invite_links: { value: false, source: null },
       voiced_in_announcement_channels: { value: false, source: null },
       manage_farcaster_channel_tags: { value: false, source: null },
+      delete_own_messages: { value: false, source: null },
+      delete_all_messages: { value: false, source: null },
     });
   });
 });
@@ -637,6 +643,14 @@
       value: false,
       source: null,
     },
+    delete_own_messages: {
+      value: false,
+      source: null,
+    },
+    delete_all_messages: {
+      value: false,
+      source: null,
+    },
   },
   subscription: {
     home: true,
diff --git a/lib/permissions/thread-permissions.js b/lib/permissions/thread-permissions.js
--- a/lib/permissions/thread-permissions.js
+++ b/lib/permissions/thread-permissions.js
@@ -241,6 +241,7 @@
   userSurfacedPermissions.ADD_MEMBERS,
   userSurfacedPermissions.EDIT_CALENDAR,
   userSurfacedPermissions.CREATE_AND_EDIT_CHANNELS,
+  userSurfacedPermissions.DELETE_OWN_MESSAGES,
 ];
 
 function getRolePermissionBlobsForCommunityRoot(
@@ -282,6 +283,10 @@
   const descendantReactToMessage =
     DESCENDANT + threadPermissions.REACT_TO_MESSAGE;
   const descendantEditMessage = DESCENDANT + threadPermissions.EDIT_MESSAGE;
+  const descendantDeleteOwnMessages =
+    DESCENDANT + threadPermissions.DELETE_OWN_MESSAGES;
+  const descendantDeleteAllMessages =
+    DESCENDANT + threadPermissions.DELETE_ALL_MESSAGES;
 
   const baseAdminPermissions = {
     [threadPermissions.KNOW_OF]: true,
@@ -303,6 +308,8 @@
     [threadPermissions.MANAGE_INVITE_LINKS]: true,
     [threadPermissions.VOICED_IN_ANNOUNCEMENT_CHANNELS]: true,
     [threadPermissions.MANAGE_FARCASTER_CHANNEL_TAGS]: true,
+    [threadPermissions.DELETE_OWN_MESSAGES]: true,
+    [threadPermissions.DELETE_ALL_MESSAGES]: true,
     [descendantKnowOf]: true,
     [descendantVisible]: true,
     [topLevelDescendantJoinThread]: true,
@@ -324,6 +331,8 @@
     [topLevelDescendantVoicedInAnnouncementChannels]: true,
     [descendantReactToMessage]: true,
     [descendantEditMessage]: true,
+    [descendantDeleteOwnMessages]: true,
+    [descendantDeleteAllMessages]: true,
   };
 
   let adminPermissions;
@@ -480,6 +489,7 @@
     [threadPermissions.EDIT_THREAD_COLOR]: true,
     [threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
     [threadPermissions.EDIT_THREAD_AVATAR]: true,
+    [threadPermissions.DELETE_OWN_MESSAGES]: true,
   };
   if (threadType === threadTypes.THICK_SIDEBAR) {
     return {
diff --git a/lib/types/thread-permission-types.js b/lib/types/thread-permission-types.js
--- a/lib/types/thread-permission-types.js
+++ b/lib/types/thread-permission-types.js
@@ -33,6 +33,8 @@
   MANAGE_INVITE_LINKS: 'manage_invite_links',
   VOICED_IN_ANNOUNCEMENT_CHANNELS: 'voiced_in_announcement_channels',
   MANAGE_FARCASTER_CHANNEL_TAGS: 'manage_farcaster_channel_tags',
+  DELETE_OWN_MESSAGES: 'delete_own_messages',
+  DELETE_ALL_MESSAGES: 'delete_all_messages',
 });
 
 export type ThreadPermissionNotAffectedByBlock = $Values<
@@ -75,7 +77,9 @@
       ourThreadPermission === 'manage_pins' ||
       ourThreadPermission === 'manage_invite_links' ||
       ourThreadPermission === 'voiced_in_announcement_channels' ||
-      ourThreadPermission === 'manage_farcaster_channel_tags',
+      ourThreadPermission === 'manage_farcaster_channel_tags' ||
+      ourThreadPermission === 'delete_all_messages' ||
+      ourThreadPermission === 'delete_own_messages',
     'string is not threadPermissions enum',
   );
   return ourThreadPermission;
@@ -154,6 +158,7 @@
     threadPermissions.DELETE_THREAD,
     threadPermissions.CHANGE_ROLE,
     threadPermissions.MANAGE_PINS,
+    threadPermissions.DELETE_ALL_MESSAGES,
   ];
 
 export const threadPermissionsRemovedForGenesisMembers: $ReadOnlyArray<ThreadPermission> =
@@ -161,6 +166,7 @@
     threadPermissions.REACT_TO_MESSAGE,
     threadPermissions.EDIT_MESSAGE,
     threadPermissions.ADD_MEMBERS,
+    threadPermissions.DELETE_OWN_MESSAGES,
   ];
 
 // These are the set of user-facing permissions that we display as configurable
@@ -187,6 +193,8 @@
   EDIT_MESSAGES: 'edit_messages',
   MANAGE_INVITE_LINKS: 'manage_invite_links',
   MANAGE_FARCASTER_CHANNEL_TAGS: 'manage_farcaster_channel_tags',
+  DELETE_OWN_MESSAGES: 'delete_own_messages',
+  DELETE_ALL_MESSAGES: 'delete_all_messages',
 });
 export type UserSurfacedPermission = $Values<typeof userSurfacedPermissions>;
 export const userSurfacedPermissionsSet: $ReadOnlySet<UserSurfacedPermission> =
@@ -422,6 +430,36 @@
   manageFarcasterChannelTags,
 ]);
 
+const deleteOwnMessagesPermission = {
+  title: 'Delete own messages',
+  description: 'Allows members to delete their sent messages',
+  userSurfacedPermission: userSurfacedPermissions.DELETE_OWN_MESSAGES,
+};
+const deleteOwnMessages = threadPermissions.DELETE_OWN_MESSAGES;
+const descendantDeleteOwnMessages =
+  threadPermissionPropagationPrefixes.DESCENDANT +
+  threadPermissionMembershipPrefixes.MEMBER +
+  threadPermissions.DELETE_OWN_MESSAGES;
+const deleteOwnMessagesPermissions = new Set([
+  deleteOwnMessages,
+  descendantDeleteOwnMessages,
+]);
+
+const deleteALlMessagesPermission = {
+  title: 'Delete all messages',
+  description: 'Allows members to delete any sent message',
+  userSurfacedPermission: userSurfacedPermissions.DELETE_ALL_MESSAGES,
+};
+const deleteAllMessages = threadPermissions.DELETE_ALL_MESSAGES;
+const descendantDeleteAllMessages =
+  threadPermissionPropagationPrefixes.DESCENDANT +
+  threadPermissionMembershipPrefixes.MEMBER +
+  threadPermissions.DELETE_ALL_MESSAGES;
+const deleteAllMessagesPermissions = new Set([
+  deleteAllMessages,
+  descendantDeleteAllMessages,
+]);
+
 export type UserSurfacedPermissionOption = {
   +title: string,
   +description: string,
@@ -443,6 +481,8 @@
     editMessagePermission,
     manageInviteLinksPermission,
     manageFarcasterChannelTagsPermission,
+    deleteOwnMessagesPermission,
+    deleteALlMessagesPermission,
   ]);
 
 type ConfigurableCommunityPermission = {
@@ -468,6 +508,8 @@
     [userSurfacedPermissions.MANAGE_INVITE_LINKS]: manageInviteLinksPermissions,
     [userSurfacedPermissions.MANAGE_FARCASTER_CHANNEL_TAGS]:
       manageFarcasterChannelTagsPermissions,
+    [userSurfacedPermissions.DELETE_OWN_MESSAGES]: deleteOwnMessagesPermissions,
+    [userSurfacedPermissions.DELETE_ALL_MESSAGES]: deleteAllMessagesPermissions,
   });
 
 export type ThreadPermissionInfo =