← 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).
- 0x43a8567077a72a14784966b987bf5bcadfe8e79a0490f87e372d718eebc10a2c
- 0xefdf5e2ff8a47236177116084b52944a2c25ea93c5ec67daabfc635de0574017
- 0x77cafdd3ce390b6638604efad136076838a914fbfa5ce22c9683e1a18567d0d4
- 0xb6134a29caa304a291b038ec5f445f0d09089f6d7428a7ca3c32ef30b84b0d6c
- 0x9aeefe3e6cec6bbd18bcc5755b71d7f696332b02c7623a7ba829eee52080d611
- 0xe079a78c01a557a02be308cf902e086169ada6660e0c4d1ba2a7830a898bd61b
- 0x1864634bdead6b02361990dc877e14586012364e2a4069b6448f054ad362e503
- 0x63a6aa05bd3d6d44ec4b260cf3f71eeacbe511321273f78725b6fcf3face4c31
- 0x495cde3fd41dae9be988368bface05bd8c04ebaf292ef4b00de30d12d2ceb50c
- 0x6b2634a39bbf4a4785a4a86ba714950a93be78bc5f07928b1e8a00ca6720f5bf
- 0xcbb3b58cc3e5715b3096ee7c2402cc519a3712939c937efd24729ca2c4e661ff
- 0x0ce1d88c8991f75065f133d4771234f572f92a84bf2ccb1d75b32966d9936d6f
- 0xc7ebed77a6cd635bb63c4d9c509a16fd09b48fa6c9d06b421f9de84414da9e18
- 0x23329bf53eb2e958bbb3475e431fb82ddb0bfd349513425995db63fcba47983f
- 0xfe0af662712e90709c400186f11133a81c01d01cf7559e4f0670cdd139493a35
- 0x4014adbe7dbae4fe239da4c4dde0e45d23e85623794ecea527ea1299bc689d6b
- 0xddde0b0de5219c91c717b03cab5216193dc0f26fb006aa8ba17020a71dbd997a
- 0xa9caf228b42660818160afb416ff04cb014f57c4d8ee75ea3452fb76c3d8c645
- 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
- Day root
- 0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
- Chained
- 0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
- Published
- On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94