addrbookFor publishers
← The evidence ledger

Evidence row 3424030

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint c3522c17-e71a-432b-9e25-763fe97ba40f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
ed6012919422262e1618dd49053bc2dab64afaadeb1f1a26bc39302868c7f16a
Leaf
0x43a850da43e07cba91ef71a5ddea144891ab920756bc9a451c53813bd1fb1ff5

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Check how much USDC a DiviMail address has for sending email or paying. Call before divimail_send or divimail_pay if unsure; if low, use divimail_request_topup. No token needed, just the @divindi.io address.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "The @divindi.io email address to check. Omit it when signed in: the connection already knows your address.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "divimail_balance"
    },
    {
      "description": "Check your agent's inbox: lists received emails for its @divindi.io address. Call this first to see what arrived, then use divimail_read with a messageId for the full content, and divimail_mark_read when done. For mail the agent sent, use divimail_sent. When connected through an app sign-in, no token or address is needed. Optional limit (default 20).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "Your agent's full @divindi.io email address (e.g. myagent@divindi.io). Omit it when signed in: the connection already knows your address.",
            "type": "string"
          },
          "limit": {
            "description": "Number of messages to return (default 20)",
            "type": "number"
          },
          "token": {
            "description": "Optional when signed in through an app. Otherwise a JWT from divimail_login, divimail_authenticate or divimail_service_token",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "divimail_inbox"
    },
    {
      "description": "Mark an email in your agent's inbox as read so it is not handled twice. Use after divimail_read (or divimail_inbox) with the same messageId. When connected through an app sign-in, no token or address is needed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "Your agent's full @divindi.io email address (e.g. myagent@divindi.io). Omit it when signed in: the connection already knows your address.",
            "type": "string"
          },
          "messageId": {
            "description": "Message ID from divimail_inbox",
            "type": "string"
          },
          "token": {
            "description": "Optional when signed in through an app. Otherwise a JWT from divimail_login, divimail_authenticate or divimail_service_token",
            "type": "string"
          }
        },
        "required": [
          "messageId"
        ],
        "type": "object"
      },
      "name": "divimail_mark_read"
    },
    {
      "description": "Open and read one email in full (body and details) from your agent's mailbox. Call after divimail_inbox using a messageId from that list; then call divimail_mark_read if you want it marked read. When connected through an app sign-in, no token or address is needed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "Your agent's full @divindi.io email address (e.g. myagent@divindi.io). Omit it when signed in: the connection already knows your address.",
            "type": "string"
          },
          "messageId": {
            "description": "Message ID from divimail_inbox",
            "type": "string"
          },
          "token": {
            "description": "Optional when signed in through an app. Otherwise a JWT from divimail_login, divimail_authenticate or divimail_service_token",
            "type": "string"
          }
        },
        "required": [
          "messageId"
        ],
        "type": "object"
      },
      "name": "divimail_read"
    },
    {
      "description": "Give an AI agent its own @divindi.io email address so it can send and receive email. Call this once to create the address. Then sign in: through the app's connection sign-in if you are using one, otherwise with divimail_login (or divimail_challenge + divimail_authenticate). Use exactly one of: provision:true (easiest), publicKey (your ed25519 key; only the public key is stored), or nearAccountId (own NEAR wallet, no apiKey). provision/publicKey return an apiKey shown ONCE, so save it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "emailAlias": {
            "description": "Desired email alias (e.g. myagent → myagent@divindi.io)",
            "type": "string"
          },
          "nearAccountId": {
            "description": "NEAR account ID (e.g. myagent.near) — omit to auto-provision a new NEAR account",
            "type": "string"
          },
          "provision": {
            "description": "Set true to auto-provision a NEAR account if you do not have one. A provisioned registration returns a one-time apiKey — save it and use divimail_login.",
            "type": "boolean"
          },
          "publicKey": {
            "description": "Your own ed25519 public key (base58, optionally \"ed25519:\"-prefixed; must decode to 32 bytes). Client-side keygen: DiviMail stores only this public key and holds no private key. Returns a one-time apiKey. Do not combine with provision or nearAccountId.",
            "type": "string"
          }
        },
        "required": [
          "emailAlias"
        ],
        "type": "object"
      },
      "name": "divimail_register"
    },
    {
      "description": "Send an email from your agent's @divindi.io address to any email address, human or agent. When connected through an app sign-in, no token or address is needed. If the balance is low, see divimail_balance and divimail_request_topup. Costs $0.01 USDC per email. Supports plain text, optional HTML, CC and BCC.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "bcc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "Optional BCC recipient(s) — a single email or an array of emails"
          },
          "cc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "Optional CC recipient(s) — a single email or an array of emails"
          },
          "from": {
            "description": "Sender DiviMail address (e.g. myagent@divindi.io). Omit it when signed in: the connection already knows your address.",
            "type": "string"
          },
          "html": {
            "description": "Optional HTML email body",
            "type": "string"
          },
          "subject": {
            "description": "Email subject line",
            "type": "string"
          },
          "text": {
            "description": "Plain text email body",
            "type": "string"
          },
          "to": {
            "description": "Recipient email address (any email — not just @divindi.io)",
            "type": "string"
          },
          "token": {
            "description": "Optional when signed in through an app. Otherwise a JWT from divimail_login, divimail_authenticate or divimail_service_token",
            "type": "string"
          }
        },
        "required": [
          "to",
          "subject",
          "text"
        ],
        "type": "object"
      },
      "name": "divimail_send"
    },
    {
      "description": "See what emails your agent has sent: lists sent messages for its @divindi.io address. Use this to confirm a divimail_send went out or to review history. For received mail use divimail_inbox. When connected through an app sign-in, no token or address is needed. Optional limit (default 20).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "Your agent's full @divindi.io email address (e.g. myagent@divindi.io). Omit it when signed in: the connection already knows your address.",
            "type": "string"
          },
          "limit": {
            "description": "Number of messages to return (default 20)",
            "type": "number"
          },
          "token": {
            "description": "Optional when signed in through an app. Otherwise a JWT from divimail_login, divimail_authenticate or divimail_service_token",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "divimail_sent"
    }
  ]
}

What the leaf hashes

{"body":"ed6012919422262e1618dd49053bc2dab64afaadeb1f1a26bc39302868c7f16a","id":3424030,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793893997473524,"prev":null,"subject":"c3522c17-e71a-432b-9e25-763fe97ba40f","subject_kind":"endpoint"}

Proof

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

  1. 0x43a8567077a72a14784966b987bf5bcadfe8e79a0490f87e372d718eebc10a2c
  2. 0xefdf5e2ff8a47236177116084b52944a2c25ea93c5ec67daabfc635de0574017
  3. 0x77cafdd3ce390b6638604efad136076838a914fbfa5ce22c9683e1a18567d0d4
  4. 0xb6134a29caa304a291b038ec5f445f0d09089f6d7428a7ca3c32ef30b84b0d6c
  5. 0x9aeefe3e6cec6bbd18bcc5755b71d7f696332b02c7623a7ba829eee52080d611
  6. 0xe079a78c01a557a02be308cf902e086169ada6660e0c4d1ba2a7830a898bd61b
  7. 0x1864634bdead6b02361990dc877e14586012364e2a4069b6448f054ad362e503
  8. 0x63a6aa05bd3d6d44ec4b260cf3f71eeacbe511321273f78725b6fcf3face4c31
  9. 0x495cde3fd41dae9be988368bface05bd8c04ebaf292ef4b00de30d12d2ceb50c
  10. 0x6b2634a39bbf4a4785a4a86ba714950a93be78bc5f07928b1e8a00ca6720f5bf
  11. 0xcbb3b58cc3e5715b3096ee7c2402cc519a3712939c937efd24729ca2c4e661ff
  12. 0x0ce1d88c8991f75065f133d4771234f572f92a84bf2ccb1d75b32966d9936d6f
  13. 0xc7ebed77a6cd635bb63c4d9c509a16fd09b48fa6c9d06b421f9de84414da9e18
  14. 0x23329bf53eb2e958bbb3475e431fb82ddb0bfd349513425995db63fcba47983f
  15. 0xfe0af662712e90709c400186f11133a81c01d01cf7559e4f0670cdd139493a35
  16. 0x4014adbe7dbae4fe239da4c4dde0e45d23e85623794ecea527ea1299bc689d6b
  17. 0xddde0b0de5219c91c717b03cab5216193dc0f26fb006aa8ba17020a71dbd997a
  18. 0xa9caf228b42660818160afb416ff04cb014f57c4d8ee75ea3452fb76c3d8c645
  19. 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
Day root
0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
Chained
0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
Published
On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94

How to check it · This row as JSON