← The evidence ledger
Evidence row 567291
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint d8f48ef9-1999-4c6e-b5f8-a2888782b556
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 4855cba20396065be318a85f2a8e491f23f76d5a8f713fea5059c95f7db508cf
- Leaf
- 0x9509fb5bf79fc9110b9ae0dcfbf08bc62e329c01d80cbc3cb9cb9f328ec22f29
What was observed
{
"count": 17,
"tools": [
{
"description": "Start a purchase of a credit package and return a way to pay. This does NOT complete a payment by itself — it returns a payment link / address:\n• method 'stripe' → returns a checkout_url. Paying by card requires a HUMAN to open that link and enter card details; an agent cannot finish a card payment on its own.\n• method 'crypto' → returns a Plisio invoice with a checkout_url AND, when you pass a `currency` (BTC, ETH, LTC, USDT, USDC), a RAW wallet `address` + `amount`. An autonomous agent CAN pay this from a crypto wallet with no browser/human, then credits are added automatically once the payment confirms. Prefer crypto for fully autonomous top-ups. Get a package id from get_packages first.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"currency": {
"description": "For method 'crypto': the coin to pay in; returns a raw wallet address an agent can pay autonomously.",
"enum": [
"BTC",
"ETH",
"LTC",
"USDT",
"USDC"
],
"type": "string"
},
"method": {
"description": "Payment method. 'stripe' = card link (needs a human), 'crypto' = wallet-payable invoice. Default 'stripe'.",
"enum": [
"stripe",
"crypto"
],
"type": "string"
},
"package_id": {
"description": "The package id to buy (from get_packages).",
"type": "string"
}
},
"required": [
"package_id"
],
"type": "object"
},
"name": "buy_credits"
},
{
"description": "Check the DNS and deliverability health of an email domain: MX records, SPF, DMARC, and an overall health score. Useful for diagnosing why a domain bounces or for validating a sending domain.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"domain": {
"description": "Domain to check, e.g. example.com",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "check_domain_health"
},
{
"description": "Clean a list of email addresses before an import or campaign: dedupes, removes invalid syntax, and (optionally) strips disposable and role accounts. Returns the cleaned list plus a summary of what was removed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"emails": {
"description": "Email addresses to clean.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"exclude_role_accounts": {
"description": "Remove role accounts (info@, support@, ...). Default false.",
"type": "boolean"
},
"remove_disposable": {
"description": "Remove disposable/throwaway addresses. Default true.",
"type": "boolean"
}
},
"required": [
"emails"
],
"type": "object"
},
"name": "clean_email_list"
},
{
"description": "Extract all email addresses found in a block of free-form text (notes, pasted documents, signatures). Optionally deduplicates and lowercases the results.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"deduplicate": {
"description": "Remove duplicate addresses. Default true.",
"type": "boolean"
},
"lowercase": {
"description": "Lowercase all extracted addresses. Default true.",
"type": "boolean"
},
"text": {
"description": "Free-form text to scan for email addresses.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "extract_emails"
},
{
"description": "Return the account profile for the current API key: email, name, company, timezone, remaining credits, total credits used, number of API keys, and plan. Costs no credits.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_account"
},
{
"description": "Return the API key's remaining verification credits and recent usage (today / this month) and plan. Costs no credits.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_credits"
},
{
"description": "Fetch the full per-address results of a completed bulk verification job by job_id (each email's verdict, recommendation, and reason) plus the valid/invalid/risky summary and credits used. The job must be 'completed' — check get_job_status first.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"job_id": {
"description": "The job_id returned by submit_bulk.",
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_job_results"
},
{
"description": "Fetch the current status and progress of a bulk verification job by its job_id (status, percent progress, processed count, and a valid/invalid/risky summary). Poll this after submit_bulk until status is 'completed', then call get_job_results.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"job_id": {
"description": "The job_id returned by submit_bulk.",
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_job_status"
},
{
"description": "List the credit packages available for purchase (id, name, credit amount, price in USD, and price per 1k credits). Use the returned package id with buy_credits.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_packages"
},
{
"description": "Call this FIRST if you have no Verifly API key. Returns how Verifly works and how to get access with no human: pay-as-you-go email verification API, 100 free credits on self-registration, no monthly fee. No API key required to call this tool.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_started"
},
{
"description": "Return detailed usage statistics for the account over a period (day, week, or month): total credits used, emails processed, request counts broken down by endpoint and source, a daily breakdown, and recent activity.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"description": "Max recent log entries to include (default 100, max 1000).",
"type": "integer"
},
"period": {
"description": "Reporting period. Default 'month'.",
"enum": [
"day",
"week",
"month"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_usage"
},
{
"description": "List the account's bulk verification jobs, most recent first, with their status, progress, and summary. Optionally filter by status and paginate. Use this to find past jobs and their job_ids.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"description": "Max jobs to return (1-100, default 50).",
"type": "integer"
},
"offset": {
"description": "Pagination offset (default 0).",
"type": "integer"
},
"status": {
"description": "Only return jobs in this status.",
"enum": [
"pending",
"processing",
"completed",
"failed"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_jobs"
},
{
"description": "Programmatically create a brand-new Verifly account — this is how an agent self-onboards with no human in the loop. Requires only an email and a password (min 8 chars; disposable email domains are rejected). The new account starts with free credits. The response includes the new account id/email and a freshly generated `api_key.key` that is shown ONCE — capture and store it immediately, it cannot be retrieved again. Subsequent tool calls can then use that key as the bearer token.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"email": {
"description": "Email for the new account (not a disposable domain).",
"type": "string"
},
"password": {
"description": "Password for the new account (minimum 8 characters).",
"minLength": 8,
"type": "string"
}
},
"required": [
"email",
"password"
],
"type": "object"
},
"name": "register_account"
},
{
"description": "Submit a list of email addresses as an asynchronous bulk verification job — the right tool for large lists. Returns immediately with a job_id, status, and the check_status_url / results_url to poll. Small lists may complete inline (status 'completed'); larger ones return status 'pending' — poll get_job_status until it is 'completed', then call get_job_results. Optionally register a webhook_url (public HTTPS) to be notified when the job finishes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"emails": {
"description": "Email addresses to verify in this job (deduped server-side).",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"webhook_url": {
"description": "Optional public HTTPS URL to POST a job.completed notification to.",
"type": "string"
}
},
"required": [
"emails"
],
"type": "object"
},
"name": "submit_bulk"
},
{
"description": "Synchronously verify a list of email addresses (best for up to a few hundred). Returns a per-address verdict for each email. For very large lists use the bulk async endpoint instead.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"emails": {
"description": "Array of email addresses to verify.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"exclude_public_domains": {
"description": "Flag/exclude public domains (gmail.com, ...). Default false.",
"type": "boolean"
},
"exclude_role_accounts": {
"description": "Flag/exclude role accounts (info@, sales@, ...). Default false.",
"type": "boolean"
}
},
"required": [
"emails"
],
"type": "object"
},
"name": "verify_batch"
},
{
"description": "Verify one email address in real time. Returns a deliverability verdict (valid / invalid / risky / unknown), the reason, detailed flags (disposable, role account, catch-all, MX, SMTP), a send/reject recommendation, and credit usage.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"email": {
"description": "The email address to verify, e.g. lead@example.com",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "verify_email"
},
{
"description": "Verify one email address with NO account or API key, so you can evaluate Verifly before registering. Rate-limited per IP (a few checks). Returns the same deliverability verdict and flags as the full API. For real volume, call register_account for a key + 100 free credits, then use verify_email.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"email": {
"description": "The email address to verify, e.g. lead@example.com",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "verify_email_demo"
}
]
}What the leaf hashes
{"body":"4855cba20396065be318a85f2a8e491f23f76d5a8f713fea5059c95f7db508cf","id":567291,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138657698056,"prev":null,"subject":"d8f48ef9-1999-4c6e-b5f8-a2888782b556","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0x950a5ca402fb50000b7ba4298c228523221afa5eb0b26d66efb931103c946206
- 0xcd004ed91afb92be28231f45d362779d540d2c84909b42358dafa158079760b6
- 0xc667a9c9db43a041e5a19bbf792e62c687cd39bdbae0bc54342cb5780218a16a
- 0x3db84b130ec85fcfef58b539c39df4d3a8c4737ec43aface009856bf9dc7329b
- 0xd37a1d83c32bd9323719847cdc5f2aa328e4c3e592bb81821ce6f8f5ead05423
- 0x990956cd516dc8a11e9ff88408cb1d02685f76096a63782f8ce5de0995c6a71b
- 0xe6d1fe7e5e8de9ba1f8db7dc98e6d64ca171ffd38e00178142d47e57258fcb72
- 0x0cbfb6a337f108291ad0a446b537aa14a8c338d7a336b15efa15c0a68be9fe5e
- 0x93261c370058e4919e45f5cff48d4e5535198b82698584edf98d177d2ab6bbe2
- 0x7ba3519ee17f3918069be97b4b6928adeda06ee424da27db34abd998ca7297fa
- 0x04a09d663456ff3951851256dd93fd8bffe97c065373b0fa7994aee5fd52c4a7
- 0x747fb8d60cfe8dde3cb6d73475c58c3912bdf8d928b8f0480aa1c97a1b71d408
- 0x59c5c792b40d9054ce2b84a60af97fa54f2e1a2a369a6a52dc3f45de41128e97
- 0xa3c9c760ee424c178bab782711c2b9d3e15a80a6fde99165972cb75b306bb8b4
- 0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6
- 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
- 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
- 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4