addrbookFor publishers
← The evidence ledger

Evidence row 309319

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 11e60494-8b88-46c5-a6a9-64a38621af31
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
619e5450620be85183e1364e81e663685bbdf822bdedfa380b256de04717e230
Leaf
0xabb701f7792ec1a90c1c6319eb0fef7ab2cecbd6341dbe93ce6b886bea362550

What was observed

{
  "count": 6,
  "tools": [
    {
      "description": "Returns the current state of a SpriteForge edit session: a preview image, its size and palette, how many edits were saved, and a PNG URL with the exact pixels at 1x (add &frame=N for another frame). With include_pixels it also returns the palette-index grid. Read-only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "include_pixels": {
            "description": "Also return the palette and index grid (default false).",
            "type": "boolean"
          },
          "session_id": {
            "description": "An edit session's id (the s= value of an edit link), or the edit link itself.",
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "type": "object"
      },
      "name": "get_sprite"
    },
    {
      "description": "Loads an edit session's sprite into the SpriteForge editor card. Only the card calls it.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "type": "object"
      },
      "name": "load_art"
    },
    {
      "description": "Opens pixel art in SpriteForge's compact pixel editor - pencil, eraser, fill, colour picker, palette, undo and animation frames - as an interactive card where the app shows them, and returns an edit link (the same editor in a browser) and a session_id. No account needed. One source at most: png_base64 (an existing PNG), art (palette + index grid), or neither for a blank width x height canvas. Max 128x128 pixels and 256 colours. The user's edits save to the edit session automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "art": {
            "description": "Pixel art in SpriteForge's format: palette = hex colours, grid = rows of palette indexes (-1 = transparent). Optional frames for an animation, each { grid } on the same palette.",
            "properties": {
              "frames": {
                "items": {
                  "properties": {
                    "grid": {
                      "items": {
                        "items": {
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "grid"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "grid": {
                "items": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              "palette": {
                "items": {
                  "type": "string"
                },
                "maxItems": 256,
                "type": "array"
              }
            },
            "required": [
              "palette",
              "grid"
            ],
            "type": "object"
          },
          "height": {
            "description": "Blank canvas height in pixels (default 32).",
            "maximum": 128,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "Sprite name, used as the download filename (letters, digits, _ and -).",
            "type": "string"
          },
          "palette": {
            "description": "Starting palette for a blank canvas, as hex colours.",
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "type": "array"
          },
          "png_base64": {
            "description": "A PNG file, base64-encoded (a data: URL prefix is fine). Pixels under 50% alpha become transparent.",
            "type": "string"
          },
          "width": {
            "description": "Blank canvas width in pixels (default 32).",
            "maximum": 128,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "open_editor"
    },
    {
      "description": "Opens a sprite in SpriteForge's full pixel editor - layers, selection and move, line/rectangle/ellipse, mirror painting, brush sizes, animation frames with onion skin and playback, palette tools - as an interactive card where the app shows them, and returns an edit link that opens the same editor in a browser. One source at most: session_id (an edit session that's already open, or an edit link), png_base64 (an existing PNG), art (palette + index grid), or none for a blank width x height canvas. Max 128x128 pixels and 256 colours. The user's edits save to the edit session.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "art": {
            "description": "Pixel art in SpriteForge's format: palette = hex colours, grid = rows of palette indexes (-1 = transparent). Optional frames for an animation, each { grid } on the same palette.",
            "properties": {
              "frames": {
                "items": {
                  "properties": {
                    "grid": {
                      "items": {
                        "items": {
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "grid"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "grid": {
                "items": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              "palette": {
                "items": {
                  "type": "string"
                },
                "maxItems": 256,
                "type": "array"
              }
            },
            "required": [
              "palette",
              "grid"
            ],
            "type": "object"
          },
          "height": {
            "description": "Blank canvas height in pixels (default 32).",
            "maximum": 128,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "Sprite name, used as the download filename (letters, digits, _ and -).",
            "type": "string"
          },
          "palette": {
            "description": "Starting palette for a blank canvas, as hex colours.",
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "type": "array"
          },
          "png_base64": {
            "description": "A PNG file, base64-encoded (a data: URL prefix is fine). Pixels under 50% alpha become transparent.",
            "type": "string"
          },
          "session_id": {
            "description": "An edit session that's already open, or an edit link containing ?s=<id>.",
            "type": "string"
          },
          "width": {
            "description": "Blank canvas width in pixels (default 32).",
            "maximum": 128,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "open_full_editor"
    },
    {
      "description": "Opens a tileset in SpriteForge's tileset editor as an interactive card where the app shows them, and returns an edit link that opens the same editor in a browser. For a Wang autotile set (16 tiles; tile i is drawn where the map cells at its corners are painted, NW=1 NE=2 SW=4 SE=8, so tile 15 is the solid base) the user paints a small map to see the tiles chain, draws on the map or on single tiles, and edits the base texture, which re-derives the edge tiles (tiles drawn by hand stay); a platformer set (49 tiles) is edited tile by tile. With session_id it opens a tileset that's already in an edit session, and kind (wang = flat floor terrain, wall, iso) switches that Wang set's preview, keeping its tiles and the user's edits. Otherwise it makes a new set from kind (wang, wall, iso or platformer; default wang) plus palette + tiles (16 or 49 grids in mask order), palette + base (a seamless square texture; the 16 Wang tiles are derived from it as SpriteForge does), png_base64 (a tileset sheet or a texture), or size alone for a blank set. With png_base64 and no layout, a 16x1 image is a strip, and a square one is a 4x4 sheet when its tiles look like a Wang set in mask order (tile 0 empty, or nearly every tile's corners matching tile 15 where its mask has that corner and tile 0 where it doesn't), else a texture. The result says which view it opened and how it read the PNG. The user's edits save to the edit session.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "base": {
            "description": "A square seamless texture to derive a Wang set's 16 tiles from.",
            "items": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            "type": "array"
          },
          "kind": {
            "description": "wang (flat floor terrain), wall (Wang walls), iso (isometric Wang) or platformer. For a new set, default wang. With session_id, wang, wall or iso switches that Wang set's preview, keeping its tiles; a Wang set can't become a platformer set or the other way round.",
            "enum": [
              "wang",
              "wall",
              "iso",
              "platformer"
            ],
            "type": "string"
          },
          "layout": {
            "description": "How to read png_base64: sheet (4x4 Wang sheet, or a platformer set's 7x7), strip (16x1) or texture (a square base texture the 16 Wang tiles are derived from). Default: guessed from the image (see the tool description).",
            "enum": [
              "sheet",
              "strip",
              "texture"
            ],
            "type": "string"
          },
          "name": {
            "description": "The set's name.",
            "type": "string"
          },
          "palette": {
            "description": "Hex colours for tiles or base.",
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "type": "array"
          },
          "png_base64": {
            "description": "A tileset PNG (a Wang set's 4x4 sheet or 16x1 strip, a platformer set's 7x7 sheet) or a square texture, base64.",
            "type": "string"
          },
          "session_id": {
            "description": "An existing tileset edit session, or an edit link containing ?s=<id>. Give kind with it to change a Wang set's preview; the other fields are for a new set.",
            "type": "string"
          },
          "size": {
            "description": "Tile size for a blank set (default 32).",
            "maximum": 64,
            "minimum": 4,
            "type": "integer"
          },
          "tiles": {
            "description": "The set's tiles in mask order (16 for Wang kinds, 49 for platformer), palette indexes, -1 transparent.",
            "items": {
              "items": {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "type": "array"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "open_tileset_editor"
    },
    {
      "description": "Saves the user's edits from the SpriteForge editor card to its edit session. Only the card calls it.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "art": {
            "description": "Pixel art in SpriteForge's format: palette = hex colours, grid = rows of palette indexes (-1 = transparent). Optional frames for an animation, each { grid } on the same palette.",
            "properties": {
              "frames": {
                "items": {
                  "properties": {
                    "grid": {
                      "items": {
                        "items": {
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "grid"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "grid": {
                "items": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              "palette": {
                "items": {
                  "type": "string"
                },
                "maxItems": 256,
                "type": "array"
              }
            },
            "required": [
              "palette",
              "grid"
            ],
            "type": "object"
          },
          "session_id": {
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "art"
        ],
        "type": "object"
      },
      "name": "save_art"
    }
  ]
}

What the leaf hashes

{"body":"619e5450620be85183e1364e81e663685bbdf822bdedfa380b256de04717e230","id":309319,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793058822290706,"prev":null,"subject":"11e60494-8b88-46c5-a6a9-64a38621af31","subject_kind":"endpoint"}

Proof

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

  1. 0xabb6f7c13082b59e538326f79c540a616abcb83c4b8b23e88ba605b09d08fb13
  2. 0xeafd757764fbad53cd83cd1cdaa1a267b55b04541b96a00ab46d701e6db0084e
  3. 0xe09deddb099b4b2c37bf8487bec0ba5c0da2e4fcc8134bc0bcd0d1f287fc586e
  4. 0x97ed9fa622fb4a72c9a643ca2c95273a9b8855dfe3a32e9dfb05080a77b37a0f
  5. 0x2c64ae9017817bd08b42cc2f50d746c5c2ae7f8ac8e5f936ed22047ff149d314
  6. 0x2f349bcd2d8091a66eb871b8ee952ecdbe44c26558cbe90efd8e60177839a486
  7. 0x51ffdeed804d2bdb45c0beb8d0bb3793230628490199e0818aa08cb8b0798ff3
  8. 0xbcc21a86fe9654e2d8a572aaebc227e581240dfe71fa65a176927de79a1e9f29
  9. 0xa4f59800b0bebd4b878392131b9045ba6400f102985af38c318245edfedadec3
  10. 0xc7cacc2d01c3e1b7ffb7608f2b307b4082bdded2ad2fc7c4373e088c0cadb4c9
  11. 0xe285855b14529e4bf6d93d3ce05a3365dcfc651d48b9dfeb5c229a51822613eb
  12. 0xb7fae69bb7bd717d54a83df961404a3e4de2a5cfbcfa013fd83a38627fe13f7e
  13. 0x4700d6dfdb40e52e2ceb8ffe62c75f3f708d23452f828255fd003d795f5d9d66
  14. 0x3b4dba7d874fc323b0a364140a9c60f37bf547fe671897653118a9873fe03420
  15. 0x1a74ed3b3756b9cd946da49701bcec120ec88645013da99fa9eea60b39e1a570
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON