# OpenType COLRv1 Paint DAG Materializer & Verifier

> OpenType COLRv1 Paint DAG Materializer & Verifier is a paid API for AI agents from detect.halowerk.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-11-04).

Materializes and verifies complete COLRv1 color-glyph paint directed acyclic graphs including palette, transforms, clip regions, layer/composite order, and variation facts, then compares a SHA256 hash of the typed result.

## Facts

- Endpoint: POST https://detect.halowerk.com/v1/F-TD2000-DOCUMENTS-17-DOCS/opentype191-colrv1-paint-graph-palette-transform-clip-composition?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/opentype-colrv1-paint-dag-materializer-verifier-6573a10d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aa68cUZUf9_hRtF-m4wer

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability opentype-colrv1-paint-dag-materializer-verifier-6573a10d -d '<json body>'
```

Example prompt: I have a COLRv1 color font paint graph with palette indices, clip rectangles, gradient stops, and composite modes — can you materialize the full paint DAG and verify its SHA256 hash against my claim?

## When to prefer this

Use this endpoint when you need authoritative, deterministic verification of a COLRv1 color-glyph paint directed acyclic graph — including exact palette, transform, clip, layer/composite order, and variation facts — and want to confirm a SHA256 hash of the result. Prefer this over generic SVG filter tools or font outline decoders; it is specifically scoped to the OpenType COLRv1 paint graph model, not rasterization or glyph outline decoding.

## Known failure modes

- Invalid paint format integer outside range 1-32 returns validation error
- Composite mode value outside 0-27 is rejected
- Glyph array exceeding 16 items or gradient stops exceeding 16 items are rejected
- Malformed paint ID not matching the identifier pattern causes schema rejection
- SHA256 claim mismatch returns a failed verification with the actual computed hash
- Missing required fields (paints, glyphs, root, palette, foreground) result in 400 error
- Circular paint DAG references may cause processing failure
- Alpha values outside 0-2 range are rejected

## How this service works

Materialize complete COLRv1 color-glyph paint DAGs with palette, transform, clip, layer/composite order and exact variation facts; not generic SVG filters or font outline decode.. Compare the complete typed result SHA256.

## Output

A fully materialized COLRv1 paint DAG with all palette mappings, transform data, clip regions, layer/composite ordering, and variation facts, plus a SHA256 hash of the typed result compared against the submitted claim — returning pass/fail on the hash comparison along with the computed digest.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "artifact": {
   "type": "object",
   "$defs": {
    "a": {
     "not": {
      "type": "string",
      "pattern": "[\\r\\n  ]"
     },
     "type": "string",
     "pattern": "^[A-Za-z][A-Za-z0-9_-]*$",
     "maxLength": 24,
     "minLength": 1
    }
   },
   "required": [
    "colrPaint"
   ],
   "properties": {
    "colrPaint": {
     "type": "object",
     "required": [
      "data",
      "claim"
     ],
     "properties": {
      "data": {
       "type": "object",
       "required": [
        "paints",
        "glyphs",
        "root",
        "palette",
        "foreground"
       ],
       "properties": {
        "root": {
         "$ref": "#/properties/input/properties/body/properties/artifact/%24defs/a"
        },
        "glyphs": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "id",
           "paint",
           "clip"
          ],
          "properties": {
           "id": {
            "$ref": "#/properties/input/properties/body/properties/artifact/%24defs/a"
           },
           "clip": {
            "type": [
             "array",
             "null"
            ],
            "items": {
             "type": "number",
             "maximum": 1000000,
             "minimum": -1000000
            },
            "maxItems": 4,
            "minItems": 4
           },
           "paint": {
            "$ref": "#/properties/input/properties/body/properties/artifact/%24defs/a"
           }
          },
          "additionalProperties": false
         },
         "maxItems": 16,
         "minItems": 1
        },
        "paints": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "id",
           "format",
           "children",
           "glyph",
           "palette",
           "alpha",
           "params",
           "stops",
           "extend",
           "mode"
          ],
          "properties": {
           "id": {
            "$ref": "#/properties/input/properties/body/properties/artifact/%24defs/a"
           },
           "mode": {
            "type": "integer",
            "maximum": 27,
            "minimum": 0
           },
           "alpha": {
            "type": "number",
            "maximum": 2,
            "minimum": 0
           },
           "glyph": {
            "anyOf": [
             {
              "type": "null"
             },
             {
            
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/opentype-colrv1-paint-dag-materializer-verifier-6573a10d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from detect.halowerk.com](https://www.zero.xyz/host/detect.halowerk.com/llms.txt)
