A consent-first mechanism that lets a submissive formally ask a Dominant for a privilege, relationship recognition, limits negotiation, or role change — and tracks the outcome
Sub-initiation requests (Spec 235, shipped June 2026) let a submissive formally initiate certain relationship actions rather than waiting for a Dominant to propose them. The submissive addresses the request to a specific Dominant in the hierarchy, optionally adds a personal message, and submits. The Dominant receives it as a pending request and chooses to approve or decline. All decisions are recorded with a timestamp and audit trail.
This mechanism is designed around explicit mutual consent: no action takes effect until a Dominant actively approves. A declined request leaves no lasting record on either party's profile beyond the request log.
subInitiationRequests feature flag.
If you do not see the request controls described below, the feature may not be enabled for
your organization. Contact your organization administrator or Helm support.
There are six request types. Each triggers a different backend action on approval.
Ask a Dominant to grant you a temporary privilege — a relaxation of a standing protocol or rule. When submitting, you choose a privilege category and give it a title. Optional fields let you specify an expiry date and add context.
Available privilege categories:
Ask a Dominant to formally recognise a partner relationship with you in the hierarchy. On approval, the backend records the relationship association. Use this when you and a Dominant have agreed informally but want the dynamic reflected in Helm.
Ask a Dominant to open a limits-negotiation session with you. On approval, the Dominant starts the negotiation session; the submissive participates in response. Use this to revisit limits in a structured way rather than ad hoc.
Ask a Dominant to designate you as a switch within the hierarchy. On approval, your role designation is updated to reflect switch status.
Ask a Dominant to advance the collaring stage of the relationship. When submitting, choose the stage you are requesting to move to and add any context message.
Available collaring stages:
Ask a Dominant to become your keyholder in the chastity system. This request type has its own dedicated sheet on the Chastity page rather than using the generic request flow. See the Chastity guide for details on the keyholder relationship.
To withdraw a pending request before the Dominant has acted on it, open your request history and use the withdraw action. Withdrawal sets the status to withdrawn and removes it from the Dominant's queue.
When a Dominant approves a request, the backend runs the corresponding executor inside a database transaction:
The request record is updated to approved, and resolvedAt
and resolvedByUserId are stamped. The approved card disappears from the
Dominant's pending queue. You will see the effect of the approval in the relevant section
of the app (Chastity, Autonomy, Collaring Chronicle, etc.).
Declining a request is a two-step action for the Dominant: pressing "Decline" shows a confirmation prompt ("Confirm Decline"). An optional decline message can be added before confirming. On confirmation:
The two-step confirmation prevents accidental declines. An error inline on the card (without removing it) is shown if the decline API call fails, so the Dominant can retry.
Dominants see all pending requests addressed to them in the Pending Requests section. Each card shows:
When there are no pending requests, an empty state is shown. No live notification badge appears in the navigation; Dominants should check this section when they receive a notification about a new request.
Every request record retains the full history of its lifecycle. The stored fields are:
status — current state: pending, approved, declined, or withdrawncreatedAt — when the submissive sent the requestupdatedAt — last status changeresolvedAt — when the Dominant approved or declined (null if pending or withdrawn)resolvedByUserId — the Dominant's user ID (null if pending or withdrawn)declineMessage — the Dominant's optional explanation on declinemessage — the submissive's optional message at submissionpayload — any type-specific structured data (privilege category, collaring stage, etc.)Records are retained after resolution. Neither the submissive nor the Dominant can delete a request record after it has been submitted.