{ "title": "CIP-108 Common", "description": "Metadata document for Cardano governance actions, extending CIP-100", "type": "object", "required": ["hashAlgorithm", "authors", "body"], "properties": { "hashAlgorithm": { "$ref": "#/definitions/hashAlgorithm" }, "authors": { "$ref": "#/definitions/authors" }, "body": { "$ref": "#/definitions/body" } }, "definitions": { "hashAlgorithm": { "type": "string", "enum": ["blake2b-256"], "title": "Hash Algorithm", "description": "The algorithm used to authenticate this document externally (CIP-100)" }, "authors": { "title": "Authors", "description": "The authors of this governance metadata (CIP-100)", "type": "array", "items": { "$ref": "#/definitions/author" } }, "author": { "title": "Author", "description": "An author endorsing the content of a metadata document (CIP-100)", "type": "object", "required": ["name", "witness"], "properties": { "name": { "type": "string", "title": "Name" }, "witness": { "$ref": "#/definitions/witness" } } }, "witness": { "title": "Witness", "description": "A witness proving that the author endorses the content of the metadata", "type": "object", "properties": { "witnessAlgorithm": { "title": "WitnessAlgorithm", "type": "string", "enum": [ "ed25519", "CIP-0008"] }, "publicKey": { "title": "PublicKey", "type": "string" }, "signature": { "title": "Signature", "type": "string" } } }, "body": { "title": "Body", "description": "The body of the metadata document that is hashed to produce a signature (CIP-100)", "type": "object", "required": ["title", "abstract", "motivation", "rationale"], "properties": { "title": { "type": "string", "title": "Title", "description": "A brief introduction to the motivation for the governance action" }, "abstract": { "type": "string", "title": "Abstract", "description": "A concise summary of the motivation and rationale for the governance action" }, "motivation": { "type": "string", "title": "Motivation", "description": "Context around the problem being addressed by the on-chain action" }, "rationale": { "type": "string", "title": "Rationale", "description": "Explanation of how the governance action addresses the problem outlined in 'motivation'" }, "references": { "type": "array", "title": "References", "items": { "$ref": "#/definitions/reference" } } } }, "reference": { "title": "Reference", "description": "A reference to a document", "type": "object", "required": ["@type", "label", "uri"], "properties": { "@type": { "type": "string", "enum": ["GovernanceMetadata", "Other"], "title": "Type" }, "label": { "type": "string", "title": "Label" }, "uri": { "type": "string", "title": "URI" }, "referenceHash": { "$ref": "#/definitions/referenceHash" } } }, "referenceHash": { "title": "Reference Hash", "description": "A hash of a reference document", "type": "object", "required": ["hashDigest", "hashAlgorithm"], "properties": { "hashDigest": { "type": "string", "title": "Hash" }, "hashAlgorithm": { "$ref": "#/definitions/hashAlgorithm" } } } } }