{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/celestia/main/json-schema/celestia-blob-schema.json",
  "title": "Celestia Blob",
  "description": "A blob is an opaque payload published to the Celestia data availability layer under a specific namespace. Blobs are the canonical unit for rollups and applications using Celestia for DA.",
  "type": "object",
  "required": ["namespace", "data"],
  "properties": {
    "namespace": {
      "type": "string",
      "description": "Base64-encoded 29-byte namespace identifier. First byte is the namespace version; remaining 28 bytes are the namespace ID.",
      "minLength": 1
    },
    "data": {
      "type": "string",
      "description": "Base64-encoded blob payload."
    },
    "share_version": {
      "type": "integer",
      "description": "Blob share version. 0 is the original version; 1 adds a signer field for accountable signature.",
      "enum": [0, 1]
    },
    "commitment": {
      "type": "string",
      "description": "Subtree-root commitment to the blob (base64 or hex)."
    },
    "index": {
      "type": "integer",
      "description": "Share index where the blob starts in the extended data square."
    },
    "signer": {
      "type": "string",
      "description": "Bech32 celestia1... address of the signer for share_version 1 blobs."
    }
  }
}
