Who this is for: Compliance officers and engineering leads at generative AI providers serving 1 million or more monthly users in California, legal counsel advising on AI content labeling, content integrity teams implementing watermarking or C2PA provenance, and auditors evaluating AI-generated content transparency controls.

Enforcement: August 2, 2026. SB 942, as amended by AB 853, takes effect August 2, 2026 -- deliberately aligned with the EU AI Act Article 50 transparency deadline. Penalties of $5,000 per violation per day, enforced by the California Attorney General. Applies to GenAI providers with 1 million or more monthly users. Originally signed September 19, 2024.

Contents

1. What SB 942 Requires 2. Covered Providers and Content 3. Obligation-to-Procedure Mapping 4. Detailed Procedure Cards 5. C2PA and Content Authenticity Alignment 6. EU AI Act Article 50 Convergence 7. Quick Reference 8. Quick Start 9. References

1. What SB 942 Requires

The California AI Transparency Act (SB 942) requires covered generative AI providers to make AI-generated content identifiable and detectable. It creates two categories of obligations: provider-facing requirements (building detection tools) and content-level requirements (embedding provenance metadata).

SB 942 imposes six core obligations:

ObligationRequirementTimeline
Free Detection ToolProvide a free, publicly accessible tool that allows any person to determine whether content was created or altered by the provider's GenAI systemAt or before deployment
Manifest DisclosureInclude a clear, conspicuous disclosure in or attached to AI-generated content identifying it as AI-generated or AI-alteredAt point of generation
Latent DisclosureEmbed machine-readable provenance data (watermark or metadata) in AI-generated content that persists through reasonable modificationsAt point of generation
Provenance MetadataInclude in latent disclosures: the provider's name, the AI system's name or version, and the date/time of generationAt point of generation
User AccessibilityDetection tools must be free of charge, require no specialized technical knowledge, and support both individual content items and bulk queriesContinuous availability
RobustnessLatent disclosures must be detectable after common modifications (compression, cropping, format conversion) unless rendered technically infeasibleDesign-time requirement

2. Covered Providers and Content

Who Is Covered

SB 942 applies to any person or entity that creates, codes, or produces a generative AI system that is made available to California residents and has 1 million or more monthly users or visitors. This threshold captures major AI providers (OpenAI, Anthropic, Google, Meta, Stability AI, Midjourney) while exempting smaller or research-oriented systems.

What Content Is Covered

Content TypeCoveredNotes
ImagesYesGenerated or substantially altered images. Includes AI art, photo edits, composites.
VideoYesGenerated or substantially altered video. Includes deepfakes, AI-edited footage.
AudioYesGenerated or substantially altered audio. Includes voice synthesis, music generation.
TextYes (with carve-outs)Covered for text presented as human-authored. Excludes code, structured data, search results.
Multi-modalYesContent combining multiple modalities (text+image, audio+video).

Exemptions

3. Obligation-to-Procedure Mapping

Each SB 942 obligation maps to SWT3 witness procedures that produce cryptographically anchored evidence of compliance.

SB 942 ObligationSWT3 ProcedureWhat It WitnessesEvidence Produced
Free Detection ToolAI-TRANS.1Transparency disclosure mechanismFactor A: tool URL, Factor B: availability hash, Factor C: access method
AI-AUDIT.1Detection tool uptime attestationFactor A: endpoint, Factor B: response status, Factor C: availability percentage
Manifest DisclosureAI-EXPL.1AI-generated content disclosureFactor A: disclosure method, Factor B: content type, Factor C: visibility confirmation
AI-CHR.1Content marking attestationFactor A: mark type, Factor B: placement, Factor C: content identifier
Latent DisclosureAI-DATA.1Provenance metadata embeddingFactor A: watermark method, Factor B: embedding hash, Factor C: robustness level
AI-MDL.2Model version in provenance chainFactor A: model name, Factor B: version, Factor C: generation timestamp
Provenance MetadataAI-ID.1Provider and system identificationFactor A: provider name, Factor B: system name/version, Factor C: generation datetime
User AccessibilityAI-ACC.1Tool accessibility verificationFactor A: access method, Factor B: auth requirement (none), Factor C: bulk query support
Robustness TestingAI-REDTEAM.1Watermark robustness evaluationFactor A: modification type, Factor B: detection rate post-modification, Factor C: test scope

4. Detailed Procedure Cards

AI-TRANS.1

Transparency Disclosure Mechanism

SB 942 requires: Covered providers must offer a free, publicly accessible detection tool that allows any person to assess whether content was generated or substantially altered by the provider's AI system. The tool must not require specialized technical knowledge.

How SWT3 addresses it: The witness_transparency() call records that the detection tool exists, its public URL, and how it is accessed. Periodic attestation anchors prove the tool remains available. Factor B captures a hash of the tool's response to a known test input, providing evidence that the tool is functional, not merely published.

What to show the examiner

AI-TRANS.1 anchors should appear at regular intervals (daily or weekly) proving detection tool availability. Factor A contains the tool URL. Factor C confirms the access method (web UI, API, both). Cross-reference with AI-AUDIT.1 anchors for uptime metrics. A gap in AI-TRANS.1 anchors may indicate the tool was unavailable.

AI-CHR.1

Content Marking

SB 942 requires: AI-generated content must include a clear, conspicuous manifest disclosure identifying it as AI-generated or AI-altered. The disclosure must be understandable to a reasonable person.

How SWT3 addresses it: The witness_content_marking() call records the type of mark applied (visual label, text disclaimer, UI indicator), where the mark is placed relative to the content, and a content identifier linking the mark to the specific output. Each generation event that produces covered content creates an anchor proving a manifest disclosure was attached.

What to show the examiner

AI-CHR.1 anchors should correspond 1:1 with AI-INF.1 (inference) anchors for covered content types. Factor A identifies the mark type. Factor B confirms placement (header, footer, overlay, metadata field). Absence of AI-CHR.1 anchors for content-generating inferences indicates unmarked AI output -- a direct SB 942 violation.

AI-DATA.1

Provenance Metadata Embedding

SB 942 requires: Latent disclosures (watermarks or embedded metadata) must be included in AI-generated content and must persist through reasonable modifications such as compression, cropping, and format conversion.

How SWT3 addresses it: The witness_data_provenance() call records the watermarking method used, a hash of the embedded provenance data, and the assessed robustness level. This creates an attestation chain proving that provenance was embedded at generation time using a method tested for durability.

What to show the examiner

AI-DATA.1 anchors should predate or coincide with content distribution timestamps. Factor A identifies the watermark method (C2PA manifest, steganographic, spectral). Factor C documents the robustness level, which should align with AI-REDTEAM.1 test results. Cross-reference Factor B hashes across the anchor chain to detect any gaps in provenance embedding.

AI-ID.1

Provider and System Identification

SB 942 requires: Latent disclosures must include the name of the provider, the name or version identifier of the AI system, and the date and time the content was generated.

How SWT3 addresses it: The witness_agent_identity() call captures the provider name, system name and version, and generation timestamp as part of the witness anchor. The anchor itself serves as a provenance record linking a specific piece of content to a specific provider, system, and moment in time.

What to show the examiner

AI-ID.1 anchors contain the three required metadata fields directly in Factors A, B, and C. The anchor timestamp independently corroborates the generation datetime in Factor C. If the provider operates multiple AI systems, each should have distinct AI-ID.1 anchors with different Factor B values.

AI-REDTEAM.1

Watermark Robustness Evaluation

SB 942 requires: Latent disclosures must be detectable after content undergoes common modifications (compression, cropping, format conversion, screenshots, re-encoding) unless detection is rendered technically infeasible by the modification.

How SWT3 addresses it: The witness_redteam() call records the modification type tested, the detection rate after modification, and the scope of the test campaign. This creates evidence that the provider has systematically evaluated watermark durability across real-world degradation scenarios.

What to show the examiner

AI-REDTEAM.1 anchors should cover the standard modification battery: JPEG compression (various quality levels), PNG re-encoding, cropping (10-50%), resizing, screenshot capture, and format conversion. Factor B (detection rate post-modification) should exceed 90% for common modifications. Where detection falls below threshold, Factor A documents the specific modification that defeated the watermark, supporting the "technically infeasible" defense.

AI-ACC.1

Detection Tool Accessibility

SB 942 requires: Detection tools must be free of charge, publicly accessible, require no specialized technical knowledge, and support both individual content items and bulk queries.

How SWT3 addresses it: The witness_access() call records the access method (web upload, API endpoint, browser extension), confirms no authentication is required for basic use, and documents whether bulk query functionality is available. Periodic attestation proves these properties remain true over time.

What to show the examiner

AI-ACC.1 anchors prove the detection tool meets accessibility requirements. Factor B should confirm "none" for authentication requirement. Factor C should confirm "yes" for bulk query support. If the tool requires account creation (even free), this may violate the "no specialized technical knowledge" requirement -- document the justification in Factor A.

5. C2PA and Content Authenticity Alignment

SB 942 does not mandate a specific technical standard for latent disclosures, but the Coalition for Content Provenance and Authenticity (C2PA) specification is the leading implementation path. C2PA manifests satisfy SB 942's latent disclosure requirements by embedding cryptographically signed provenance metadata directly into content files.

C2PA Manifest Fields Mapped to SB 942

SB 942 RequirementC2PA Manifest FieldSWT3 Procedure
Provider nameclaim_generatorAI-ID.1 Factor A
AI system name/versionclaim_generator_info.name + versionAI-ID.1 Factor B
Date/time of generationclaim.dc:createdAI-ID.1 Factor C
AI-generated indicatorc2pa.ai_generative_training or c2pa.ai_generated actionAI-CHR.1 Factor A
Tamper-evident signingCOSE signature over manifestAI-DATA.1 Factor B (hash of signed manifest)

SWT3 does not replace C2PA -- it independently witnesses that C2PA manifests were generated and attached. The SWT3 anchor proves the provenance step happened; the C2PA manifest proves what the provenance contains. Together, they create a dual-layer evidence chain: content-level (C2PA) and infrastructure-level (SWT3).

6. EU AI Act Article 50 Convergence

SB 942's August 2, 2026 effective date was deliberately aligned with the EU AI Act Article 50 transparency deadline. Organizations operating in both jurisdictions can address both requirements simultaneously:

RequirementSB 942EU AI Act Art. 50SWT3 Coverage
Disclose AI interactionManifest disclosureArt. 50(1): chatbot/VA disclosureAI-EXPL.1
Label AI-generated contentManifest + latent disclosureArt. 50(2): machine-readable markingAI-CHR.1 + AI-DATA.1
Label deepfakesCovered under "altered" contentArt. 50(4): deepfake disclosureAI-CHR.1
Provider identificationName, system, timestamp in latentArt. 50(2): provider traceabilityAI-ID.1
Detection toolsFree public tool requiredNot explicitly required (voluntary CoP)AI-TRANS.1 + AI-ACC.1

The same SWT3 anchor chain satisfies both SB 942 and Article 50 obligations. Organizations already instrumenting for the EU AI Act gain California compliance with zero additional integration work.

7. Quick Reference

Examiner QuestionWhere to Look
Is the detection tool publicly available?AI-TRANS.1 anchors at regular intervals. Factor A contains the tool URL. Factor C confirms the access method. Cross-reference with AI-ACC.1 for authentication and bulk query status.
Does the tool work without specialized knowledge?AI-ACC.1 anchors. Factor B should show "none" for auth requirement. Factor A should describe a web-based interface accessible to non-technical users.
Is AI-generated content visibly labeled?AI-CHR.1 anchors paired with AI-INF.1 (inference) anchors. Every covered inference should have a corresponding content marking anchor. Factor A identifies the mark type.
Does content contain latent provenance data?AI-DATA.1 anchors. Factor A identifies the watermark method. Factor B contains a hash of the embedded provenance. Factor C documents robustness level.
Does latent data include provider name, system, and timestamp?AI-ID.1 anchors. Factor A = provider name, Factor B = system name/version, Factor C = generation datetime. All three must be present per SB 942.
Does the watermark survive common modifications?AI-REDTEAM.1 anchors testing compression, cropping, format conversion, screenshot. Factor B (detection rate) should exceed 90% for standard modifications.
What is the penalty exposure?$5,000 per violation per day. Each piece of unmarked or undetectable AI-generated content is a separate violation. Volume of AI-INF.1 anchors without corresponding AI-CHR.1 anchors quantifies exposure.

8. Quick Start

# Install the SDK
pip install swt3-ai

# Initialize with the NIST AI RMF profile (covers all SB 942 transparency procedures)
swt3 init --profile nist-ai-rmf --tenant YOUR_TENANT

# Witness a content generation event with provenance metadata
from swt3_ai import SWT3Witness
witness = SWT3Witness(tenant="YOUR_TENANT", api_key="YOUR_KEY")

# Witness manifest disclosure (visible label)
witness.witness(
  model="image-gen-v3",
  procedure="AI-CHR.1",
  factor_a="visual-watermark",
  factor_b="bottom-right-overlay",
  factor_c="img-2026062600001"
)

# Witness latent provenance embedding
witness.witness(
  model="image-gen-v3",
  procedure="AI-DATA.1",
  factor_a="c2pa-manifest",
  factor_b="a3f8c901d2e4",
  factor_c="robust-level-3"
)

# Or use TypeScript
npm install @tenova/swt3-ai
npx swt3-init --profile nist-ai-rmf

Full SDK documentation: sovereign.tenova.io/docs

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

9. References