addrbookFor publishers
← The evidence ledger

Evidence row 295569

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 48741500-885b-416f-8578-c89709faa677
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
efdd426db91c9984729ea54a1d07c5245fc8a70bae3343445a46619e5ff7bdac
Leaf
0xc20bae0fcfa4a8cef18c463fa7befc5f9a53d1cfe1879a9fb1778b2df635404a

What was observed

{
  "count": 5,
  "tools": [
    {
      "description": "Block (up to ttl_seconds, max 60) for the one confirmation email on a trial inbox created by create_trial_inbox. Pass the exact inbox_address that call returned. The inbox does NOT self-delete or become unusable after a match: it keeps receiving mail and can still be claimed afterward (call claim_trial_inbox any time before it expires) if the human wants to keep using the same address. Call this AFTER you have actually used the address somewhere (signed up, requested a code) -- calling it before that will just expire, since there is nothing to wait for yet. 60 seconds is a hard per-call ceiling, not the inbox's total lifetime: a sender that takes longer than that is not a failure, just call this again with the same inbox_address to keep waiting (the inbox stays valid for its full ~2-week expiry, and you can call this again later too, e.g. to catch a second, later email on the same address). Only treat expired as final once you've retried a few times.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "expected_sender": {
            "description": "Glob on the sender address, e.g. *@vercel.com.",
            "type": "string"
          },
          "inbox_address": {
            "description": "The exact address create_trial_inbox returned, e.g. abc123@in.inbin.dev.",
            "type": "string"
          },
          "ttl_seconds": {
            "default": 45,
            "description": "How long to block waiting for the confirmation, in seconds (max 60). Returns expired if nothing arrives in time.",
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "inbox_address"
        ],
        "type": "object"
      },
      "name": "await_trial_inbox"
    },
    {
      "description": "Block (up to ttl_seconds, max 60) for a human to finish the EMAIL+CODE step on the claim_url page from claim_trial_inbox. This NEVER returns a credential, at any status. It returns one of three honest states, not a single 'connected': \"claim_pending\" (nobody has entered the code yet -- keep waiting or call again), \"claimed\" (the human proved ownership and a credential was ISSUED, but nothing has used it yet -- a client still needs to be installed with the config from the claim page's 'Advanced' section before anything works), or \"client_installed\" (some client has actually authenticated with the connection at least once -- a real, observed signal, not an assumption). Each response includes a next_action field telling you exactly what to say or do -- follow it literally rather than guessing. \"claimed\" is NOT success: do not tell the human it's working until you see \"client_installed\", and even then, verify it yourself (call list_inboxes or similar through the new connection and read the actual result) before claiming it works for you specifically -- call claim_connection_status later if you need to check again after this chat session, since installing a client can take arbitrarily long and this tool only blocks up to 60s.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "claim_token": {
            "description": "The token from claim_trial_inbox's claim_url (the part after /claim/).",
            "type": "string"
          },
          "ttl_seconds": {
            "default": 45,
            "description": "How long to block waiting, in seconds (max 60). Returns pending if the human hasn't finished yet.",
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "claim_token"
        ],
        "type": "object"
      },
      "name": "await_trial_inbox_claim"
    },
    {
      "description": "Read-only, non-blocking check of exactly which state a claim_trial_inbox connection is in RIGHT NOW: \"claim_pending\", \"claimed\" (credential issued, unused), or \"client_installed\" (a client has actually authenticated with it at least once -- real, observed). Never returns a credential. Use this instead of await_trial_inbox_claim when you want to check progress WITHOUT blocking, especially much later than the original chat session -- installing a client into its own config is a human action with no fixed timeline, so polling this occasionally (not in a tight loop) is the right way to check back. Each response includes a next_action field telling you exactly what to say or do.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "claim_token": {
            "description": "The token from claim_trial_inbox's claim_url (the part after /claim/).",
            "type": "string"
          }
        },
        "required": [
          "claim_token"
        ],
        "type": "object"
      },
      "name": "claim_connection_status"
    },
    {
      "description": "Start connecting an agent to this inbox address, permanently -- the SAME address. Works whether this is a brand-new trial inbox OR one that's already been claimed by a different agent before: more than one agent can independently connect to the same inbox, each getting its own separate, revocable connection. Returns a claim_url immediately -- share it in chat right away. The human clicks it, enters their email, enters the one-time code Inbin sends there, and a credential is ISSUED. That is NOT the same as the connection working yet -- the human still has to install that credential into an MCP client's config before anything can actually use it, and you will never see the credential itself, by design. Call await_trial_inbox_claim afterward to see the human finish the email+code step, then claim_connection_status (repeatedly, possibly much later -- installing a client is not instant) to see whether a client has actually started using it. The inbox must still exist (not yet expired) for this to work; it does not need to still be a TRIAL inbox specifically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "connector_label": {
            "description": "Optional label identifying which agent/client is connecting, e.g. 'Muse'. Shown to the human as the name of this specific connection so they can tell multiple connections apart later.",
            "type": "string"
          },
          "inbox_address": {
            "description": "The exact inbox address to connect to, e.g. abc123@in.inbin.dev.",
            "type": "string"
          }
        },
        "required": [
          "inbox_address"
        ],
        "type": "object"
      },
      "name": "claim_trial_inbox"
    },
    {
      "description": "Create a temporary inbox with NO Inbin account required at all -- usable before the human has signed up for anything. Returns the inbox address IMMEDIATELY; it does not wait for anything. Use the address to sign up wherever you need a confirmation sent, THEN call await_trial_inbox with that same address to block for the confirmation -- calling this alone does not get you a confirmation. This inbox is NOT tied to any account yet and expires automatically within about two weeks regardless of use. If the human wants to keep using this SAME address permanently, call claim_trial_inbox: no dashboard visit, no key to copy, and more than one agent can independently connect to the same address over time this way.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "purpose_label": {
            "description": "Optional human-readable label for what this inbox is for.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "create_trial_inbox"
    }
  ]
}

What the leaf hashes

{"body":"efdd426db91c9984729ea54a1d07c5245fc8a70bae3343445a46619e5ff7bdac","id":295569,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793051028793475,"prev":null,"subject":"48741500-885b-416f-8578-c89709faa677","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. 0xc20bbd0a7f280bc9a8dc527e706d680a2fe047ae26c91708563e9da0f28b583d
  2. 0xd7e856432088c305d82bdc326ea925810e92396b6358aa45223b6c83eef995a1
  3. 0x2d9f06924ca69edc253eb823085e67c52aad10fed18abaf85d5a6013abfef602
  4. 0x1c6861fa501468a74e918c0c5556f0e363cb609dae23c6fe9f706c0c0a1def71
  5. 0x2dd54bf029582855d9683cb9ae535c57a230572c73d4072f5f1edcc75b16e38f
  6. 0xb5b99a4b544e3d6c0cd02507ad2e60c16592287a708f55ce787a85fc1c2b08f7
  7. 0x2725c1d385e4c5dc8098d28fa9ef901ed106c81a1df4fe0cd9e41486a2f8d8b5
  8. 0x8f99bea01c3e1d261c3aeade43c516d474ad23f7116c761197eaeb2cfc7031da
  9. 0x2f595813229fc50ba514149387f7344eef4991749c64415dac128e2735be2682
  10. 0x02e075ca15ff7f2ea01604141daba61c457580d75ee0424e4d2efe53abe08ad3
  11. 0xeab236b8d15592c4f51859e02cc12d6b7223fc6321fdb9fa89e4d5e6edc3470b
  12. 0x111576180a2fecebcaf560e6b72ed8cefedaacb8c607539ece417b7465831f66
  13. 0x96eae331a78c1c9248bc58130ff83d31b884760a51fe7191de2a39105ae7c072
  14. 0xdbe2e8dd65ea1248b2936612538f18268abd5cf27ebdab3737694571ad496004
  15. 0x9f68b5e15459cb62b8c0cd4c124fa61c74147b4a5755a200fbecd21a581635d1
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON