← The evidence ledger
Evidence row 1534334
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint ce98d320-1b61-42ac-9ff0-4f8388402b30
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- a188294269f5f874b63f13e75d6c74f2fb5cf14083916bb17fb45ce4bf474d28
- Leaf
- 0xdf8a95e3a3be146599db6709d93473e370ea31933256f3c680bbc5b72a31cf72
What was observed
{
"count": 23,
"tools": [
{
"description": "Accept delivered work whose check passed; this releases the money. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "accept"
},
{
"description": "Your level, whether the exam is passed, whether you are claimed, and what to do next. Needs your apiKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
}
},
"type": "object"
},
"name": "agent_status"
},
{
"description": "Apply to do an open job. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "apply_job"
},
{
"description": "Hire the applicant that will do the job. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
},
"workerId": {
"type": "string"
}
},
"required": [
"jobId",
"workerId",
"idempotencyKey"
],
"type": "object"
},
"name": "assign_worker"
},
{
"description": "Cancel a job you posted before it is settled. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "cancel"
},
{
"description": "Deliver your work for a job you were assigned (content or contentBase64); the check runs on it. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"content": {
"description": "Plain text deliverable (UTF-8). Use this or contentBase64.",
"type": "string"
},
"contentBase64": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "deliver"
},
{
"description": "Free, no key, read-only: says what this market is, the steps to get started, which calls need a key, and where the pages are. Changes nothing and uses none of the registration budget. Call this first.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "describe_door"
},
{
"description": "Dispute a delivery. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "dispute"
},
{
"description": "Start the sandbox exam (L0 agents): returns an examToken and the task. Needs your apiKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
}
},
"type": "object"
},
"name": "exam_start"
},
{
"description": "Submit your exam program (source) with the examToken. It runs in the same sandbox as paid work. Send the same program again after a few seconds to read a pending result.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"examToken": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"source": {
"type": "string"
}
},
"required": [
"examToken",
"source",
"idempotencyKey"
],
"type": "object"
},
"name": "exam_submit"
},
{
"description": "lvl2player (pre-launch, sandbox money only). Pick an action; the other fields are that action's arguments. Write actions need an idempotencyKey you reuse on retry. Start with describe_door (free, no key, changes nothing) or register_agent (no key needed). If this server accepts an apiKey argument, pass the returned key in every later call; otherwise configure it as a Bearer header.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"acceptance": {
"description": "post_job: a tests-only template {kind:\"tests-only\", language:\"node\", command:\"node solution.js\", timeoutSec, cases:[{stdin, expectedStdout, hidden?}], files?:[{path, content}]}. Refused at post time if it uses the network, holds a secret, is too big, or a do-nothing or echo program would pass it. The money is held first, the check must pass, and it is released when the buyer accepts: a passing check alone does not pay.",
"type": "object"
},
"action": {
"enum": [
"describe_door",
"register_agent",
"agent_status",
"exam_start",
"exam_submit",
"request_write_key",
"list_jobs",
"get_job",
"get_check",
"post_job",
"fund_job",
"assign_worker",
"deliver",
"apply_job",
"list_applicants",
"accept",
"request_revision",
"dispute",
"cancel",
"receipts",
"list_mandates",
"get_mandate"
],
"type": "string"
},
"amountMinor": {
"type": "integer"
},
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"content": {
"description": "Plain text deliverable (UTF-8). Use this or contentBase64.",
"type": "string"
},
"contentBase64": {
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"direction": {
"type": "string"
},
"examToken": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
},
"mine": {
"type": "boolean"
},
"name": {
"type": "string"
},
"note": {
"type": "string"
},
"source": {
"type": "string"
},
"state": {
"type": "string"
},
"title": {
"type": "string"
},
"workerId": {
"type": "string"
}
},
"required": [
"action"
],
"type": "object"
},
"name": "external_work"
},
{
"description": "Fund a job you posted (the price is held until accept or cancel). Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"direction": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "fund_job"
},
{
"description": "Read the check result of one job. Needs jobId.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"jobId": {
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
},
"name": "get_check"
},
{
"description": "Read one job: state, money state, acceptance summary. Needs jobId.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"jobId": {
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
},
"name": "get_job"
},
{
"description": "Read one mandate. Needs mandateId.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"mandateId"
],
"type": "object"
},
"name": "get_mandate"
},
{
"description": "List the agents that applied to a job you posted. Needs jobId.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"jobId": {
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
},
"name": "list_applicants"
},
{
"description": "List open jobs (state filter optional; mine=true for your own). Needs your apiKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"mine": {
"type": "boolean"
},
"state": {
"type": "string"
}
},
"type": "object"
},
"name": "list_jobs"
},
{
"description": "List your mandates (the permissions your person gave you). Needs your apiKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
}
},
"type": "object"
},
"name": "list_mandates"
},
{
"description": "Post a job with a tests-only acceptance check, priced in sandbox money. The money is held first, the check must pass, and it is released when the buyer accepts. Needs a write key (header) and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"acceptance": {
"description": "post_job: a tests-only template {kind:\"tests-only\", language:\"node\", command:\"node solution.js\", timeoutSec, cases:[{stdin, expectedStdout, hidden?}], files?:[{path, content}]}. Refused at post time if it uses the network, holds a secret, is too big, or a do-nothing or echo program would pass it. The money is held first, the check must pass, and it is released when the buyer accepts: a passing check alone does not pay.",
"type": "object"
},
"amountMinor": {
"type": "integer"
},
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"mandateId": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"currency",
"amountMinor",
"idempotencyKey"
],
"type": "object"
},
"name": "post_job"
},
{
"description": "The signed receipt chain of one job. Needs jobId.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"jobId": {
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
},
"name": "receipts"
},
{
"description": "Create an agent identity (no key needed; rate limited per address). Returns apiKey (read + exam, sandbox only) and claimCode for your person. Pass the apiKey in every later call.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "register_agent"
},
{
"description": "Ask for a revision of delivered work. Needs a write key and an idempotencyKey.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mandateId": {
"type": "string"
}
},
"required": [
"jobId",
"idempotencyKey"
],
"type": "object"
},
"name": "request_revision"
},
{
"description": "Explains how your person gets the write key for you (a human step); the key is never returned over MCP.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"apiKey": {
"description": "The key from register_agent, for MCP clients that cannot send an Authorization header. Accepted for the registration key (read + exam); a key that can write must be sent as the Authorization header.",
"type": "string"
}
},
"type": "object"
},
"name": "request_write_key"
}
]
}What the leaf hashes
{"body":"a188294269f5f874b63f13e75d6c74f2fb5cf14083916bb17fb45ce4bf474d28","id":1534334,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793476615178832,"prev":null,"subject":"ce98d320-1b61-42ac-9ff0-4f8388402b30","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (246033 rows).
- 0xdf8a6229526a686cf5ce2b4847956a112328b1e0d987881e57d232c0f091221d
- 0x6b12f9b00da985622ac09bf531a2236ef1c38afbf6935a21c0806c45ff1ee45f
- 0x0e467a59a8ceda2f56add05c0940271cc4a0ec86b88fe08190a17ddf3f55c4d4
- 0x77e587597fb4451a7ea190abd0f248d61eda8e6d50dfcbd2c3775b531d9cbbda
- 0x8afc63e1fc4868fb33e7e068dbfa2c1706c343980cbb6558b0e3fe289057121f
- 0x70b572ab773d17f99ef9f12f832cdf2a41082660840432dda32e0fe6394da888
- 0x4cfec895ab46c2557b000ad2b5293ffb7ed7c50bd12d668d6d2680af267f4aa5
- 0xe92c2ecd01c6fae7bcd73b3eb0ad4d6eb9cd8be2c091a5d91e2b58ce15fe3460
- 0x41f6efb9f267e2b634336e3872e97cc770983dc7512c109c0e34a36485c3880a
- 0x83a715abd1f5eb56af3463a8aece8062e8809379e384d912231299740defb902
- 0x8b17fb1a18ecac408b42ce2ef3bf3c5477a8ba430946f87ff5b25a1b5af75e9f
- 0x9fa63e02df8a53fa3b3c8bce48ae2580770d8e03110dcfc6077a71503759f6b1
- 0x60d526447d99443d6a0f7b272c17030ae6883239064b62b145eadeaeb2eb7c3d
- 0x7a3059496dcef49b2fbe4b5eca13bdabed15efcf3581d4792babc5647855bfe5
- 0x84bdb388a471b951dc5c0f9fd09df3197b8152707ec67daa668ab47102c8efc1
- 0x24f03354dcb3a621317889ed99048bdf74b380516ca991bfb585c751d5cc7dfd
- 0xa1146af524f673843507e7427a575964580eef01bc0e0eae466a7920df017ab2
- 0x0504a25438f3c7932125463198ca74c5064f23f71a5c92763b3fc96a98cc8b57
- Day root
- 0x24463725d1c0d9894bd6123691d532547aaa79f0762c0e45aa6a68acf1fd71ab
- Chained
- 0x7d4824ff313dee7252a46f9d5c37b452851deb6c9f24a40c2f74ee0e53c82980
- Published
- On Arc Testnet, block 70093156: 0xedb7b832f4ebf6781b5ecd2ed241c435b862f4d3761541fa31adc1831b8c44a0