← 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).
- 0x4d7c37847f954402c0cd82fb4479cd9b948a9c257c8f7de85b46c620f143b5be
- 0xed0307c2e1ee84d26b21c03a9223b54351bc1c21f4c616faa77792bb6cb22897
- 0x72325d6d9e191ca7f425de24b87b372372dc46c4052ccdec76aa9c74cf69d544
- 0xb12b3936b2285f93bc02016895bdcc526cefa75a7694d8bda7a65004ff3a6ff2
- 0xce6b8ba3464c3e16e4bce8985c6c57274fdb906f137a79bd90698f30628302c7
- 0xff09fd692f52becd9958025da3159f0986fbfd399e09d056110059e3c660e7a0
- 0xdb94c6d49c52382b44a016a2e02663237a4f1890cc65442452f3ffd1a5bf17af
- 0xd5fb88bcb4f3469df69f13ea2443d2b816af5807943e3ce43a83553756eba2f4
- 0x5022a006bff45ceacd62004378050590fb8590ea3aec8689f467d31f40fa163b
- 0x913c69c9ce597ae69f8c91e4f0aa01b9327ece7dbec1e3e6473754028a34c109
- 0x699e1831216ceb5d0324397f8f4f58989765f950328c8adcbcb3a202d688993c
- 0xf9b21ec258212225fc012a1ed6399d0ec608e930f4423d2badb8be79550861ef
- 0x797da99476c7ebaa971607ae725e5e240b79de9e49d28859b94de107c850aaab
- 0x9ea0c6a53f80a30b6f13671109f98a000cf98e581875129f4be4b57131d06364
- 0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553
- 0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d
- 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
- 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4