Skip to main content
LibXMTP uses a flexible policy system to control group permissions. This guide explains how to configure policies, manage admins, and enforce access control.

Policy Overview

Each group has a PolicySet that defines who can perform restricted actions:
  • add_member_policy - Add new inboxes to the group
  • remove_member_policy - Remove inboxes from the group
  • update_metadata_policy - Modify group name, description, image, etc.
  • add_admin_policy - Designate members as admins
  • remove_admin_policy - Remove admin designation
  • update_permissions_policy - Change the policy set itself

Preconfigured Policies

LibXMTP provides common policy configurations:

Available Preconfigured Policies

Any group member can:
  • Add/remove members
  • Update metadata
  • Add/remove admins
  • Update permissions

Custom Policy Sets

Create custom policies for fine-grained control:

Policy Types

Membership Policies

Control adding and removing members:

Metadata Policies

Control metadata field updates:

Permission Update Policies

Control who can modify policies:

Admin Management

Admin Roles

LibXMTP has two admin levels:
  1. Super Admin - Full control, cannot be removed
  2. Admin - Elevated permissions based on policies
The group creator is automatically designated as the only super admin and cannot be removed from that role.

Add Admins

Remove Admins

List Admins

Updating Permissions

Update Individual Policies

Update Entire Policy Set

Replace all policies at once:
Updating the policy set requires permission from the update_permissions_policy. If that policy is set to Deny, the policies become immutable.

Permission Validation

Policies are enforced when processing commits:

Query Current Permissions

TypeScript (Node.js) Examples

Advanced Policy Logic

Compound Policies

Combine multiple conditions:

Dynamic Policy Evaluation

Policies are evaluated at commit time:

Best Practices

Error Handling

Next Steps

Consent Management

Control which groups and users you interact with

Sending Messages

Send messages within your configured groups