addrbookFor publishers
← The evidence ledger

Evidence row 2538813

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 306c956c-dbe7-4d60-80d7-8d4770f9da33
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d527ee6d3645a11e1a1a28e5192959847028d093c4dd4b8cc3ddbb7450b7c1f3
Leaf
0x122c3110987a552824afc2be9fe050db68d05e6bddf14d9868d18a78b93ea4fd

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"
          },
          "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 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":"d527ee6d3645a11e1a1a28e5192959847028d093c4dd4b8cc3ddbb7450b7c1f3","id":2538813,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793686669595675,"prev":null,"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 (425475 rows).

  1. 0x122bb99f34cb7f414c89b3745d17d3e4d1d62a3a13a814ce565628c22ab5e40f
  2. 0x3418700e053ab454c389641e311276d17212736d10262baba07cb410288eb878
  3. 0x0525d8b5791e2b51f0bea3004a022794efe44bac4ef3c5c4d32e5ba8c2b3e87f
  4. 0x97d27c45fade6fe01ae2a24a0b49bd240862012edbb1ee08b5784a7149096bc6
  5. 0x4007bc82e143349819a535ee36cdbfaf77f5df875169471047b76aa50613ccdf
  6. 0x9bc98d4f2ce5515e6df89e710ed178305766f475dfc66af99233acc3a2119e57
  7. 0x35c6d86e517e428f331fb6d6618a932f5c3337ad974ad0aa153d606e9133736d
  8. 0x40afdeb341fceaf8bd7de3293fd92244b2afde3101488f4eb0bdc5d8d9a40da4
  9. 0x31f87d7c34701da8aacf3529393a7aa534f6cbe317018e660f2667a69480ff26
  10. 0xde79a3fb13590a221bdbe24465e08c17ce470cdbdf89ee323b4efa6621fe20d9
  11. 0x70af87157c86493307a3c20b3a2039b3dd681dfca66f2b2bf327027221a3b083
  12. 0x68d2fb4655d3ce72eca74f74ffb5ec5b7779c0d7a978994c6a2379a8a52b7df1
  13. 0x85cace83986c94d601e82be51de5f4403bcf0442ce39d75a11610de56c90caae
  14. 0x76d3127ff7002aadb80d8fee8c3084e81db30af8fbd02d4fa7d7662d40807bc2
  15. 0xb4a5f7c31f5cf0c432e074558e814e1cf79fb110d635b7af2aa4b424de125934
  16. 0x06da6e1933d86a9ec29befc4660e18827c5663bfa2083536fe460228c0434945
  17. 0xa82fcd0af08a38380e777cb578b71498d941c589c6401f31d445e1685adcc978
  18. 0x012ad914f3f945da3b6b48eddc7a1388613e4afc04339deb76c609611864e9b9
  19. 0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6
Day root
0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
Chained
0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
Published
On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7

How to check it · This row as JSON