Skip to content

Catalyst Signed Document Specification

Abstract

Project Catalyst requires a verifiable data format for the publication and validation of large volumes of off chain information.

The Catalyst Signed Documents Specification is based on COSE and provides the basis of this document specification.

Motivation

As Project Catalyst decentralizes via both on-chain and off-chain mechanisms, a reliable, standardized process for authenticating documents and their relationships is required.

Specification

Project Catalyst generates a large volume of off chain information. This information requires similar guarantees as on-chain data. It needs to be verifiably published and also immutable. However, we also require the ability to publish new versions of documents, and for documents to be able to securely reference one another.

Catalyst Signed Documents are based on COSE. Specifically, the COSE Sign format is used. This allows one or more signatures to be attached to the same document.

COSE Header Parameters

COSE documents define a set of standard COSE header parameters. All COSE Header Parameters are protected and MUST appear in the protected headers section of the document. The COSE header parameters defined and used by Catalyst Signed Documents are as follows:

content type

IANA Media Type/s allowed in the Payload

  • Required : yes
  • Cose Label : 3
  • Format : IANA Media Type
  • Supported Values:

content-encoding

Supported HTTP Encodings of the Payload. If no compression or encoding is used, then this field must not be present.

  • Required : optional
  • Cose Label : content-encoding Custom Header
  • Format : HTTP Content Encoding
  • Supported Values:

Metadata

Catalyst Signed Documents extend the Header Parameters with a series of Metadata fields. These fields are defined here.

Signing Catalyst Signed Documents

Catalyst Signed Documents are based on the COSE Sign format. This allows one or more signatures to be attached to the same document. A catalyst signed document MUST have at least one valid signature attached. Multiple signatures may also be attached to the same document, where that is required.

Each signature is contained in an array of signatures attached to the document. The signatures contain protected headers, and the signature itself. The headers currently defined for the signatures are:

kid

The kid is a UTF-8 encoded Catalyst ID. Any kid format which conforms to the Catalyst ID specification may be used. The Catalyst ID unambiguously defines both the signing keys and signing algorithm used to sign the protected portion of the document.

  • Required: yes
  • Cose Label: 4
  • Format: UTF-8 encoded Catalyst ID
Copyright © 2024-2025 IOG Singapore, All Rights Reserved
License This document is licensed under CC-BY-4.0
Created 2024-12-27
Modified 2025-04-09
Authors Alex Pozhylenkov alex.pozhylenkov@iohk.io
Steven Johnson steven.johnson@iohk.io

Changelog

0.01 (2025-04-04)

  • First Published Version

0.02 (2025-04-09)

  • Add version control changelogs to the specification.