addrbookFor publishers
← The evidence ledger

Evidence row 572620

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint d3fe7331-cd6c-4721-9ba0-43c1f427d48b
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
a3dbaab33a6290a53186a4adb6db873d8cfe766148e5e91c3e2f94ad3122e1e6
Leaf
0x4d7adf737956a7e641998241e4b78f751f752d835accdc94d1b70f95a81320a1

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "List all CryptoPunk traits with their counts. Optionally filter by type to see how many punks of that type have each trait. Rate limit: 10 per 10 min (read bucket — shared with browse_types, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "type": {
            "description": "Filter counts to a specific type (e.g. 'Male', 'Zombie')",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "browse_traits"
    },
    {
      "description": "List all CryptoPunk type categories with their counts. Rate limit: 10 per 10 min (read bucket — shared with browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "browse_types"
    },
    {
      "description": "Compute the Merkle root for a set of CryptoPunk IDs. The root matches the on-chain Solady MerkleProofLib encoding used by the Stash contract. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, resolve_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "punkIds": {
            "description": "Punk IDs to include in the Merkle tree (1-10000)",
            "items": {
              "maximum": 9999,
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 10000,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "punkIds"
        ],
        "type": "object"
      },
      "name": "compute_merkle_root"
    },
    {
      "description": "Filter CryptoPunks by type and traits. Returns matching punk IDs and their Merkle root. Rate limit: 5 per 10 min (compute bucket — shared with compute_merkle_root, resolve_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "excludedTraits": {
            "description": "Traits to exclude",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "includedTraits": {
            "description": "Traits to include",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "matchMode": {
            "default": "all",
            "description": "'all' = punk must have every included trait, 'any' = at least one",
            "enum": [
              "all",
              "any"
            ],
            "type": "string"
          },
          "types": {
            "description": "Type names to include (e.g. ['Male', 'Zombie']). Empty = all types.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "filter_punks"
    },
    {
      "description": "Analyze market data and recommend a bid price range for a CryptoPunk trait selection. Combines floor price, competing bids, and set composition into actionable guidance. `composition` lists only the traits that define the selection; use `absentTraits` for a full exclusion list when needed. Rate limit: 1 per 1 min (recommend bucket).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "excludedTraits": {
            "description": "Traits to exclude",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "includedTraits": {
            "description": "Traits to include",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "matchMode": {
            "default": "all",
            "enum": [
              "all",
              "any"
            ],
            "type": "string"
          },
          "punkIds": {
            "description": "Explicit punk IDs (overrides trait filters)",
            "items": {
              "maximum": 9999,
              "minimum": 0,
              "type": "integer"
            },
            "type": "array"
          },
          "types": {
            "description": "Type names to filter (e.g. ['Male', 'Zombie'])",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "get_bid_recommendation"
    },
    {
      "description": "Get pending EIP-712 bids matching a specific Merkle root. Useful for seeing competition on a trait-based bid set. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 5,
            "description": "Max bids to return (default 5)",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "merkleRoot": {
            "description": "Merkle root (0x-prefixed, 32 bytes hex)",
            "pattern": "^0x[0-9a-fA-F]{64}$",
            "type": "string"
          }
        },
        "required": [
          "merkleRoot"
        ],
        "type": "object"
      },
      "name": "get_bids_for_merkle_root"
    },
    {
      "description": "Get pending EIP-712 bids that include a specific CryptoPunk. Returns bids from the CryptoPunks Bids API. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 5,
            "description": "Max bids to return (default 5)",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "punkId": {
            "description": "Punk ID to look up bids for",
            "maximum": 9999,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "punkId"
        ],
        "type": "object"
      },
      "name": "get_bids_for_punk"
    },
    {
      "description": "Get the current floor ask price from the native CryptoPunks marketplace. Excludes restricted (onlySellTo) and zero-value listings. Returns `totalActive` (same denominator as get_listings). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_bids_for_punk, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_floor_price"
    },
    {
      "description": "Get currently listed CryptoPunks from the native marketplace. By default returns only publicly buyable listings (excludes restricted onlySellTo and zero-value entries); pass `includeRestricted: true` to include private bundle sales. Optionally filter by price range. Returns `totalActive` (publicly buyable listings, same denominator as get_floor_price) and `matchedCount` (after your filters). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "includeRestricted": {
            "default": false,
            "description": "Include restricted (onlySellTo) and zero-value listings. Default false — matches get_floor_price.",
            "type": "boolean"
          },
          "limit": {
            "default": 50,
            "description": "Max results (default 50)",
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          },
          "maxPriceEth": {
            "description": "Maximum price in ETH",
            "type": "number"
          },
          "minPriceEth": {
            "description": "Minimum price in ETH",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_listings"
    },
    {
      "description": "Get metadata for specific CryptoPunks: type, traits with rarity percentages, and permalink. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "punkIds": {
            "description": "Punk IDs to look up (1-100)",
            "items": {
              "maximum": 9999,
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "punkIds"
        ],
        "type": "object"
      },
      "name": "get_punk_details"
    },
    {
      "description": "Reverse-engineer a Merkle root back to its punk IDs and inferred trait selection. ONLY works for roots that already have at least one bid in the CryptoPunks Bids API — this tool looks bids up by root, then derives trait config from the resulting punk set. Returns `resolved: false` for unknown roots; constructing a root locally and passing it here will not work. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, compute_merkle_root).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "merkleRoot": {
            "description": "Merkle root to resolve (0x-prefixed, 32 bytes hex)",
            "pattern": "^0x[0-9a-fA-F]{64}$",
            "type": "string"
          }
        },
        "required": [
          "merkleRoot"
        ],
        "type": "object"
      },
      "name": "resolve_merkle_root"
    }
  ]
}

What the leaf hashes

{"body":"a3dbaab33a6290a53186a4adb6db873d8cfe766148e5e91c3e2f94ad3122e1e6","id":572620,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793140810171040,"prev":null,"subject":"d3fe7331-cd6c-4721-9ba0-43c1f427d48b","subject_kind":"endpoint"}

Proof

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

  1. 0x4d7c37847f954402c0cd82fb4479cd9b948a9c257c8f7de85b46c620f143b5be
  2. 0xed0307c2e1ee84d26b21c03a9223b54351bc1c21f4c616faa77792bb6cb22897
  3. 0x72325d6d9e191ca7f425de24b87b372372dc46c4052ccdec76aa9c74cf69d544
  4. 0xb12b3936b2285f93bc02016895bdcc526cefa75a7694d8bda7a65004ff3a6ff2
  5. 0xce6b8ba3464c3e16e4bce8985c6c57274fdb906f137a79bd90698f30628302c7
  6. 0xff09fd692f52becd9958025da3159f0986fbfd399e09d056110059e3c660e7a0
  7. 0xdb94c6d49c52382b44a016a2e02663237a4f1890cc65442452f3ffd1a5bf17af
  8. 0xd5fb88bcb4f3469df69f13ea2443d2b816af5807943e3ce43a83553756eba2f4
  9. 0x5022a006bff45ceacd62004378050590fb8590ea3aec8689f467d31f40fa163b
  10. 0x913c69c9ce597ae69f8c91e4f0aa01b9327ece7dbec1e3e6473754028a34c109
  11. 0x699e1831216ceb5d0324397f8f4f58989765f950328c8adcbcb3a202d688993c
  12. 0xf9b21ec258212225fc012a1ed6399d0ec608e930f4423d2badb8be79550861ef
  13. 0x797da99476c7ebaa971607ae725e5e240b79de9e49d28859b94de107c850aaab
  14. 0x9ea0c6a53f80a30b6f13671109f98a000cf98e581875129f4be4b57131d06364
  15. 0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553
  16. 0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON