addrbookFor publishers
← The evidence ledger

Evidence row 2201654

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://linear-algebra.x402tookit.com/transform-compose
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
f97205d82d7ecd08984c6c07c8f3248f76ca15d7003a75bdce40a2ce4bc9fd33
Leaf
0x8d81fc0a47901f1fb411ccbdf9ccfb85beceafe727fdaf11ce4783525c31486f

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://linear-algebra.x402tookit.com/transform-compose"
    ]
  ],
  "name": "Linear Algebra",
  "owner_address": "0xb531320805c5bed1d46aeadcf4f008fdf172dbda",
  "raw": {
    "accepts": [
      {
        "amount": "20000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:8453",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM",
          "transactionVersions": [
            0
          ]
        },
        "maxTimeoutSeconds": 300,
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "payTo": "DUPiupXtuox38dcGoXUKer5mAydCzmaHjrbQ66qeEm8s",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:137",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:42161",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      }
    ],
    "description": "Compose 2D or 3D rotate, scale and translate steps into one homogeneous matrix, optionally applied to a point.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "method": "GET",
            "queryParams": {
              "dim": 2,
              "point": "[1,0]",
              "steps": "[{\"op\":\"rotate\",\"deg\":90},{\"op\":\"translate\",\"tx\":1,\"ty\":0}]"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "asOf": "2026-10-12T00:51:56.774Z",
              "degraded": false,
              "disclaimer": "Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting.",
              "inverse": [
                [
                  0,
                  1
                ],
                [
                  -1,
                  0
                ]
              ],
              "linearPartDeterminant": 1,
              "matrix": [
                [
                  0,
                  -1
                ],
                [
                  1,
                  0
                ]
              ],
              "notChecked": [
                "your graphics library's conventions: this uses column vectors, right-handed axes and counter-clockwise positive rotation, so a row-vector or left-handed system needs the transpose or a sign change",
                "shear, reflection and perspective (not offered)",
                "…1 more"
              ],
              "orderNote": "steps are applied first to last to a column vector, so the matrix is M = S_n * ... * S_2 * S_1",
              "preservesDistances": true,
              "reasons": [
                "Each step is a homogeneous matrix; they are multiplied so the first step acts first.",
                "The linear part is orthonormal: distances and angles are preserved.",
                "…1 more"
              ],
              "rigidMotion": true,
              "size": 3,
              "source": "computed locally",
              "stepsApplied": [
                "rotate(90 deg)",
                "translate(1, 0)"
              ],
              "summary": "Composed 2 steps into one 3x3 matrix; point maps to (1, 1).",
              "transformedPoint": [
                1,
                1
              ],
              "verdict": "TRANSFORM_COMPOSED"
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "dim": {
                      "description": "2 (default, 3x3 matrix) or 3 (4x4 matrix)",
                      "type": "integer"
                    },
                    "point": {
                      "description": "Optional point to transform, JSON like [1,0] or 1,0,0 with dim entries",
                      "type": "string"
                    },
                    "steps": {
                      "description": "JSON list applied in order, e.g. [{\"op\":\"rotate\",\"deg\":90},{\"op\":\"translate\",\"tx\":1,\"ty\":0}]; scale takes s or sx,sy,sz; 3D rotate needs axis",
                      "type": "string"
                    }
                  },
                  "required": [
                    "steps"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "asOf": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "degraded": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "disclaimer": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "inverse": {
                      "items": {
                        "items": {
                          "type": "number"
                        },
                        "type": "array"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "linearPartDeterminant": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "matrix": {
                      "items": {
                        "items": {
                          "type": "number"
                        },
                        "type": "array"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "notChecked": {
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "orderNote": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "preservesDistances": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "reasons": {
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "rigidMotion": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "size": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "source": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "stepsApplied": {
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "transformedPoint": {
                      "items": {
                        "type": "number"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "verdict": {
                      "type": [
                        "null",
                        "string"
                      ]
                    }
                  },
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "lastUpdated": "2026-11-01T23:34:16.445Z",
    "quality": {
      "l30DaysTotalCalls": 2,
      "l30DaysUniquePayers": 2,
      "lastCalledAt": "2026-11-01T23:34:16.28Z"
    },
    "resource": "https://linear-algebra.x402tookit.com/transform-compose",
    "serviceName": "Linear Algebra",
    "tags": [
      "transform",
      "rotation",
      "homogeneous",
      "graphics"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Compose 2D or 3D rotate, scale and translate steps into one homogeneous matrix, optionally applied to a point."
}

What the leaf hashes

{"body":"f97205d82d7ecd08984c6c07c8f3248f76ca15d7003a75bdce40a2ce4bc9fd33","id":2201654,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646807718991,"prev":null,"subject":"x402_bazaar:https://linear-algebra.x402tookit.com/transform-compose","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (444186 rows).

  1. 0x8d81fec0e704d72eaa039069390bc6ba66a6e56895699899964ccad825bd51b3
  2. 0x2319e4abcacfe040a4791ab0bb53b399445a2a8b982cef5d0f03ce811254e41b
  3. 0xb4bfda45b80d4abe1b66668239f25b7ddcf8bf480db8524cb1820fcea68c214c
  4. 0xf524792a4468423c32066b2ff73993091311d26654d86f61eb42487b03b20007
  5. 0xf3b19c4231ed4611b7b91a5a642679032d2a246425ff12ac9c40d440bcb3c241
  6. 0x461be4e5b82c65c1999b55933ae2968af16af516675e85ac8b00d50f8d65d704
  7. 0xd3ef85128c0eb209e4672dd3b65586d9f75eca86b91428ae77cfcb127896038c
  8. 0xde8f3ef4ddf8b8d1ceb5786d5c5612e11091075fcc5fedfbccf4df718bdd1a68
  9. 0x17e4f5ca2787f8276200c59b0d3442d2c170415f204fa56251c35913f5cc142a
  10. 0x87c0d79447711e30d0b7f9b024d72ef89e209f1a2bff3d4d704faf289546801a
  11. 0x11cb0fbcd290c8507a8128d0a17a422bc27efef8f46b56034ee30cb10f5327f4
  12. 0xb030bb42b9eab986acc0da3e948c6aadf4547c06744cd7db6bb54c446df9b380
  13. 0x8e26ae8a6fa3c6baea1cd4108668ed189b835a519376f35f53b7ea9cc4800a95
  14. 0x3f15e4f2fd3ab4091e7284edf8bfed23163b8ef6b0c8fdbd458a498a9bb35a32
  15. 0x5d92631d189bd0292c27a05f85a5ec38ec5f4197dfe4660eb991dc6a511e25a6
  16. 0x5e23ec5954c11a4530aab8c635a72b12bcfeb6fcb03c6cb1a990cc1743424543
  17. 0x1805ef693fbdb2c23fcb61616f830408ca89bec1dc5b68ee47a770ffc0b9760a
  18. 0x4d205063c881c48edbbb37762a8d3bbb7444d4c42daa882f663a231893d25c35
  19. 0x365b161a4b68d750dcc4b3ecce1154a2163c87b08762079428e68f0ebb6a754e
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON