← 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).
- 0x122bb99f34cb7f414c89b3745d17d3e4d1d62a3a13a814ce565628c22ab5e40f
- 0x3418700e053ab454c389641e311276d17212736d10262baba07cb410288eb878
- 0x0525d8b5791e2b51f0bea3004a022794efe44bac4ef3c5c4d32e5ba8c2b3e87f
- 0x97d27c45fade6fe01ae2a24a0b49bd240862012edbb1ee08b5784a7149096bc6
- 0x4007bc82e143349819a535ee36cdbfaf77f5df875169471047b76aa50613ccdf
- 0x9bc98d4f2ce5515e6df89e710ed178305766f475dfc66af99233acc3a2119e57
- 0x35c6d86e517e428f331fb6d6618a932f5c3337ad974ad0aa153d606e9133736d
- 0x40afdeb341fceaf8bd7de3293fd92244b2afde3101488f4eb0bdc5d8d9a40da4
- 0x31f87d7c34701da8aacf3529393a7aa534f6cbe317018e660f2667a69480ff26
- 0xde79a3fb13590a221bdbe24465e08c17ce470cdbdf89ee323b4efa6621fe20d9
- 0x70af87157c86493307a3c20b3a2039b3dd681dfca66f2b2bf327027221a3b083
- 0x68d2fb4655d3ce72eca74f74ffb5ec5b7779c0d7a978994c6a2379a8a52b7df1
- 0x85cace83986c94d601e82be51de5f4403bcf0442ce39d75a11610de56c90caae
- 0x76d3127ff7002aadb80d8fee8c3084e81db30af8fbd02d4fa7d7662d40807bc2
- 0xb4a5f7c31f5cf0c432e074558e814e1cf79fb110d635b7af2aa4b424de125934
- 0x06da6e1933d86a9ec29befc4660e18827c5663bfa2083536fe460228c0434945
- 0xa82fcd0af08a38380e777cb578b71498d941c589c6401f31d445e1685adcc978
- 0x012ad914f3f945da3b6b48eddc7a1388613e4afc04339deb76c609611864e9b9
- 0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6
- Day root
- 0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
- Chained
- 0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
- Published
- On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7