diff --git a/pkg/hold/admin/handlers_settings.go b/pkg/hold/admin/handlers_settings.go
index c4794e2..1d8be9a 100644
--- a/pkg/hold/admin/handlers_settings.go
+++ b/pkg/hold/admin/handlers_settings.go
@@ -88,8 +88,8 @@ func (ui *AdminUI) handleSettingsUpdate(w http.ResponseWriter, r *http.Request)
// Validate successor DID format if provided
if successor != "" {
- if !atproto.IsDID(successor) || !strings.HasPrefix(successor, "did:web:") {
- setFlash(w, r, "error", "Successor must be a valid did:web: DID (e.g., did:web:hold.example.com)")
+ if !atproto.IsDID(successor) || !(strings.HasPrefix(successor, "did:web:") || strings.HasPrefix(successor, "did:plc:")) {
+ setFlash(w, r, "error", "Successor must be a valid did:web: or did:plc: DID")
http.Redirect(w, r, "/admin#settings", http.StatusFound)
return
}
diff --git a/pkg/hold/admin/templates/partials/tab_settings.html b/pkg/hold/admin/templates/partials/tab_settings.html
index 3de848c..e1e40ed 100644
--- a/pkg/hold/admin/templates/partials/tab_settings.html
+++ b/pkg/hold/admin/templates/partials/tab_settings.html
@@ -51,7 +51,7 @@
DID of the successor hold. When set, the appview redirects all requests to the successor.