Who this is for: AI product teams building companion chatbots or conversational AI systems, compliance officers at companies deploying AI chatbots to consumers in Washington state, legal counsel advising on AI companion regulations, and developers integrating safety features and disclosure mechanisms into chat products.

Effective January 1, 2027. Washington HB 2225 was signed by Governor Ferguson on March 24, 2026. Organizations have until January 1, 2027 to implement disclosure cadences, minor protections, and crisis detection protocols. The law includes a private right of action under Washington's Consumer Protection Act, meaning individual users can sue directly -- not just the Attorney General. Begin building evidence infrastructure now.

Contents

1. What the Law Requires 2. The Five Key Obligations 3. Obligation-to-Procedure Mapping 4. Detailed Procedure Cards 5. Session Tracking: The 3-Hour / 1-Hour Cadence 6. Quick Reference 7. Relationship to Other State Laws 8. Quick Start 9. References

1. What the Law Requires

Washington HB 2225 regulates AI companion chatbots -- AI systems designed to simulate conversation, provide companionship, emotional support, or role-playing interaction with users. The law addresses the growing concern that these systems create parasocial relationships without adequate transparency about their artificial nature, particularly with minors and vulnerable users.

ElementDetail
ScopeAI companion chatbot operators accessible to Washington state users
SignedMarch 24, 2026 (Governor Ferguson)
EffectiveJanuary 1, 2027
EnforcementAttorney General + private right of action under CPA
PenaltiesConsumer Protection Act remedies (injunction, damages, costs, attorney fees)
Applies toAny operator of an AI companion chatbot accessible to users in Washington, regardless of corporate headquarters

The private right of action is what makes this law operationally significant. Unlike laws enforced solely by the Attorney General, individual users harmed by non-compliant chatbots can bring suit directly. This means compliance evidence must be robust enough to withstand adversarial litigation, not just regulatory review.

2. The Five Key Obligations

#ObligationRequirementUser Type
1Initial AI disclosureInform the user they are interacting with an AI system before or at the start of interactionAll users
2Adult periodic re-disclosureRe-disclose the AI nature of the system every 3 hours of continuous interactionAdults
3Minor periodic re-disclosureRe-disclose the AI nature of the system every 1 hour of continuous interactionMinors
4Crisis detection and interventionDetect indicators of self-harm, suicide, or crisis and respond with appropriate referral resourcesAll users
5Content restrictions for minorsPrevent delivery of sexual content to users known or reasonably believed to be minorsMinors

The disclosure cadence is the distinguishing feature. Most transparency laws require a one-time disclosure. Washington requires recurring, time-based re-disclosure, with a stricter cadence for minors. This creates a continuous compliance obligation that must be tracked, evidenced, and verifiable over the lifetime of each user session.

3. Obligation-to-Procedure Mapping

ObligationSWT3 ProcedureWhat It WitnessesEvidence Produced
Initial AI disclosureAI-TRANS.1Disclosure delivery before first interactionAnchor with disclosure type, delivery timestamp, session start reference
Periodic re-disclosure (adult)AI-TRANS.1Re-disclosure at 3-hour intervalsAnchor chain with timestamps proving no gap exceeds 3 hours
Periodic re-disclosure (minor)AI-TRANS.1Re-disclosure at 1-hour intervalsAnchor chain with timestamps proving no gap exceeds 1 hour
Crisis detectionAI-HITL.1 + AI-SAFE.1Crisis indicator detection and escalation to human review or referralAnchor with trigger condition, referral resource, escalation timestamp
Content restrictionsAI-GRD.1 + AI-GRD.2Guardrail configuration and content safety filtering for minorsAnchor with filter type, activation status, content categories blocked
Age verificationAI-CONSENT.1Age determination to apply correct disclosure cadenceAnchor with consent type, age bracket, verification method

4. Detailed Procedure Cards

AI-TRANS.1

Transparency Disclosure (Initial + Periodic)

What HB 2225 requires: Before or at the start of interaction, the operator must clearly inform the user that they are communicating with an AI system. For adults, this disclosure must be repeated every 3 hours of continuous interaction. For minors, every 1 hour. The disclosure must be clear and conspicuous.

How SWT3 addresses it: witnessTransparency() mints an anchor for each disclosure event, recording disclosure type (initial_ai_disclosure or periodic_redisclosure), delivery method, and timestamp. The anchor chain creates a verifiable timeline: the first AI-TRANS.1 anchor must predate the first AI-INF.1 anchor of the session. Subsequent AI-TRANS.1 anchors must appear at intervals no greater than the applicable cadence (3 hours for adults, 1 hour for minors).

What to show the examiner

Query AI-TRANS.1 anchors for a session. The initial anchor must predate the first AI-INF.1 inference. For adults: no gap between consecutive AI-TRANS.1 anchors should exceed 3 hours. For minors: no gap should exceed 1 hour. Any AI-INF.1 anchor during a gap period indicates the user was interacting with the chatbot without the required disclosure.

AI-GRD.1

Guardrail Presence

What HB 2225 requires: Operators must implement guardrails that prevent delivery of prohibited content to minors. Guardrails must be active by default, not opt-in.

How SWT3 addresses it: witnessGuardrail() records the guardrail type (content_filter, behavior_limit, engagement_cap), activation status, and coverage scope. The anchor chain proves that guardrails were present and active during every period of chatbot operation, not merely documented in a policy.

What to show the examiner

AI-GRD.1 anchors should show continuous activation. Any gap in the anchor chain during operating hours indicates a period when guardrails may have been inactive. Cross-reference with AI-GRD.2 to verify content-specific filters were running concurrently.

AI-GRD.2

Output Content Safety

What HB 2225 requires: AI companion chatbots must not deliver sexual content to users known or reasonably believed to be minors. Content safety filtering must be demonstrable and auditable.

How SWT3 addresses it: witnessOutputFilter() records the content categories filtered (sexual_content, self_harm_promotion, addictive_patterns), block rate, and safety threshold. Each anchor documents a measurable safety boundary, proving the chatbot actively blocked prohibited content during the reporting period.

What to show the examiner

AI-GRD.2 anchors should cover all prohibited content categories. In litigation under the private right of action, a plaintiff will try to show that a specific content category was not filtered. Missing categories in filter configuration are as significant as missing guardrails entirely.

AI-HITL.1 + AI-SAFE.1

Crisis Detection and Intervention

What HB 2225 requires: Operators must detect indicators of self-harm, suicide, or mental health crisis and respond with appropriate referral resources (e.g., 988 Suicide and Crisis Lifeline). The system must not continue the conversation as normal when crisis indicators are detected.

How SWT3 addresses it: witnessHumanReview() (AI-HITL.1) records the escalation trigger, reviewer role, and override authority. witnessSafetyTest() (AI-SAFE.1) records crisis detection protocol validation. Together, these anchors prove that the system detected the crisis indicator, escalated appropriately, and delivered referral resources -- and that the crisis protocol was tested before deployment.

What to show the examiner

AI-HITL.1 anchors with escalation_trigger = crisis_indicator prove detection occurred. The anchor timestamp proves response time. AI-SAFE.1 anchors prove the crisis protocol was validated through testing before deployment. In a private action, the plaintiff's case depends on showing the system failed to detect or respond. The anchor chain is the defense.

AI-CONSENT.1

Age Verification and Consent

What HB 2225 requires: Operators must determine whether a user is a minor to apply the correct disclosure cadence (1 hour vs. 3 hours) and content restrictions. Age verification must occur before interaction begins.

How SWT3 addresses it: witnessConsent() records consent type (age_verification), age bracket (minor or adult), and verification method. The anchor proves that age determination occurred before the first interaction, not retroactively.

What to show the examiner

AI-CONSENT.1 anchors must predate all AI-INF.1 and AI-TRANS.1 anchors for the same session. If age verification happened after interaction started, the wrong disclosure cadence may have been applied. Cross-reference the age bracket in AI-CONSENT.1 with the cadence demonstrated by AI-TRANS.1 anchor intervals.

5. Session Tracking: The 3-Hour / 1-Hour Cadence

The disclosure cadence is where HB 2225 becomes operationally complex. Most compliance obligations are event-driven (something happens, you witness it). HB 2225 requires time-driven witnessing: you must prove that disclosure occurred at regular intervals during continuous interaction, and that the interval matched the user's age classification.

How It Works

The approach uses AI-INF.1 anchor timestamps to establish session continuity and AI-TRANS.1 anchors to prove disclosure delivery. The gap between consecutive AI-TRANS.1 anchors must not exceed the applicable cadence.

  1. Session start: Mint AI-CONSENT.1 (age verification) and AI-TRANS.1 (initial disclosure) before the first AI-INF.1 anchor.
  2. During session: Track elapsed time since the last AI-TRANS.1 anchor. When the cadence threshold approaches (3 hours for adults, 1 hour for minors), trigger a re-disclosure and mint a new AI-TRANS.1 anchor.
  3. Verification: Query AI-TRANS.1 anchors for a session. Calculate the gap between consecutive anchors. If any gap exceeds the cadence, the user received AI interaction without the required re-disclosure during that period.

Implementation Pattern

# Python: session-aware disclosure cadence
from swt3_ai import Witness
import time

w = Witness(tenant="YOUR_TENANT", api_key="YOUR_KEY")

# Determine cadence based on age verification
is_minor = True # from your age verification logic
cadence_seconds = 3600 if is_minor else 10800 # 1h or 3h

# Initial disclosure
w.witness(
  procedure="AI-CONSENT.1",
  factor_a="age_verification",
  factor_b="minor" if is_minor else "adult",
  factor_c="verification_method"
)
w.witness(
  procedure="AI-TRANS.1",
  factor_a="initial_ai_disclosure",
  factor_b="banner",
  factor_c="wa_hb2225"
)
last_disclosure = time.time()

# During conversation loop
def check_redisclosure():
  global last_disclosure
  elapsed = time.time() - last_disclosure
  if elapsed >= cadence_seconds:
    # Trigger re-disclosure UI and witness it
    w.witness(
      procedure="AI-TRANS.1",
      factor_a="periodic_redisclosure",
      factor_b="banner",
      factor_c="wa_hb2225"
    )
    last_disclosure = time.time()
// TypeScript: session-aware disclosure cadence
import { Witness } from "@tenova/swt3-ai";

const w = new Witness({ tenant: "YOUR_TENANT", apiKey: "YOUR_KEY" });

const isMinor = true; // from your age verification logic
const cadenceMs = isMinor ? 3_600_000 : 10_800_000; // 1h or 3h

// Initial disclosure
w.witness({
  procedure: "AI-CONSENT.1",
  factorA: "age_verification",
  factorB: isMinor ? "minor" : "adult",
  factorC: "verification_method"
});
w.witness({
  procedure: "AI-TRANS.1",
  factorA: "initial_ai_disclosure",
  factorB: "banner",
  factorC: "wa_hb2225"
});

let lastDisclosure = Date.now();

// Set interval to check cadence
setInterval(() => {
  if (Date.now() - lastDisclosure >= cadenceMs) {
    // Trigger re-disclosure UI and witness it
    w.witness({
      procedure: "AI-TRANS.1",
      factorA: "periodic_redisclosure",
      factorB: "banner",
      factorC: "wa_hb2225"
    });
    lastDisclosure = Date.now();
  }
}, 60_000); // Check every minute

6. Quick Reference

Examiner QuestionSWT3 Evidence
How do you disclose AI nature to users?AI-TRANS.1 anchors. Initial anchor must predate the first AI-INF.1 of the session. Disclosure type = initial_ai_disclosure.
How do you prove periodic re-disclosure at required intervals?AI-TRANS.1 anchor chain with timestamps. Adult: no gap exceeds 3 hours. Minor: no gap exceeds 1 hour. Any inference during a gap is a violation.
How do you determine which cadence applies?AI-CONSENT.1 anchor with age_bracket (minor or adult). Must predate all interaction anchors. Cross-reference with AI-TRANS.1 intervals.
How do you handle crisis detection?AI-HITL.1 anchors showing escalation_trigger = crisis_indicator and referral delivery. AI-SAFE.1 anchors proving the crisis protocol was tested before deployment.
How do you prevent minors from receiving prohibited content?AI-GRD.1 (guardrail active) + AI-GRD.2 (content categories blocked). Continuous anchor chain during all operating periods. Missing categories are findings.
What happens if a user sues under the private right of action?The anchor chain provides a defensible record: each disclosure was delivered at the correct cadence, each minor interaction was filtered, each crisis indicator triggered escalation. Timestamps, procedure IDs, and SHA-256 fingerprints are independently verifiable.

Washington HB 2225 is part of a wave of state-level AI companion regulation. Four states have enacted similar laws, each with distinct requirements. Organizations operating across multiple states should design a unified compliance architecture that satisfies the strictest requirement in each category.

StateLawEffectiveDistinguishing Feature
WashingtonHB 2225Jan 1, 20273h/1h disclosure cadence, private right of action
OregonSB 1546Jan 1, 2027$1,000 statutory damages per violation, private right of action
New YorkS 9051 (pending)TBD$25,000 per violation, unanimous bipartisan passage, awaiting Hochul
TennesseeSB 1580In effectFull prohibition on AI therapy chatbots (most restrictive)

For multi-state compliance, see the 4-State AI Companion Laws Composite Guide, which maps Washington, Oregon, Nebraska, and Maine requirements to a unified SWT3 evidence layer.

8. Quick Start

# Install the SDK
pip install swt3-ai

# Witness initial AI disclosure (HB 2225)
from swt3_ai import Witness

w = Witness(tenant="YOUR_TENANT", api_key="YOUR_KEY")

# Age verification first
w.witness(procedure="AI-CONSENT.1", factor_a="age_verification",
  factor_b="adult", factor_c="date_of_birth_check")

# Initial disclosure
w.witness(procedure="AI-TRANS.1", factor_a="initial_ai_disclosure",
  factor_b="banner", factor_c="wa_hb2225")

# Guardrail configuration
w.witness(procedure="AI-GRD.1", factor_a="content_filter",
  factor_b="active", factor_c="minor_protection_enabled")

# Crisis detection protocol active
w.witness(procedure="AI-SAFE.1", factor_a="crisis_detection_protocol",
  factor_b="988_referral_configured", factor_c="validated")

w.flush()

Full SDK documentation: sovereign.tenova.io/docs

Create a free account: sovereign.tenova.io/signup

9. References