addrbookFor publishers
← The evidence ledger

Evidence row 299308

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint a344fe81-6a39-4ad5-878c-fc87ca372c44
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
fd82d30c7d244baad8dfea9752f8d7806af128ca563a83edd1504df1b3633bd8
Leaf
0x3dc33a7e33979712d5b710a841a6e3723a1823b8beffc6dd75cf728786dce368

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "What this site holds about one address, in two independent halves. `listings` says what the token IS - the stock, its company, the issuer and the chain - and is present whenever the address is a listing we track. `matches` says what the CODE at the address is: its runtime bytecode hash, the implementation behind it if it is a proxy, and how many other addresses we track run byte-identical code; it is present only where we have read the code. The code half is reproducible: fetch eth_getCode and take its keccak256 and you get the same hash. Either half can be empty and both can be present; an address we hold nothing about returns found: false, which is an answer rather than an error. This never says an address is safe, genuine or correct, and there is no field that could: check it against the issuer before you act on it.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "The contract address, in any case.",
            "type": "string"
          },
          "chain": {
            "description": "Chain slug, for example ethereum or robinhood-chain. Optional. Omit it to find the address on every chain we hold it.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "get_contract"
    },
    {
      "description": "What this service offers a machine reader: the free keyless endpoints, the bulk dataset and its price if the paid tier is live, and the licence. No human reader is ever charged or asked to connect a wallet.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_manifest"
    },
    {
      "description": "Everything known about one stock: every instrument (one per issuer, with the mechanics union describing how it handles corporate actions), every listing under it (chain, contract address, supply, price), and the events recorded against it. Report instruments as the options; listings are addresses. Read mechanics.kind before reaching for any field inside mechanics.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "ticker": {
            "description": "Ticker or slug, for example NVDA or nvda.",
            "type": "string"
          }
        },
        "required": [
          "ticker"
        ],
        "type": "object"
      },
      "name": "get_stock"
    },
    {
      "description": "Every chain carrying tokenized stocks, with its explorer, and the matrix of which issuer has listed what where. Registry order, which is not a ranking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_chains"
    },
    {
      "description": "The corporate-action tape: splits, distributions and multiplier changes read from chain state, each with a transaction hash. Newest first by the time the event took effect, which is chronology and not a ranking.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "How many events to return. Default 50, maximum 500.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "since": {
            "description": "ISO 8601 date. Only return events effective on or after this date.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_events"
    },
    {
      "description": "Every issuer whose tokens are tracked, in registry order, with the legal wrapper it uses, the chains it issues on, and a link to where that issuer publishes its own rule on who may buy. The rule itself is deliberately not included: it can change without this site noticing, so answer eligibility questions by sending the caller to eligibility.sourceUrl rather than by stating a rule.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_issuers"
    },
    {
      "description": "Tell us you wanted something and did not get it: a stock we do not track, a chain a stock is not on, a field no endpoint carries, a tool that does not exist, a figure you believe is wrong, or a path that failed. Call this when another tool has just answered with a miss - the answer names the kind to send. THERE IS NO FREE-TEXT FIELD AND THERE WILL NOT BE ONE: a report is an enumerated kind plus a short subject, because the counts are what is useful and prose from an anonymous caller is a prompt-injection surface pointed at the people who read it. Nothing about you is recorded - no address, no header, no identifier - so a report cannot be joined to a caller and there is no reply. The report is counted in aggregate and returned to you with a prefilled link a human can open to track it. Reporting costs nothing and is never required.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "description": "What was missing. One of: missing_stock (A stock this site does not track at all.) missing_listing (A stock we track, but not on the chain the caller wanted.) missing_field (A field no endpoint carries.) missing_tool (An MCP tool that does not exist.) wrong_figure (A published figure the caller believes is wrong.) broken_endpoint (A path that failed or answered in an unusable shape.)",
            "enum": [
              "missing_stock",
              "missing_listing",
              "missing_field",
              "missing_tool",
              "wrong_figure",
              "broken_endpoint"
            ],
            "type": "string"
          },
          "subject": {
            "description": "What it was about - a ticker, a field name, a tool name or a path. Letters, digits, dot, slash, hyphen and underscore, up to 64 characters. Not a sentence: there is no free-text field. A wallet or contract address is refused - send the ticker or the path instead.",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "subject"
        ],
        "type": "object"
      },
      "name": "report_gap"
    },
    {
      "description": "Find tokenized stocks by ticker or company name. Returns every match with its issuers and chains, alphabetical by ticker. If a ticker is a real stock but has not been tokenized, this reports that too, which is a correct answer rather than an empty result.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "description": "A ticker (NVDA) or part of a company name (Nvidia). Case insensitive.",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_stocks"
    }
  ]
}

What the leaf hashes

{"body":"fd82d30c7d244baad8dfea9752f8d7806af128ca563a83edd1504df1b3633bd8","id":299308,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793052734879167,"prev":null,"subject":"a344fe81-6a39-4ad5-878c-fc87ca372c44","subject_kind":"endpoint"}

Proof

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

  1. 0x3dc310c6a417a0761eb2655107437e1edf1beef43c6798d48bdf7a60f1997f16
  2. 0x9fce1eaa6d44ab72f30a72098255fe7578cd0035af6de184f5522757be448761
  3. 0x23bf6856fb5af1d7ca6387405f3773848d745b4e0d9343cd703f92ee10ef30d9
  4. 0xd28a01f3b7cc1ab81f744b2aa292505ae95318f2ca777b9425c83c69b8e47b1c
  5. 0xdc3b86df773b4c5d476e0e9ef79bd25dc92736e3f417a85c2a9f62df8736d402
  6. 0xfbe827d34df5a9516efb1f16f07b5da22d88f16fab0cbc8bce9d3ae989728662
  7. 0x3e388ed7098a178477dc1896391caeafe4cc28ac7f9c7f00ecae5912fdd6fd41
  8. 0xdf5c2e01960d7a7a75741a3e4eed73face1722328eb4ca928841227ea027122b
  9. 0x226d5815ea1bf0e8a7bb508714dc2f8ffd51ab4ee56a5223847b390bd9573222
  10. 0x45253cd85fd280590cc755c7157b670bb65655451b61e792fbe381fa2fd7507d
  11. 0xc900cc76dc3702a3e60eaef3577f119464a6a90c3e2b646253f2ba09c089de97
  12. 0xd04df0f7f3be4d014b4cea8172ada286fbcf5bcb32ae1b281704fd75627b661b
  13. 0x215f432600b78f2e7c9629cd10ce6ce4b7f3351b0b71f3f2c7dcb8e650f6cd63
  14. 0x7f594f5609f388d64d3cda87b5631d393ee8300bb09bad71f150113a5886ee33
  15. 0x4b52a97f7a80ff7778a702b85267b8d2e5c93ce160942656435c29ae7be68bf4
  16. 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON