Skip to content

ISCC SubType WIDE#

IEP: 0016
Title: ISCC SubType WIDE
Author: Titusz Pan tp@iscc.io
Comments: https://github.com/iscc/iscc-ieps/issues/21
Status: Draft
Type: Core
Standard: IEP
License: CC-BY-4.0
Created: 2025-06-19
Updated: 2026-01-19

Note

This document is a DRAFT intended as input to ISO TC 46/SC 9/WG 18 for a future revision of ISO 24138.

1. Introduction#

This proposal defines the ISCC WIDE SubType, a composite ISCC-CODE with extended precision for Data-Code and Instance-Code components using 128-bit digests instead of the standard 64-bit digests.

The WIDE SubType addresses applications requiring higher confidence in media-format-agnostic data identification, verification, and similarity matching, particularly where:

  • large-scale deduplication across extensive data collections is required;
  • higher collision resistance is necessary for data integrity verification;
  • more granular distinction between similar digital assets is needed.

NOTE: The WIDE SubType increases identifier length in exchange for enhanced precision and collision resistance. Applications should evaluate whether the additional precision justifies the increased storage and transmission overhead.


2. SubType WIDE#

The SubType WIDE is a SubType of the MainType ISCC that represents a composite ISCC-CODE containing 128-bit Data-Code and Instance-Code components.

The SubType WIDE shall be assigned the value 7 (0111 in binary) within the ST_ISCC enumeration.

Table 1 – Additional reserved SubType for MainType ISCC

ID Symbol Bits Definition
7 WIDE 0111 Composite of 128-bit Data-Code and Instance-Code ISCC-UNITs

2.1 Format#

An ISCC-CODE with SubType WIDE shall consist of:

  1. An ISCC-HEADER with MainType ISCC and SubType WIDE.
  2. An ISCC-BODY containing exactly two components in the following order:
    • a 128-bit Data-Code digest;
    • a 128-bit Instance-Code digest.

The total length of the ISCC-BODY for SubType WIDE shall be 256 bits (32 bytes).

ISCC-CODE with SubType WIDE example

ISCC:K4AP4P75GGHDLMRHGG2KJQY7NZEPU27HZYSYQ7HWCMHG2RRBK7E5O6Y

2.2 Constraints#

An ISCC-CODE with SubType WIDE shall satisfy the following constraints:

  1. It shall contain only Data-Code and Instance-Code components.
  2. Both the Data-Code and Instance-Code components shall have a length of exactly 128 bits.
  3. No other ISCC-UNIT types (META, SEMANTIC, or CONTENT) shall be included.

2.3 Inputs#

The inputs for generating an ISCC-CODE with SubType WIDE shall be:

  1. A Data-Code with a length of at least 128 bits.
  2. An Instance-Code with a length of at least 128 bits.
  3. An explicit parameter indicating the generation of a WIDE composite.

2.4 Outputs#

Processing of an ISCC-CODE with SubType WIDE shall produce the following output elements:

  1. iscc: the ISCC-CODE in canonical form with SubType WIDE.
  2. units: an array containing the decomposed 256-bit ISCC-UNITs (optional).
  3. wide: a boolean value set to true (optional).
  4. Additional elements collected during processing of the individual components (optional).

2.5 Generation#

An ISCC processor shall generate an ISCC-CODE with SubType WIDE as follows:

  1. Verify that exactly two ISCC-UNITs are provided: one Data-Code and one Instance-Code.
  2. Verify that both input codes have a length of at least 128 bits.
  3. Verify that the explicit WIDE parameter is set to true.
  4. Decode both ISCC-UNITs to binary representation and remove their headers.
  5. Truncate the Data-Code digest to exactly 128 bits.
  6. Truncate the Instance-Code digest to exactly 128 bits.
  7. Concatenate the truncated Data-Code and Instance-Code digests to form the 256-bit ISCC-BODY.
  8. Construct the ISCC-HEADER with MainType set to ISCC, SubType set to WIDE (value 7), Version set to 0, and Length encoded to represent 256 bits.
  9. Prefix the ISCC-BODY with the ISCC-HEADER and encode to canonical form.

If any verification step fails, the processor shall not generate an ISCC-CODE with SubType WIDE and shall report an error.

2.6 Decomposition#

An ISCC processor shall decompose an ISCC-CODE with SubType WIDE as follows:

  1. Decode the ISCC-CODE and extract the ISCC-HEADER.
  2. Verify that the MainType is ISCC and SubType is WIDE.
  3. Verify that the ISCC-BODY length is exactly 256 bits.
  4. Extract the first 128 bits as the Data-Code digest.
  5. Extract the remaining 128 bits as the Instance-Code digest.
  6. Reconstruct the individual Data-Code and Instance-Code ISCC-UNITs with appropriate headers.

If any verification step fails, the processor shall not decompose the ISCC-CODE and shall report an error.

2.7 Comparison#

Similarity comparison for ISCC-CODEs with SubType WIDE shall follow these rules:

  1. Instance-Code comparison: Two WIDE codes with identical Instance-Code components identify the same digital asset.
  2. Data-Code comparison: The Hamming distance between the 128-bit Data-Code components indicates data similarity, where lower values indicate higher similarity.
  3. The 128-bit component length provides twice the bit precision of standard 64-bit comparisons, enabling finer similarity thresholds.

3. Use Cases#

The ISCC WIDE SubType is suitable for:

  1. Digital asset management systems requiring high-precision deduplication across millions of files.
  2. Blockchain and distributed ledger applications where collision resistance is critical.
  3. Content verification systems requiring enhanced confidence in data integrity.
  4. Large-scale media archives requiring fine-grained similarity detection.