addrbookFor publishers
← The evidence ledger

Evidence row 1785885

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 0e02808c-2091-44a8-9e2c-044d4f1cae67
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
e954f3be77ce357fa2ff86f16f722f28136ecc2d3744ce8027f02789800eecfe
Leaf
0x67783fc13e120325f570d79690d0a0559f991a599e7bda4fc15f206b9ec58bbc

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Approve the storyboard and start rendering (the only call that spends the account's minutes)\n\nUse only after the user has seen the storyboard and agreed: this is the panel's approval button. The minutes for the lesson are held at this call and the render is queued. Do not approve on the user's behalf without their go-ahead. Check get_usage first if the balance may be tight.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "id",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "approve_lesson"
    },
    {
      "description": "Create a video lesson from a document (use when someone wants a document turned into a video)\n\nUse when the user brings a document, PDF, deck, page or text and wants a video, a lesson, an explainer or a summary video of it. Send the file as multipart, or `text`/`url` as JSON. Returns a lesson id immediately; nothing renders until approve_lesson, so creating costs no minutes. Follow it with get_lesson until the storyboard needs approval. With an Idempotency-Key the same request inside 24h returns the same lesson (same key, different body is 409). API documentation: https://zipirapp.com/en/api/",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "format": {
            "description": "Video format. GET /v1/formats lists the live set.",
            "enum": [
              "briefing",
              "clay",
              "docwalk",
              "whiteboard",
              "illustrated",
              "intuition",
              "panels",
              "brand",
              "mascothost",
              "timeline",
              "cutaway",
              "mapstory"
            ],
            "type": "string"
          },
          "text": {
            "description": "The lesson text itself (UTF-8, max 5 MB).",
            "maxLength": 5242880,
            "type": "string"
          },
          "title": {
            "description": "Shown in the panel and used in the download file name.",
            "maxLength": 200,
            "type": "string"
          },
          "url": {
            "description": "A public http(s) page; its readable text becomes the document.",
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "create_lesson"
    },
    {
      "description": "Get a signed download link for the finished video (use when the video is ready and the user wants the file)\n\nUse once get_lesson says the video is done. Returns a URL (valid 900 s) to the MP4, not the file itself: hand the link to the user or fetch it. `variant=720` is the light copy every plan gets, `variant=1080` is full quality and needs a paid plan.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "id",
            "format": "uuid",
            "type": "string"
          },
          "variant": {
            "default": "1080",
            "description": "variant",
            "enum": [
              "720",
              "1080"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_download"
    },
    {
      "description": "Check a lesson's status (poll this after create_lesson and after approve_lesson)\n\nUse whenever you need to know where a lesson stands: after creating it, while it renders, or before downloading. `status` is the machine state (queued | rendering | done | failed), `phase` is finer, `needs_approval` is true while the storyboard waits for a human, and `next` says which call to make next. Costs no minutes.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "id",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_lesson"
    },
    {
      "description": "Check remaining video minutes before spending any (call this before approve_lesson if unsure)\n\nUse when the user asks how much is left, or before approve_lesson when the balance may be tight. The limit is the account's own entitlement (optionally narrowed per key), never a second rule; `used` counts the minutes of finished videos in the current period.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_usage"
    },
    {
      "description": "List video formats (call this before create_lesson when the user names a style)\n\nUse when someone asks which styles exist, or before create_lesson if they said a style (\"short\", \"explainer\", \"vertical\"). Returns format ids to pass to create_lesson; never hard-code an id, read it here. No minutes are spent.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_formats"
    },
    {
      "description": "List this account's recent lessons (use when someone asks \"my videos\", \"what did I make\", or wants to continue an earlier one)\n\nUse when the user refers to their own earlier work: their videos, the lesson they started yesterday, the one waiting for approval. Returns the newest lessons with id, title, status, minutes and a link to open each. Read-only and free. Pass `status` to narrow (queued | rendering | done | failed) and `limit` (default 20, max 50).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 20,
            "description": "How many to return (default 20, max 50).",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "status": {
            "description": "Only lessons in this state.",
            "enum": [
              "queued",
              "rendering",
              "done",
              "failed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_lessons"
    }
  ]
}

What the leaf hashes

{"body":"e954f3be77ce357fa2ff86f16f722f28136ecc2d3744ce8027f02789800eecfe","id":1785885,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793558328969635,"prev":null,"subject":"0e02808c-2091-44a8-9e2c-044d4f1cae67","subject_kind":"endpoint"}

Proof

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

  1. 0x67786ee7ee49bae946f530700a9208f146a7616e5cabd9ef4f140b5c8487be6b
  2. 0xb5bc0178a1d51b73017b0d445053a0cc49609a7dad91b8e32f9c83fa231df388
  3. 0x12d5589a3373ddd2acf14f8a9f1cfaf13b99b0193077b778548b72d5ca08fa1c
  4. 0x22049aaba5c89d9a5f5a2b8c1bd9bc9be28f1eb99d6e9b5b1f84ad94ad4728eb
  5. 0xc2cd580f1b0ea6498c4bb85dd6f40307b89eb9d372d198adeb5fb9035747a0e4
  6. 0x441457b4c30b9077222db5bb1e390bcf71b831c793f82603514cdb30ea8a2fa1
  7. 0x3c1643422bf545b2a302b6a00c1ba6c8a8bf1e99350b1fbd772e7a754cd73b84
  8. 0x55019ac32881d3f4c43f7e56dce6cf2c9d3f45e626729f4d3d121720faf0ff7d
  9. 0xd890b8bc085f9cfedd6b971bc0f34db4ad6ea408a478e635fd362ba26279a935
  10. 0xa81f12c441d33aa4ef2dc4ad30502af7096a8f32a57d1890c266936f6489a7ac
  11. 0x7c4acfb1f90d22466adcc42d40ef5b0c49eeb792a7e84751123e87caa237291b
  12. 0x4d01363b09245e5a378fd3e36ea3b2ca12178bb6e49aada231fc1c8a32ead3b6
  13. 0x4d3d9020d1e2b76c6f3e7026770b57c7f8eb1d9a7979369bb6db7c1fbe7607d4
  14. 0xf2a2a0157f28bf3255c9b6847cbe675ba213d3983bbfe1c0848c216c57838e54
  15. 0x7c66173839ef153f08dfd346f7ea956e9226e1b7ff05bf4c6cf27436953f336b
  16. 0xc1f6e8dd182b37cbb6e04d0e69486bd40d440934f8e373b9bae8cb78de508bba
  17. 0x97f6f39e601b6ef0e47b730aa0488b718c0d7882ad840342bbd7d3a705a1b3a2
  18. 0x1973893697931b7512ae5dc1a3c92ef92f633ae3574dce9029a35b5e94d2d364
  19. 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
Day root
0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
Chained
0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
Published
On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90

How to check it · This row as JSON