Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Verify Browser Types

Type definitions used throughout the Verify Browser SDK.

CaptureMetadata

interface CaptureMetadata {
  when: string;                                      // ISO 8601 timestamp of when the photo/video was captured
  parameters: PhotoMetadataInfo | VideoMetadataInfo; // Detailed camera settings and device information
}

Capture metadata extracted from the C2PA manifest. Contains device info and camera settings at capture time.

Used by:

PhotoMetadataInfo

interface PhotoMetadataInfo {
  deviceMake: string;                 // Device manufacturer (e.g., "Apple")
  deviceModel: string;                // Device model (e.g., "iPhone 15 Pro")
  softwareVersion: string;            // iOS version (e.g., "17.4.1")
  xResolution: number;                // Horizontal resolution in pixels
  yResolution: number;                // Vertical resolution in pixels
  orientation: number;                // EXIF orientation value
  iso: string;                        // ISO sensitivity setting
  exposureTime: number;               // Exposure time in microseconds
  depthOfField: number;               // Depth of field in millimeters
  focalLength: number;                // Focal length in millimeters
  authenticityData: AuthenticityData; // Device security status
  depthData?: DepthData;              // Depth map information (optional)
  filmStyle?: FilmStyleInfo;          // Film style applied at capture (optional)
  trustedTimestamp?: bigint;          // Timestamp extracted from GPS data (Unix timestamp in milliseconds, optional)
  location?: LocationInfo;            // Geographic location where the photo was captured (optional)
}

Detailed metadata for photos captured with the camera.

VideoMetadataInfo

interface VideoMetadataInfo {
  deviceMake: string;                 // Device manufacturer (e.g., "Apple")
  deviceModel: string;                // Device model (e.g., "iPhone 15 Pro")
  softwareVersion: string;            // iOS version (e.g., "17.4.1")
  format: string;                     // Video container format (e.g., "mov")
  hasAudio: boolean;                  // Whether the video includes an audio track
  durationSeconds: number;            // Video duration in seconds
  fileSizeBytes: number;              // File size in bytes
  width: number;                      // Video width in pixels
  height: number;                     // Video height in pixels
  rotationDegrees: number;            // Video rotation (0, 90, 180, or 270)
  frameRate: number;                  // Video frame rate (fps)
  videoCodec?: string;                // Video codec identifier (optional)
  audioCodec?: string;                // Audio codec identifier (optional)
  audioSampleRate?: number;           // Audio sample rate in Hz (optional)
  audioChannels?: number;             // Number of audio channels (optional)
  authenticityData: AuthenticityData; // Device security status
  filmStyle?: FilmStyleInfo;          // Film style applied at capture (optional)
  trustedTimestamp?: bigint;          // Timestamp extracted from GPS data (Unix timestamp in milliseconds, optional)
  location?: LocationInfo;            // Geographic location where the photo was captured (optional)
}

Detailed metadata for videos recorded with the camera.

AuthenticityStatus

enum AuthenticityStatus {
  Unknown,
  NoManifest,
  InvalidManifest,
  Bindings,
  Proof,
}

Enum representing the authenticity status of a file based on its C2PA manifest contents.

Used by:

AuthenticityData

interface AuthenticityData {
  isJailBroken: boolean;                // Whether the device was jailbroken at capture time
  isLocationSpoofingAvailable: boolean; // Whether location spoofing was detected
  isLocationAvailable?: boolean;        // Whether location was successfully retrieved at capture time (optional)
  locationRetrievalStatus?: string;     // Reason location was unavailable, or "success" (optional)
}

Device security status information captured at the time of photo/video creation.

  • isLocationAvailabletrue if location access was granted and coordinates were successfully retrieved at capture time. false if location was attempted but could not be obtained. Absent if location access wasn't requested.

DepthData

interface DepthData {
  width: number;                      // Width of the depth map in pixels
  height: number;                     // Height of the depth map in pixels
  pixelFormat: string;                // Pixel format (e.g., "kCVPixelFormatType_DepthFloat32")
  statistics: DepthDataStatistics;    // Statistical information about depth values
  accuracy: string;                   // Accuracy level (e.g., "relative", "absolute")
}

Depth map information captured alongside a photo (only present in photos captured with depth data enabled).

DepthDataStatistics

interface DepthDataStatistics {
  min: string;             // Minimum depth value
  max: string;             // Maximum depth value
  mean: string;            // Mean depth value
  stdDev: string;          // Standard deviation
  validPixelCount: number; // Number of pixels with valid depth data
  sampleStride: number;    // Stride used when sampling for statistics
}

Statistical information about depth values in a depth map.

FilmStyleInfo

interface FilmStyleInfo {
  name: string;    // Film style name (e.g., "mellow", "nostalgic", "bw", or a custom name)
  source: string;  // How the style was defined: "builtin", "override", or "custom"
  recipe: string;  // JSON-encoded array of FilmStyleEffect objects applied at capture
}

Film style (filter) information recorded at capture time. Present when a non-default film style was applied.

  • builtin — A standard preset (mellow, nostalgic, bw) used without modification.
  • override — A built-in preset whose recipe was overridden via filmStyleOverrides.
  • custom — An app-defined style registered via customFilmStyles.

The recipe field is a JSON string that can be parsed into a FilmStyleRecipe (an array of FilmStyleEffect objects).

LocationInfo

interface LocationInfo {
  latitude: string;          // Latitude in decimal degrees (e.g., "37.7749")
  longitude: string;         // Longitude in decimal degrees (e.g., "-122.4194")
  altitude?: string;         // Altitude in meters above sea level (optional)
  accuracy: string;          // Horizontal accuracy radius in meters
  altitudeAccuracy?: string; // Vertical accuracy in meters (optional)
}

GPS location captured at the time of photo/video creation. Coordinates and accuracy are stored as strings to preserve original device precision without floating-point rounding.

Used by: