addrbookFor publishers
← The evidence ledger

Evidence row 4354929

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 306c956c-dbe7-4d60-80d7-8d4770f9da33
Recorded
Previous row
#2538813
Body SHA-256
3de9dfcb57553b5e43bb2cf44d616a2b7f1c44cf9b93684009a41390914bf181
Leaf
0xedc9c99202d15bf3bc54e65c377c65cbee64683e2afc9f3144f1d3bbeb41b778

What was observed

{
  "count": 13,
  "tools": [
    {
      "description": "Work other users chose to publish, with the prompt and model used. Public; anonymous.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "1-50, default 12.",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Skip this many (paging).",
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "browse_gallery"
    },
    {
      "description": "Stop a job that is still processing and refund its hold. Requires a \"generate\" key.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "taskId": {
            "description": "The taskId to cancel.",
            "type": "string"
          }
        },
        "required": [
          "taskId"
        ],
        "type": "object"
      },
      "name": "cancel_task"
    },
    {
      "description": "Send one chat turn to a TurboMax text model and return its reply. SPENDS CREDITS (held, then settled to actual usage). Stateless: send the whole conversation in messages, or just message for a single question. Requires a \"generate\" key.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "description": "A single user message.",
            "type": "string"
          },
          "messages": {
            "description": "The conversation so far; the last message must be from the user.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "content": {
                  "type": "string"
                },
                "role": {
                  "enum": [
                    "user",
                    "assistant"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "role",
                "content"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "modelId": {
            "description": "Chat model id from list_chat_models. Omit for the default.",
            "type": "string"
          },
          "reasoningEffort": {
            "description": "Only for models that support it.",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "chat"
    },
    {
      "description": "Approximate credits for a media generation from the live price list. The exact amount is held when you call generate_media; pass maxCredits there to make it a hard ceiling.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "duration": {
            "description": "Seconds, for video models.",
            "type": "number"
          },
          "modelId": {
            "description": "Model id from list_models.",
            "type": "string"
          },
          "resolution": {
            "description": "e.g. \"720p\", \"1080p\". Omit for the model default.",
            "type": "string"
          }
        },
        "required": [
          "modelId"
        ],
        "type": "object"
      },
      "name": "estimate_cost"
    },
    {
      "description": "Start a generation. SPENDS CREDITS from the wallet (held now, settled to the actual cost when the job ends; refunded if it fails). Returns a taskId immediately - follow it with get_task (waitSeconds) until completed. Use only the user's own prompt text. For image-to-video etc. upload the source first (upload_source_media). Requires an API key with the \"generate\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cameraMotion": {
            "description": "From the model's cameraMotions.",
            "type": "string"
          },
          "duration": {
            "description": "Seconds, within the model's durationRange (respect its step).",
            "type": "number"
          },
          "generateAudio": {
            "description": "For models with an audio toggle.",
            "type": "boolean"
          },
          "isInstrumental": {
            "description": "Audio models: no vocals.",
            "type": "boolean"
          },
          "maxCredits": {
            "description": "Spending ceiling. If the cost would exceed it the server refuses and charges nothing. Always set this when no human is watching.",
            "minimum": 0,
            "type": "number"
          },
          "mode": {
            "description": "From the model's modes, if it has any.",
            "type": "string"
          },
          "modelId": {
            "description": "Model id from list_models.",
            "type": "string"
          },
          "negativePrompt": {
            "description": "What to avoid (only models with hasNegativePrompt).",
            "type": "string"
          },
          "prompt": {
            "description": "What to create, in the user's words.",
            "type": "string"
          },
          "ratio": {
            "description": "Aspect ratio from the model's aspectRatios, e.g. \"16:9\".",
            "type": "string"
          },
          "resolution": {
            "description": "From the model's resolutions, e.g. \"720p\".",
            "type": "string"
          },
          "sourceAudioUrl": {
            "description": "Speech-to-video / lip-sync models only (schema.needsAudio): URL of an MP3 or WAV returned by upload_source_media. The job is priced on its measured length; no duration is needed.",
            "type": "string"
          },
          "sourceImageUrl": {
            "description": "URL returned by upload_source_media. Only uploads made through TurboMax are accepted.",
            "type": "string"
          },
          "stylePreset": {
            "description": "From the model's stylePresets. Omit for none (the prompt is used verbatim).",
            "type": "string"
          },
          "task": {
            "description": "Task, e.g. \"text-to-video\", \"image-to-video\". Must be one the model supports.",
            "type": "string"
          },
          "waitSeconds": {
            "description": "Wait up to this many seconds for the result before returning (0-55). Default 0: return the taskId at once.",
            "maximum": 55,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "modelId",
          "prompt"
        ],
        "type": "object"
      },
      "name": "generate_media"
    },
    {
      "description": "Full parameter details and pricing for one media model.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "Model id from list_models.",
            "type": "string"
          }
        },
        "required": [
          "modelId"
        ],
        "type": "object"
      },
      "name": "get_model"
    },
    {
      "description": "Status, progress and result of a job started with generate_media. With waitSeconds it waits for completion. resultUrl is a time-limited link - download or use it promptly. Polling also settles the wallet when the job ends.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "taskId": {
            "description": "The taskId from generate_media (starts with \"tbmx_\").",
            "type": "string"
          },
          "waitSeconds": {
            "description": "Wait up to this many seconds for a final state (0-55). Default 0.",
            "maximum": 55,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "taskId"
        ],
        "type": "object"
      },
      "name": "get_task"
    },
    {
      "description": "Credit balance, credits-per-dollar, today's usage against the account limits, and recent ledger entries.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "transactions": {
            "description": "How many recent ledger entries to include (0-50, default 10).",
            "maximum": 50,
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_wallet"
    },
    {
      "description": "The text/chat models available to chat, with the default and whether each is currently available.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_chat_models"
    },
    {
      "description": "The account's generation history, newest first, with status, cost and result links.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "1-50, default 12.",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Skip this many (paging).",
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "enum": [
              "processing",
              "completed",
              "failed",
              "canceled"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_generations"
    },
    {
      "description": "List the image, video and audio models with what each accepts (tasks, aspect ratios, resolutions, duration range, modes) and its price in credits. Call this before generate_media; use the exact ids and values it returns.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "task": {
            "description": "Only models supporting this task, e.g. \"text-to-video\", \"image-to-video\", \"text-to-image\", \"image-editing\", \"text-to-music\".",
            "type": "string"
          },
          "type": {
            "description": "Only models of this media type.",
            "enum": [
              "video",
              "image",
              "audio"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_models"
    },
    {
      "description": "Re-run a failed or cancelled job as a new job. SPENDS CREDITS again (a fresh hold). Requires a \"generate\" key.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "taskId": {
            "description": "The failed/cancelled taskId.",
            "type": "string"
          }
        },
        "required": [
          "taskId"
        ],
        "type": "object"
      },
      "name": "retry_task"
    },
    {
      "description": "Upload an image, video or audio file (PNG, JPEG, WebP, GIF, MP4, WebM, MOV, MP3, WAV) to use as sourceImageUrl (or, for audio, sourceAudioUrl) in generate_media. Send the bytes as base64 (or a local filePath when this server runs locally). Requires a \"generate\" key.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "dataBase64": {
            "description": "The file bytes, base64-encoded (no data: prefix).",
            "type": "string"
          },
          "filePath": {
            "description": "Absolute path to a local file. Only available when the MCP server runs on your own machine (stdio).",
            "type": "string"
          },
          "filename": {
            "description": "Original file name (informational).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "upload_source_media"
    }
  ]
}

What the leaf hashes

{"body":"3de9dfcb57553b5e43bb2cf44d616a2b7f1c44cf9b93684009a41390914bf181","id":4354929,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1794192362391071,"prev":2538813,"subject":"306c956c-dbe7-4d60-80d7-8d4770f9da33","subject_kind":"endpoint"}

Proof

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

  1. 0xedc92a886819898b2884fea5c619cce7a32eb0be5b35ff32c6dfd386b7a956ac
  2. 0xd9cc7c26ac2f7a4433159deab7920b17b2eab210a5c6fccd34c0a876bfb88e46
  3. 0x7aa3418ef1aee81a0dff2a208ff6542901a6d08b037fdbaadfe6c7626d367fc0
  4. 0x5720c00f3069dc46a9e82014939b6fae5ce6c1a6896e90c08de0e46ea86731e1
  5. 0x990103bada067c328c0af5de142d58d905d56b94b8f183824f712e4efb3f4040
  6. 0x68b8297b265d56097656e72d4a92d61a2e483a0515e833bfe8d303bc4d9d4e87
  7. 0x6b69f94479c28e3eeb6b08b2f017437be2c3be14a129c980092949f42d9a426f
  8. 0xe18e7ecadf535c631a62d886395b5b9b114d5ce0fe5394f32d13a4e93d956ec3
  9. 0x4c3f82ab75fa56f2cd7603e59cadb696097afb642c8e1df154e40e31e3a4fe9a
  10. 0x47cc8f3e403a28e84af86b96e86639e8c80ae4fb4a38e9428d15e22ebefa5b91
  11. 0x3bcbdc5617a67688058e93fd1cd19d757642bc79664c7bbe72d87ede68320648
  12. 0xe5b005274c4585ef058e386cb1fc36315d7248d701a95eacd1930b9509744720
  13. 0x1b6ff232cef6ad928e795377776106a61c1b70258f91d11b0d94ac4411672637
  14. 0xf0760b500fce93f9d270897969daef4f0da67788416a8c50c716ee07145da953
  15. 0x520349e9ec1a43cc9a390fc0ffd8aa818c7b0bcb93d9f11422f34c8abda1641f
  16. 0xf48075ecb1f15a1bf7687654ef6f923785eb6d19aa5ea2f82b5fbaba07217106
  17. 0xb2a5a7fc33b6cc76cfeb52d8faa0b9c7d46ac212a5536cbec294f49ea9053ee0
  18. 0x328b01bfc71370ab67b40d5454193c20720a8c4458773b182964112206938c75
Day root
0xadd23e68d2467b177541de6f25330599d6ddfbb2156c723aa2064f85e01c7cc2
Chained
0xd527699f30feab3ee8deb2be1d65df3f65bd292a7fc58fbfcc8dfa8e9dc59bec
Published
On Arc Testnet, block 71621141: 0x8257214b88f5db5a00aad541f3322e6d61772740bc3a1b67ccfc1eff91e945bb

How to check it · This row as JSON