Standard / ISO 24138:2024

A common language for digital content.

An international standard with an open source reference implementation. A shared foundation for identifying content across media types, organizations and systems.

At a glance

ISO 24138:2024

Information and documentation —
International Standard Content Code (ISCC)

Published
May 2024
Standards committee
ISO/TC 46/SC 9
Reference implementation
iscc-core ↗
Implementation licence
Apache 2.0

01 / Scope

What the standard defines.

A reproducible method for generating and encoding content-derived codes.

Structure of an ISCC-CODE as defined in ISO 24138:2024Three views of a digital asset feed the ISCC-UNITs. Metadata, the title and description, gives the Meta-Code. Content, such as text, image, audio or video, gives the Content-Code and the Semantic-Code, which is reserved. The bytes of the file give the Data-Code and the Instance-Code. Every unit has its own header and a body of up to 256 bits. Meta-, Semantic-, Content- and Data-Code are similarity hashes compared by Hamming distance; the Instance-Code is a checksum that is identical or not. An ISCC-CODE is a compact summary of the units: one header of MainType, SubType, Version and Length before the first 64 bits of each unit, sorted and without their own headers, written in Base32 with the ISCC: prefix. Data-Code and Instance-Code are required; the other units are optional. The example shows four 256-bit units and the ISCC-CODE composed from them.01 /Digital asset02 /ISCC-UNITsheader and body, up to 256 bit eachMetadatatitle and descriptionContenttext, image, audio, videoDatathe bytes of the fileMeta-CodeDescriptive similaritysimilarity hash · 256 bitAAD56LD5MCLQSOKA6KYT7TEO6OL3S45K75SSPDK6GMVJG3JLB3EYDTYSemantic-CodeSemantic similarityreserved in this editionno standardized algorithmContent-CodePerceptual similaritysimilarity hash · 256 bitEADSDCBU4PL6GS5BXHORLYBJPP6BVX64R2LXWMGU75DYTKEX5S4RN7QData-CodeBinary similaritysimilarity hash · 256 bitGADWJTCRDGSYGIR3DM7IXOGXUR2BDN2IWL5FODSUOZWR5LJSJGAA64QInstance-CodeExact file identitychecksum · 256 bitIAD5HRLMWURHDA22ZMOPUKAOWJBROT7CR64OV5QWHCWE52MNFXF2WBYfirst 64 bits of each unit · sorted · one header added03 /ISCC-CODEa compact summary, 64 bit per unitHeaderMainType · SubTypeVersion · LengthMeta-Codefirst 64 bitContent-Codefirst 64 bitData-Codefirst 64 bitInstance-Codefirst 64 bitISCC:KAC56LD5MCLQSOKAEGEDJY6X4NF2CZGMKEM2LAZCHPJ4K3FVEJYYGWQcanonical form, Base32Required: Data-Code and Instance-Code. Optional: Meta-, Semantic- and Content-Code.Similarity hashes, compared by Hamming distanceChecksum, identical or notReserved

Full-length units, one compact code.

Every ISCC starts with a header that names its MainType, SubType, Version and Length, followed by a hash body of up to 256 bits. The standard specifies the algorithm behind each ISCC-UNIT: similarity hashes of the metadata, the content and the bytes, and a cryptographic checksum of the exact file.

The units carry the detail. An ISCC-CODE is their compact summary: the first 64 bits of each, sorted behind one common header and written in Base32 with the ISCC: prefix. Semantic-Code is reserved and has no standardized algorithm in this edition.

Structure

A consistent code format.

Headers, encoding and composition rules make ISCCs recognizable and interpretable across implementations.

Algorithms

Different views of a file.

Meta-Code, Content-Code, Data-Code and Instance-Code describe metadata, perception, binary similarity and exact identity.

Interoperability

A common reference.

The open source Electronic Insert provides the standard's reference implementation for the codec and algorithms.

Explore the components →

Open implementation

Read it. Run it.
Build on it.

The reference implementation is available under Apache 2.0. Explore the algorithms, verify results and integrate content identification into your own tools.

Explore iscc-core on GitHub ↗

02 / The boundaries

A standard with room to build.

Identification is the shared layer.

The standard gives systems a way to identify and compare content. It does not determine the rights to a work, certify a product, or establish whether a claim is true.

Registries, licensing services, search tools and other applications can use ISCC while retaining their own data and responsibilities.

Extensions are separate work.

The ISCC-ID and Discovery Protocol are described in separate ISCC Enhancement Proposals. They are not part of ISO 24138:2024.

Semantic-Code algorithms are also outside the first edition's standardized algorithms; the type is reserved for future development.

Read the Enhancement Proposals ↗

03 / A collective effort

From an idea to an international standard.

  1. An idea, then a prototype.

    Titusz Pan designs ISCC. The Content Blockchain Project, funded by Google's Digital News Initiative, turns it into open source code and the ISCC 1.0 specification.

  2. An international working group.

    ISO/TC 46/SC 9 accepts ISCC as a work item and establishes WG 18. The Foundation is established in the Netherlands.

    Read the announcement →
  3. Development and collaboration.

    ISCC joins the ONIX for Books code lists. The reference software is rebuilt as iscc-core and iscc-sdk while the standard moves through the ISO drafting stages.

  4. ISO 24138 is published.

    ISCC becomes an international standard for digital content identification and is registered on the C2PA soft-binding algorithm list.

    Read the publication announcement →
  5. Provenance, policy and science.

    WG 18 begins a Technical Report on soft binding. ISCC is referenced across content-provenance and AI-authenticity efforts and applied to scientific bioimaging.

Read the full history →

For developers

Bring the standard into your work.

Find the libraries, documentation and examples to get started.

Explore the resources