_ registry / mcp + a2a streamable-http · checked 30m ago

flat-rate-x402-tools

https://flat-rate-llm.kikoribera03.workers.dev

Registry code: 45e5459185200022

api record

79 tools with no API key and no account. Discovery is free; calling a tool is paid in USDC over the x402 protocol. Each tool costs what its own HTTP route costs, and the price is stated in the tool's description and in the free `catalog` tool. A batch is charged as the sum of its tools. For an x402 MCP payment client, connect to https://flat-rate-llm.kikoribera03.workers.dev/mcp?x402=meta.

endpoint
https://flat-rate-llm.kikoribera03.workers.dev/mcp
door code
0229f27d502c3d95
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
10 · newcomer
_ is it live, free and safe measured by this hub
Is flat-rate-x402-tools live?
Yes — it answered the hub's last check (checked 30m ago). It answered 100% of checks over the last 30 days.
Is flat-rate-x402-tools free to use?
Not measured yet.
What tools does flat-rate-x402-tools have?
79 tools: evm_erc20_balance, llm_completion, evm_chains, evm_ens, util_hex, util_verify_signature, random_dice, random_number, ….
Is flat-rate-x402-tools safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.8%

90 days 99.1%· all time 99.2%

latency
485ms

last good check

priced tools
2

of 79 tools

_ answered our checks, 90 days 1622 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • generate random numbers and uuids
  • check evm balances and gas fees
  • look up dns and ip data
  • generate or describe images
  • transcribe audio
takes → gives
text, data → data, images, text
tools
25 reads
note
resells another provider
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. The address stands behind 78 doors on this origin, so the chain figures are the operator's. How it is counted.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

payers on base
25

distinct

settlements
167

last 2026-11-10

received on chain
1.665 USDC

no flags

_ what it can do 79 tools
2 paid 77 never probed 2 of 79 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • messages 0.005 USDC paid never probed

    Use when an agent is written against the Anthropic Messages API and must call a model with no account: the same request and response shape - system as its own field, content as text blocks, stop_reason - so pointing your client at this URL is all it takes. One flat price per call, whatever the size. Automatic failover across several large models. Do not use for the OpenAI shape (/v1/chat/completions serves that one). You are only charged if the answer is delivered. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "model": {
          "type": "string",
          "description": "Ignored on purpose: the service picks the model and fails over between several. Accepted so an Anthropic client can send it unchanged."
        },
        "prompt": {
          "type": "string",
          "description": "Shortcut for a single user message, if you do not want to build the array."
        },
        "system": {
          "type": "string",
          "description": "The system prompt, as its own field (this is how the Anthropic API does it)."
        },
        "messages": {
          "type": "string",
          "description": "The conversation, as in the Anthropic API: [{\"role\":\"user|assistant\",\"content\":\"...\"}]. In a POST send a real JSON array, exactly as an Anthropic client does; in a GET pass that same JSON as text. Both are accepted."
        },
        "max_tokens": {
          "type": "number",
          "description": "Output token cap, up to 4000. Does not change the price. Required by the real API; here it is optional."
        },
        "temperature": {
          "type": "number",
          "description": "Passed through to the model when given."
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • do 0.02 USDC paid never probed

    Use when an agent has a job to get done and does not know which tool or in what order: describe it in plain words and it happens in ONE paid call: picks from 71 capabilities - transcription, translation, documents, images, web, on-chain, domains, IPs, weather, FX - fills their parameters and chains up to 3 steps, feeding each result into the next. Priced per job: the 402 challenge quotes YOUR job before you sign, from $0.02. If nothing fits, nothing is charged. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "job"
      ],
      "properties": {
        "job": {
          "type": "string",
          "description": "The job to do, in plain words. Example: read this page and translate it to Spanish."
        },
        "input": {
          "type": "string",
          "description": "Optional data the job needs: a URL, an EVM address, a domain, or text."
        },
        "auto_plan": {
          "type": "object",
          "description": "Optional POST-only automatic planner, mutually exclusive with explicit plans. Fixed charge $0.015 + tool_budget_usdc, at most $0.15 total, with no rebate for unused budget. External delegation additionally requires allow_external:true, external_budget_usdc up to $0.05, external_tools curated IDs and current curation_version from /v1/do/market. Both operator activation and a typed approved catalogue are required. A job's text cannot authorize external calls."
        },
        "max_steps": {
          "type": "number",
          "description": "How many tools may be chained, 1 to 3. Default 2."
        },
        "plan_steps": {
          "type": "array",
          "description": "Optional POST-only explicit mixed plan: 1-3 total steps, each {route, params} for a local catalogue tool or {url, params} for an eligible verified market entry. Use exact top-level $previous after the first step to pass text. A plan containing an external URL requires enabled isolated purchasing; local-only plans do not."
        },
        "market_steps": {
          "type": "array",
          "description": "Optional POST-only explicit external plan: 1-3 objects with url and params from a verified catalogue entry. Requires enabled isolated purchasing wallet; no example data is reused. Current execution supports GET entries and explicitly curated POST entries."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • evm_erc20_balance unknown never probed

    Use when an agent must confirm a wallet holds enough of a token before it swaps, pays or settles: the ERC-20 balance of any address for any token (USDC, USDT, DAI or any other), returned raw (exact integer string) with its decimals, the formatted amount and the symbol, so no rounding is forced on you. Do not use for the native coin (/v1/evm/balance) or for what a contract is allowed to spend (/v1/evm/erc20-allowance). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address",
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address."
        },
        "address": {
          "type": "string",
          "description": "Wallet to look up."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • llm_completion unknown never probed

    LLM inference at a flat $0.005 per call, with no account, no API key and no token metering. POST a prompt, get the completion: the same price for 10 tokens or 4000, while metered gateways scale with usage. Automatic failover across several large models; typical response under 1s. Pay per call in USDC over x402 - nothing to sign up for. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "prompt"
      ],
      "properties": {
        "prompt": {
          "type": "string",
          "description": "The request for the model. Up to 24000 characters."
        },
        "sistema": {
          "type": "string",
          "description": "Optional system instruction."
        },
        "maxTokens": {
          "type": "number",
          "description": "Output token cap, up to 4000. Does not change the price."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • evm_chains reads unknown never probed

    Use when an agent has to pick a chain that is actually answering before it commits to one: every supported chain in a single call, each with its chain id, block height, how many seconds stale its head is, and ok. Do not use for one chain on its own (/v1/evm/block) or for what a transaction will cost there (/v1/evm/gas, and /v1/evm/fees for EIP-1559 caps). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "chain": {
          "type": "string",
          "description": "Optional: check just one. base | ethereum | polygon | arbitrum | optimism. All of them when omitted."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • evm_ens unknown never probed

    Use when an agent has a name where it needs an address, or the other way round, before it can act: resolves an ENS name to its address or an address to its primary ENS name, read straight from Ethereum mainnet, with found telling you when there is no record. Do not use to check an address is well formed (/v1/util/address) or that it is a wallet (/v1/evm/is-contract). No API key. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "name": {
          "type": "string",
          "description": "ENS name to resolve, such as vitalik.eth."
        },
        "address": {
          "type": "string",
          "description": "Address to reverse-resolve. Use instead of name."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • util_hex reads unknown never probed

    Use when an agent has raw RPC output and must read it as a number or as text: converts between hex, decimal and UTF-8 in one call, with big integers kept exact because a 32-byte word overflows a JavaScript number. Do not use to decode a whole ABI-encoded struct: this converts one value. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "value"
      ],
      "properties": {
        "as": {
          "type": "string",
          "description": "hex | decimal | text. What the value IS. Defaults to autodetect."
        },
        "value": {
          "type": "string",
          "description": "A 0x-prefixed hex string, a decimal number, or text."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • util_verify_signature unknown never probed

    Use when an agent must decide whether whoever is talking to it really controls a wallet: it recovers the address that signed a personal_sign (EIP-191) message and says whether it matches the one you expected. This is the check that turns a claimed address into a proven one. Do not use for EIP-712 typed data or for a contract signature (ERC-1271): this route verifies personal_sign. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "message",
        "signature"
      ],
      "properties": {
        "message": {
          "type": "string",
          "description": "The exact message that was signed."
        },
        "expected": {
          "type": "string",
          "description": "Optional address to compare the recovered signer against."
        },
        "signature": {
          "type": "string",
          "description": "65-byte 0x signature from personal_sign."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • random_dice unknown never probed

    Use when an agent has to produce a roll a player or an audit will check: dice with any number of faces, every individual roll, the total and the standard notation (3d6, 1d20). It uses the platform CSPRNG with rejection sampling, so every face is equally likely, which a plain modulo is not. Do not use to choose from a list you already have (/v1/random/pick) or for a secret (/v1/random/password). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "count": {
          "type": "number",
          "description": "How many dice to roll, 1-100. Defaults to 1."
        },
        "faces": {
          "type": "number",
          "description": "Faces per die, 2-1000000. Defaults to 6."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • random_number unknown never probed

    Use when an agent needs numbers in a range that will stand up to inspection: uniform random integers between your own bounds, with or without repeats, drawn with rejection sampling so the ends of the range are not slightly less likely, which is what modulo does. Do not use to choose among items (/v1/random/pick) or for a secret (/v1/random/password). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "max": {
          "type": "number",
          "description": "Highest value, inclusive. Defaults to 100."
        },
        "min": {
          "type": "number",
          "description": "Lowest value, inclusive. Defaults to 1."
        },
        "count": {
          "type": "number",
          "description": "How many to draw, 1-100. Defaults to 1."
        },
        "unique": {
          "type": "boolean",
          "description": "No repeats. Needs a range at least as wide as count."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • time_zones unknown never probed

    Use when an agent has a city or a country and needs the exact zone name the other routes expect: searches the full IANA list and gives each zone's current UTC offset, abbreviation, local time and DST state. Use it to turn a city or a country into the exact zone name the other endpoints expect, or to find every zone sitting at a given offset right now. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Maximum zones returned, 1-500. Defaults to 50."
        },
        "offset": {
          "type": "string",
          "description": "Keep only zones at this current UTC offset, e.g. \"+09:00\" or \"-5\"."
        },
        "search": {
          "type": "string",
          "description": "Substring matched against the zone name, case-insensitive. Omit to list them all."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • content_joke unknown never probed

    Use when an agent must fill a pause without repeating itself: one joke, in English or Spanish, filtered by category: programming, crypto or general. Unlike the usual one-liner endpoints this one takes parameters, returns an id so you can exclude what you have already seen, and accepts a seed for a reproducible answer. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same joke."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "category": {
          "type": "string",
          "description": "programming | crypto | general. Omit for any."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • web_read unknown never probed

    Read public pages as Markdown with title, language and word count. GET accepts one URL; POST or MCP accepts one URL or an array of up to five in url. An array returns pages in input order. The flat price covers the entire call. A batch fails without settlement if any page cannot be read. No JavaScript rendering, account or API key. $0.0025 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 2048
            },
            {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 2048
              },
              "maxItems": 5,
              "minItems": 1
            }
          ],
          "description": "A public HTTP/HTTPS URL. POST and MCP also accept an array of up to five URLs."
        },
        "links": {
          "type": "boolean",
          "description": "Also return the outbound links as a list. Defaults to false."
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • web_status unknown never probed

    Use when an agent must decide whether a link is alive and where it really lands, without paying for the page: it checks one URL without downloading it - HTTP status, the full redirect chain hop by hop with the code of each, the final URL, whether it ends on HTTPS, content type and size, and the security headers the server sends. Built for going through a list of links one at a time. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The URL to check. http and https only; private and loopback addresses are refused."
        },
        "method": {
          "type": "string",
          "description": "HEAD (default) or GET. Some servers refuse HEAD and only answer GET."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • red_dnsbl unknown never probed

    Use when an agent must decide whether an IP is already known for abuse: it checks one IPv4 address against nine public DNS blocklists at once — SpamCop, UCEPROTECT, PSBL, Barracuda, DroneBL and four more — and returns each list's raw code and the reason text it publishes, not a score. Every list is re-checked on each call with its RFC 5782 test entry, so a dead list comes back as unavailable instead of reading as clean. Includes the delisting URL for each hit. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "ip"
      ],
      "properties": {
        "ip": {
          "type": "string",
          "description": "The IPv4 address to check. IPv6 is not accepted: these nine lists are IPv4 zones."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • red_whois unknown never probed

    Use when an agent must judge how established a domain is, or when it expires: registration data read from the registry's own RDAP service through the IANA bootstrap — not scraped from port-43 whois text. Returns creation, expiry and last-change dates, age and days to expiry, registrar, EPP status codes, nameservers, DNSSEC and the abuse contact. TLDs with no RDAP server say so instead of reporting the domain as unregistered. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "The domain to look up. A full URL or an email address is accepted and reduced to its host."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • weather_now unknown never probed

    Use when an agent must act on the weather right now and be able to cite it: current conditions for any point on Earth, from the Norwegian Meteorological Institute's official model, not an aggregator. Returns temperature, humidity, pressure, wind speed and bearing, cloud cover and the next hour's precipitation, plus the exact model run it came from and the units the institute itself declares, so the figure can be checked. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "description": "Latitude in decimal degrees, -90 to 90. Rounded to 4 decimals, which is what the institute accepts."
        },
        "lon": {
          "type": "number",
          "description": "Longitude in decimal degrees, -180 to 180. Rounded to 4 decimals."
        },
        "hours": {
          "type": "number",
          "description": "How many hourly steps to include after the current one, 0-24. Defaults to 6."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • weather_forecast reads unknown never probed

    Use when an agent is choosing a date and has to justify the choice: a day-by-day forecast for any point on Earth, up to nine days out, from the Norwegian Meteorological Institute's official model. Each day carries its minimum and maximum temperature, total precipitation, strongest wind and the midday symbol, with the exact model run and the institute's declared units. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "description": "Latitude in decimal degrees, -90 to 90. Rounded to 4 decimals."
        },
        "lon": {
          "type": "number",
          "description": "Longitude in decimal degrees, -180 to 180. Rounded to 4 decimals."
        },
        "days": {
          "type": "number",
          "description": "How many days to return, 1-9. Defaults to 5. The last day is usually partial and says so."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • red_cert unknown never probed

    Use when an agent must audit what certificates exist for a domain: every currently valid one publicly issued for it, read from the Certificate Transparency logs - issuer, validity window, days to expiry, revocation status and every hostname each certificate covers. It reports what was ISSUED, which is how you find certificates you did not know existed - not what the server is serving today. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "The domain to look up. A full URL or an email address is accepted and reduced to its host."
        },
        "subdomains": {
          "type": "boolean",
          "description": "Also return certificates issued for subdomains. Defaults to false."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • ai_image reads unknown never probed

    Use when an agent needs a picture it can hand straight to the next step: a 1024x1024 JPEG from a text prompt with FLUX.1 [schnell] in about 2 seconds. Returns a hosted image URL valid for 24 hours that you can hand straight to the next tool; add inline=true to also get the base64. Choose 1-8 diffusion steps (default 4). You are only charged if the image is delivered. No API key, no account. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "prompt"
      ],
      "properties": {
        "steps": {
          "type": "number",
          "description": "Diffusion steps, 1-8. More is sharper and slower. Default 4."
        },
        "inline": {
          "type": "boolean",
          "description": "Also return the JPEG as base64. Default false."
        },
        "prompt": {
          "type": "string",
          "description": "What to draw, up to 2048 characters. English works best."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • ai_document unknown never probed

    Use when an agent must read a document it was handed: it turns it into clean Markdown in about a second - pass an https URL or base64 of a PDF, Word, Excel, PowerPoint, HTML, CSV or XML file and get the text back with its headings, tables and page markers, plus the token count. It reads the text layer, so a scanned page with no text layer comes back without text. You are only charged if the Markdown is delivered. No API key, no account. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "url": {
          "type": "string",
          "description": "https URL of the document to convert. Use this or document."
        },
        "document": {
          "type": "string",
          "description": "The document, as base64. Use this or url."
        },
        "filename": {
          "type": "string",
          "description": "Name with extension, e.g. invoice.pdf. Helps the converter pick the parser. Default: taken from the URL."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ai_speech unknown never probed

    Use when an agent must be heard and not read, in English, Spanish, French, Chinese, Japanese or Korean: Deepgram Aura-2 for English and Spanish, MeloTTS for the rest. Returns a hosted audio URL valid for 24 hours (MP3 for English and Spanish, WAV otherwise) plus its size; add inline=true to also get the base64. Up to 2000 characters per call. You are only charged if the audio is delivered. No API key, no account. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "lang": {
          "type": "string",
          "description": "en, es, fr, zh, ja or ko. Default en."
        },
        "text": {
          "type": "string",
          "description": "What to say, up to 2000 characters."
        },
        "inline": {
          "type": "boolean",
          "description": "Also return the WAV as base64. Default false."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • evm_can_i_send unknown never probed

    Use when an agent is about to sign a transaction and must decide whether it will go through right now: one call that answers canSend with the facts behind it - the sender's balance, the gas this exact transaction needs, what it will cost, whether the node says it would revert, the nonce to use if earlier ones are still in flight, whether the destination is a contract, and how stale the chain head is. Replaces five separate reads. No API key, no account. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Destination address."
        },
        "data": {
          "type": "string",
          "description": "Optional 0x calldata."
        },
        "from": {
          "type": "string",
          "description": "The address that would sign and pay."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism. Defaults to base."
        },
        "value": {
          "type": "string",
          "description": "Optional native amount in wei, as a decimal string."
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • util_keccak256 unknown never probed

    Use when an agent is building something Ethereum will hash and must get the same digest the chain gets: Keccak-256 of any string or hex payload, with the byte count. It is NOT SHA3-256, and that confusion is the usual reason a selector or a CREATE2 address comes out wrong. Do not use for file digests or API signatures outside Ethereum (/v1/util/sha256) or for a function selector, which is already built for you (/v1/util/selector). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "string",
          "description": "Plain text, or a 0x-prefixed hex payload to hash as bytes."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • evm_block unknown never probed

    Use when an agent has to decide whether what it just read on-chain is fresh, or whether a node is behind: the latest block height, its timestamp and how many seconds old the chain head is. Do not use for one transaction's outcome (/v1/evm/tx) or to compare several chains at once (/v1/evm/chains does all of them in one call). Flat price, no rate limits, no API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • evm_verdict unknown never probed

    Use when an agent needs one answer it can act on: a verdict on any ERC20 on five chains - a machine-readable label for who can act on your balance (no-owner-powers, owner-can-intervene, owner-controls-balances, not-a-token), a headline, a plain reading and a paste-ready card, with the evidence selector by selector. Label and card come from the bytecode and live state, never from a model. A repeated requestKey is never charged twice. Research, not investment advice. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address to judge."
        },
        "requestKey": {
          "type": "string",
          "description": "Optional idempotency key you choose, 8 to 128 characters of letters, digits, dot, dash, colon or underscore. Send the same key with the same input and you get your first answer back and are NOT charged again: the repeat comes back with HTTP 409, the stored answer in the body and \"charged\": false, because any status at or above 400 is what cancels the payment on this service. Keys are bound to the paying address and kept 24 hours. Reusing a key with a different input is rejected, also without charge."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • util_sha256 reads unknown never probed

    Use when an agent must prove two payloads are the same byte for byte, or sign an API request: SHA-256 of any string or hex payload, returned as hex and as base64, which are the two forms signatures and content addresses are written in. Do not use for anything Ethereum hashes: the chain uses Keccak-256 (/v1/util/keccak256), which gives a different digest. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "string",
          "description": "Plain text, or a 0x-prefixed hex payload to hash as bytes."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • util_address unknown never probed

    Use when an agent is handed an address and must decide whether it is safe to use before sending anything: it validates it and returns the EIP-55 mixed-case checksum form, plus whether the input was already checksummed. An address that fails the checksum is almost always mistyped. Do not use to find out whether it is a wallet or a contract (/v1/evm/is-contract) or to resolve a name (/v1/evm/ens). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "address": {
          "type": "string",
          "description": "The address to validate, in any case."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • random_coinflip reads unknown never probed

    Use when an agent must break a tie or split a test and cannot be seen to have chosen: one or more fair coins, each result and the tally of heads and tails, cryptographically random rather than Math.random. Do not use to pick among more than two options (/v1/random/pick) or to order a list (/v1/random/shuffle). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "count": {
          "type": "number",
          "description": "How many coins to flip, 1-100. Defaults to 1."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • content_roast unknown never probed

    Use when a code-review agent wants to land a joke about the actual stack in front of it: a lighthearted developer roast aimed at a target YOU choose - javascript, python, css, git, regex, kubernetes, agile or legacy code - and at the severity you ask for. Every other roast endpoint returns something generic; this one lets a code-review agent roast the actual stack in front of it. Bilingual, seedable and repeat-free. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same roast."
        },
        "target": {
          "type": "string",
          "description": "javascript | python | css | git | regex | kubernetes | agile | legacy. Omit for any."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        },
        "severity": {
          "type": "string",
          "description": "mild | medium | savage. Omit for any."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • content_fact unknown never probed

    Use when an agent needs something true to say and must not repeat itself across a session: one curious fact, in English or Spanish, by topic: science, computing, history or nature. Takes parameters, returns an id so you can avoid repeats across a session, and accepts a seed for a reproducible answer. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same fact."
        },
        "topic": {
          "type": "string",
          "description": "science | computing | history | nature. Omit for any."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • util_iban reads unknown never probed

    Use when an agent must decide whether a bank account it was given can be paid before trying: validates one IBAN offline - country, expected length, ISO 7064 mod-97 check digits, whether it is inside SEPA, and the account number split out. Deterministic, no network call and no third party that can go down. Built for cleaning a list of accounts one at a time. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "iban"
      ],
      "properties": {
        "iban": {
          "type": "string",
          "description": "The IBAN to check. Spaces and lowercase are accepted."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • util_vat unknown never probed

    Use when an agent must decide whether a company's tax number is usable before invoicing: validates one EU VAT number offline - country prefix, the format that country uses, and the published check-digit algorithm where one exists. Says explicitly whether the check digits were verified or only the format. Deterministic, no network call. Built for cleaning a list of companies one at a time. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "vat"
      ],
      "properties": {
        "vat": {
          "type": "string",
          "description": "The VAT number, with or without the country prefix and with any spacing."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • fx_convert unknown never probed

    Use when an agent has to convert money in a figure someone will audit: between any two of the ~30 currencies in the European Central Bank's official reference rates, on today's publication or on a past date within the last 90 days. Returns the rate used, its publication date and whether it was crossed through the euro. This is the auditable rate accounting and customs ask for, not a live market quote: it is published once a day and it is reproducible. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Target currency, ISO 4217, e.g. EUR."
        },
        "date": {
          "type": "string",
          "description": "Optional publication date, YYYY-MM-DD, within the last 90 days. Defaults to the latest publication."
        },
        "from": {
          "type": "string",
          "description": "Source currency, ISO 4217, e.g. USD."
        },
        "amount": {
          "type": "number",
          "description": "Amount to convert. Defaults to 1."
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • chat_completions unknown never probed

    Use when an agent must call an LLM with no account and no token metering: chat completions with the exact request and response shape of the OpenAI API - point your existing client at this URL and it works, no code change. One flat price per call whatever the size of the prompt or the answer — no token metering, no API key, no account, no rate limit. Automatic failover across several large models. You are only charged if the completion is delivered. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "model": {
          "type": "string",
          "description": "Ignored on purpose: the service picks the model and fails over between several. Accepted so an OpenAI client can send it unchanged."
        },
        "prompt": {
          "type": "string",
          "description": "Shortcut for a single user message, if you do not want to build the array."
        },
        "messages": {
          "type": "string",
          "description": "The conversation, as in the OpenAI API: [{\"role\":\"system|user|assistant\",\"content\":\"...\"}]. In a POST, send it as a real JSON array, exactly as an OpenAI client does; in a GET, pass that same JSON as text in the query string. Both are accepted."
        },
        "max_tokens": {
          "type": "number",
          "description": "Output token cap, up to 4000. Does not change the price."
        },
        "temperature": {
          "type": "number",
          "description": "Passed through to the model when given."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • red_domain_check reads unknown never probed

    Use when an agent must decide whether a domain is real and reachable before trusting it: everything DNS says about it in one call - whether it is registered, its A and AAAA addresses, nameservers, MX servers, SPF and DMARC, DNSSEC, and whether it looks parked. Built for going through a list of domains one at a time. Live DNS, no API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "The domain to check. A full URL or an email address is accepted and reduced to its host."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • ai_image_styled unknown never probed

    Use when an agent needs an illustration rather than a photo: DreamShaper 8 LCM from a text prompt in about 2 seconds - painterly and character art rather than photoreal. Takes a seed for a repeatable result, a negative prompt, and your own width and height. Returns a hosted image URL valid for 24 hours; add inline=true to also get the base64. You are only charged if the image is delivered. No API key, no account. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "prompt"
      ],
      "properties": {
        "seed": {
          "type": "number",
          "description": "Same prompt and same seed give the same image."
        },
        "steps": {
          "type": "number",
          "description": "Diffusion steps, 1-20."
        },
        "width": {
          "type": "number",
          "description": "Width in pixels, a multiple of 8 between 256 and 1536. Default 1024."
        },
        "height": {
          "type": "number",
          "description": "Height in pixels, a multiple of 8 between 256 and 1536. Default 1024."
        },
        "inline": {
          "type": "boolean",
          "description": "Also return the image as base64. Default false."
        },
        "prompt": {
          "type": "string",
          "description": "What to draw, up to 2048 characters. English works best."
        },
        "guidance": {
          "type": "number",
          "description": "How closely to follow the prompt, 0-20."
        },
        "negative_prompt": {
          "type": "string",
          "description": "What to keep out of the image, up to 1024 characters."
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • ai_image_edit unknown never probed

    Use when an agent must change part of an image and leave the rest untouched: pass the image and a black-and-white mask, and Stable Diffusion inpainting repaints only the white area following your prompt. Image and mask go as https URLs or as base64, up to 10 MB each. Returns a hosted image URL valid for 24 hours. You are only charged if the edit is delivered. No API key, no account. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "prompt"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "https URL of the image to edit. Use this or image."
        },
        "mask": {
          "type": "string",
          "description": "The mask, as base64. Use this or mask_url."
        },
        "seed": {
          "type": "number",
          "description": "Same inputs and same seed give the same edit."
        },
        "image": {
          "type": "string",
          "description": "The image to edit, as base64. Use this or url."
        },
        "steps": {
          "type": "number",
          "description": "Diffusion steps, 1-20."
        },
        "prompt": {
          "type": "string",
          "description": "What to paint into the masked area, up to 2048 characters."
        },
        "guidance": {
          "type": "number",
          "description": "How closely to follow the prompt, 0-20."
        },
        "mask_url": {
          "type": "string",
          "description": "https URL of the mask: white where it should repaint, black where it must not. Use this or mask."
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • content_horror_story reads unknown never probed

    Use when an agent has to perform something short and timed, not just print text: a two-sentence horror story, in English or Spanish, by theme: domestic, technological, cosmic or folk. Returned SPLIT into setup and payoff as well as joined, so a narrating agent can deliver the first line, pause, and then land the second. Takes parameters, returns an id to avoid repeats, and accepts a seed for a reproducible answer. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same story."
        },
        "theme": {
          "type": "string",
          "description": "domestic | technological | cosmic | folk. Omit for any."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • catalog reads unknown never probed

    FREE, no payment needed. Lists all 78 tools with a real example of the input and of the output each one returns, plus what a call costs and how to pay for it. Call this first if a tool asks for payment.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • evm_token_safety unknown never probed

    Use when an agent must decide whether to touch a token at all: a pre-trade risk check on Base, Ethereum, Polygon, Arbitrum or Optimism, straight from the deployed bytecode and live state. Detects mint, pause, blacklist, upgradeable proxy and mutable buy/sell tax powers, and reports whether ownership is renounced. It returns the EVIDENCE - the exact selector found and its byte offset - so an agent can apply its own policy. Deterministic: same contract, same answer. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address to check."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_balance unknown never probed

    Use when an agent has to decide whether a wallet can pay before building a transaction: the native coin balance (ETH, MATIC...) of any address on Base, Ethereum, Polygon, Arbitrum or Optimism, returned both as wei (exact integer string) and as ether, with the chain it was read on. Do not use for token balances (/v1/evm/erc20-balance) or for a whole-wallet view (/v1/evm/portfolio). Flat price, no rate limits, no API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism. Defaults to base."
        },
        "address": {
          "type": "string",
          "description": "0x-prefixed address to look up."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_token_info unknown never probed

    Use when an agent has a bare token address and must label or format it before showing or computing anything: name, symbol, decimals and total supply of any ERC-20 in one call. decimals is what stops an amount being shown a million times too big. Do not use for a holder's balance (/v1/evm/erc20-balance), the price (/v1/evm/token-price) or the risk (/v1/evm/token-safety). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_token_price reads unknown never probed

    Use when an agent must put a number on a token before trading or reporting, and be able to defend it: spot price read straight from the deepest Uniswap V3 pool against USDC, on Base, Ethereum, Polygon, Arbitrum or Optimism. Returns the pool address, fee tier, liquidity, sqrtPriceX96, tick and block, so the number can be audited instead of trusted. No aggregator and no API key: the source is the chain itself. Via eth_call. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "quote": {
          "type": "string",
          "description": "Token to price it against. Defaults to the chain's native USDC."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address to price."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • evm_gas unknown never probed

    Use when an agent is about to send a transaction and needs to know what it costs right now: the chain's current gas price in wei and gwei plus the cost of a plain transfer in ether. It is the price now, not a forecast. Do not use for EIP-1559 fee caps (/v1/evm/fees returns the base fee with maxFeePerGas and maxPriorityFeePerGas) or to price a specific call (/v1/evm/estimate-gas). Flat price, no API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • evm_tx reads unknown never probed

    Use when an agent has sent a transaction and must decide what to do next: the transaction by hash merged with its receipt in one call, so you get sender, recipient, value, gas used, success or revert, and the block it landed in without chaining two RPC calls. Do not use to find out whether it has been mined at all (/v1/evm/receipt answers found: false) or to judge it before signing (/v1/evm/estimate-gas). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "hash"
      ],
      "properties": {
        "hash": {
          "type": "string",
          "description": "Transaction hash."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_nonce reads unknown never probed

    Use when an agent signs transactions one after another and must not collide with one already in flight: the confirmed nonce, the pending nonce (the one to use while an earlier transaction is still unmined) and whether the address is a contract. Do not use to check the transaction is affordable (/v1/evm/balance for the funds, /v1/evm/estimate-gas for the cost). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "address": {
          "type": "string",
          "description": "Address to look up."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_is_contract unknown never probed

    Use when an agent is about to send funds and must decide whether the destination is a plain wallet or a contract: returns isContract and the size of the deployed bytecode. A wallet where you expected a contract, or the reverse, is the cheapest mistake to catch before signing. Do not use to judge whether a token is safe (/v1/evm/token-safety) or worth trusting (/v1/evm/verdict). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "address": {
          "type": "string",
          "description": "Address to inspect."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_call unknown never probed

    Use when an agent needs a contract value that none of the typed routes covers: it runs any read-only call with your own calldata on five chains and returns the raw 32-byte result plus asUint, so you can decode it yourself. The escape hatch, not the first choice. Do not use for balances, allowances, token data or NFT owners: those have typed routes that decode the answer for you. No API key, no rate limit. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "to",
        "data"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Contract address to call."
        },
        "data": {
          "type": "string",
          "description": "0x-prefixed calldata: 4-byte selector plus encoded arguments."
        },
        "from": {
          "type": "string",
          "description": "Optional caller address, for calls that check msg.sender."
        },
        "block": {
          "type": "string",
          "description": "Block tag or number. Defaults to latest."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • evm_receipt unknown never probed

    Use when an agent is waiting on a transaction and has to answer «did it work, and what did it cost»: the receipt by hash with success or revert, gas used, the fee actually paid in ether, and how many logs it emitted. found: false means it is not mined yet, which is the answer a waiting agent needs. Do not use for the transaction's own fields like value or recipient (/v1/evm/tx returns both merged). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "hash"
      ],
      "properties": {
        "hash": {
          "type": "string",
          "description": "32-byte transaction hash."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • evm_estimate_gas unknown never probed

    Use when an agent is about to sign a transaction and must know whether it will fail and what it will cost: the gas this exact call needs, the current gas price, the cost in ether, and wouldRevert, which says the transaction would fail before you spend anything finding out. Do not use for the price of a plain transfer (/v1/evm/gas) or for EIP-1559 caps (/v1/evm/fees). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Destination address."
        },
        "data": {
          "type": "string",
          "description": "Optional 0x calldata."
        },
        "from": {
          "type": "string",
          "description": "Sender address."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "value": {
          "type": "string",
          "description": "Optional value in wei, as a decimal string."
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • evm_gas_window unknown never probed

    Use when an agent can choose WHEN to send and must decide whether waiting would save anything: the fee paid across the last ~1000 blocks of this chain in one call, with the cost now, the window percentiles, where now sits in it, and timingMatters, which says whether this chain moves enough for the question to be worth asking at all. Do not use to price one transaction (/v1/evm/estimate-gas) or for EIP-1559 caps (/v1/evm/fees). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism. Defaults to base."
        },
        "blocks": {
          "type": "string",
          "description": "How many blocks of history, 32 to 1024. Defaults to 1024."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • evm_storage unknown never probed

    Use when an agent must read something a contract does not expose with a getter and has to decide from it: a raw storage slot, returned as hex and as an integer. It is how you find a proxy's implementation address, an owner or a paused flag. Do not use when the contract has a public getter (/v1/evm/call is the honest way) or for token data (/v1/evm/token-info). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "slot": {
          "type": "string",
          "description": "Slot number in decimal, or a 0x slot key such as an EIP-1967 hash."
        },
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "address": {
          "type": "string",
          "description": "Contract to read."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • evm_erc20_allowance reads unknown never probed

    Use when an agent is about to approve a spender, or is auditing what it approved before: how much of a token the spender may still move on the owner's behalf, raw and formatted with its decimals, plus unlimited, which flags a forgotten infinite approval. Do not use for what the wallet actually holds (/v1/evm/erc20-balance) or for whether the token is safe (/v1/evm/token-safety). No API key. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "owner",
        "spender",
        "token"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "owner": {
          "type": "string",
          "description": "Address that owns the tokens."
        },
        "token": {
          "type": "string",
          "description": "ERC20 contract address."
        },
        "spender": {
          "type": "string",
          "description": "Address allowed to spend them."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • evm_nft_owner unknown never probed

    Use when an agent must decide whether an NFT is still held by who it thinks: the current owner of an ERC-721 token id, with its tokenURI and the collection name in the same call, read straight from the contract with no indexer in between. Do not use for a whole wallet's holdings or for ERC-1155 balances: this answers one token id. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "contract",
        "tokenId"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "tokenId": {
          "type": "string",
          "description": "Token id, in decimal."
        },
        "contract": {
          "type": "string",
          "description": "ERC721 contract address."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • evm_portfolio reads unknown never probed

    Use when an agent must see at once whether a wallet can cover something: the native balance plus the balance of every token you list, on one chain, in a single call, each already formatted with its symbol and decimals. One request instead of one per token. Do not use for a single token (/v1/evm/erc20-balance) or for what the tokens are worth (/v1/evm/token-price). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        },
        "tokens": {
          "type": "array",
          "description": "Up to 20 ERC20 contract addresses."
        },
        "address": {
          "type": "string",
          "description": "Wallet to inspect."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • evm_fees reads unknown never probed

    Use when an agent is building an EIP-1559 transaction and must choose fee caps that will actually get it mined: the base fee plus suggested maxFeePerGas and maxPriorityFeePerGas at slow, normal and fast, computed from the last 20 blocks of real fee history. Do not use for a legacy gas price (/v1/evm/gas) or to price one specific call (/v1/evm/estimate-gas). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "chain": {
          "type": "string",
          "description": "base | ethereum | polygon | arbitrum | optimism."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • util_units unknown never probed

    Use when an agent must turn an on-chain integer into a human amount, or back, without losing money to rounding: converts between wei, gwei, ether and any token decimals with exact integer maths, no floating point. Being off by a factor of a thousand on decimals is the mistake that costs real funds. Do not use to find a token's decimals (/v1/evm/token-info returns them). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "amount",
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "wei | gwei | ether, or a number of decimals."
        },
        "from": {
          "type": "string",
          "description": "wei | gwei | ether, or a number of decimals."
        },
        "amount": {
          "type": "string",
          "description": "The quantity, as a string to avoid float loss."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • util_base64 unknown never probed

    Use when an agent must put bytes through a header, a URL or a JSON field, or read what came back: base64 in both directions, including the URL-safe alphabet, with UTF-8 handled properly. x402 itself rides on base64, so this is the one that reads a payment header. Do not use for hashing (/v1/util/sha256) or for hex (/v1/util/hex). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "description": "encode | decode. Defaults to encode."
        },
        "input": {
          "type": "string",
          "description": "The text or base64 to convert."
        },
        "urlSafe": {
          "type": "boolean",
          "description": "Use the URL-safe alphabet (-_ instead of +/)."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • util_uuid reads unknown never probed

    Use when an agent needs ids that must not collide: cryptographically random UUID v4s, up to 100 in one call, straight from the platform CSPRNG. For idempotency keys, request ids and correlation ids, where a repeat means a duplicate charge or a lost trace. Do not use for a secret or a password (/v1/random/password reports its entropy) or for a hash (/v1/util/sha256). $0.002 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "count": {
          "type": "number",
          "description": "How many to generate, 1-100. Defaults to 1."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • util_selector unknown never probed

    Use when an agent is building calldata by hand or filtering logs and needs the exact identifiers: it turns a Solidity signature such as transfer(address,uint256) into its 4-byte function selector and its 32-byte event topic0. Do not use to run the call once you have the calldata (/v1/evm/call) or to hash arbitrary data (/v1/util/keccak256). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "signature"
      ],
      "properties": {
        "signature": {
          "type": "string",
          "description": "Canonical signature: name(type1,type2), no spaces and no argument names."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • random_pick reads unknown never probed

    Use when an agent has several options and no reason to prefer any, and the choice has to be defensible: picks one or more items from the list you send, with or without repeats, and tells you how many it had to choose from. Do not use to order the whole list (/v1/random/shuffle) or to draw a number in a range (/v1/random/number). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "count": {
          "type": "number",
          "description": "How many to pick, 1-100. Defaults to 1."
        },
        "items": {
          "type": "string",
          "description": "The options, comma-separated. A JSON array of strings is also accepted in a POST body."
        },
        "repeat": {
          "type": "boolean",
          "description": "Allow the same item more than once. Defaults to false."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • random_shuffle reads unknown never probed

    Use when an agent must put a list in an order nobody can claim was arranged: a uniformly random shuffle with Fisher-Yates over the platform CSPRNG, so every permutation is equally likely, which sorting by a random key does not give you. Do not use to take just one or a few items (/v1/random/pick). No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "string",
          "description": "The list to shuffle, comma-separated. A JSON array of strings is also accepted in a POST body."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • random_password unknown never probed

    Use when an agent must mint a secret and be able to justify its strength: strong random passwords from the platform CSPRNG, returned with their entropy in bits so the strength is a number and not an opinion. Four alphabets, one with no look-alike characters for anything a human has to read back or dictate. Do not use for ids that only need to be unique (/v1/util/uuid). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "count": {
          "type": "number",
          "description": "How many to generate, 1-50. Defaults to 1."
        },
        "length": {
          "type": "number",
          "description": "Characters per secret, 8-256. Defaults to 20."
        },
        "alphabet": {
          "type": "string",
          "description": "alnum | legible | hex | completo. Defaults to legible."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • time_convert unknown never probed

    Use when an agent is about to commit to a time in someone else's zone and cannot be an hour wrong: converts between any two IANA zones with daylight saving applied from the runtime's own tz database. Returns both sides with their UTC offset, abbreviation and DST flag, plus the UTC instant and the difference in hours. Warns when the time asked for does not exist or happens twice because the clocks change that day: the two cases that quietly make a hand-made conversion wrong. $0.0018 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Target IANA time zone, e.g. \"Asia/Tokyo\". Required."
        },
        "from": {
          "type": "string",
          "description": "Source IANA time zone, e.g. \"Europe/Madrid\". Required."
        },
        "time": {
          "type": "string",
          "description": "Wall clock as YYYY-MM-DD HH:MM in the \"from\" zone, or an ISO string with Z or an offset, or a unix timestamp, or \"now\". Defaults to now."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • time_now reads unknown never probed

    Use when an agent must stamp or schedule something in a particular place and needs every form at once: ISO with offset, 24-hour, 12-hour, weekday, unix timestamp and UTC. It also says whether daylight saving is active right now and what the zone's standard offset is, so a shifted clock can be told apart from a permanent one. $0.002 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "zone"
      ],
      "properties": {
        "zone": {
          "type": "string",
          "description": "IANA time zone, e.g. \"Asia/Tokyo\" or \"UTC\". Required."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • content_riddle unknown never probed

    Use when an agent has to run a guessing game and must mark the answer without seeing it first: one riddle by difficulty, in English or Spanish, with the answer AND the SHA-256 of the answer in lowercase. The hash is the point: an agent can check whether its guess is right without reading the solution first, which no other riddle endpoint lets you do. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same riddle."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        },
        "difficulty": {
          "type": "string",
          "description": "easy | medium | hard. Omit for any."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • content_advice unknown never probed

    Use when an agent must end a reply with something usable rather than a platitude: one piece of practical advice about work, life or money, in English or Spanish. Short, concrete and usable - not a fortune cookie. Filterable by topic, with an id to avoid repeats and a seed for reproducibility. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "seed": {
          "type": "string",
          "description": "Same seed always returns the same advice."
        },
        "topic": {
          "type": "string",
          "description": "work | life | money. Omit for any."
        },
        "exclude": {
          "type": "array",
          "description": "Ids already seen, comma-separated in a GET."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • content_word_of_the_day reads unknown never probed

    Use when an agent runs something daily and everyone must get the same thing that day: the word of the day with its definition, part of speech and an example sentence, in English or Spanish. Genuinely of the day: it is picked deterministically from the UTC date, so everyone gets the same word and you can reproduce any past day by passing it. The usual endpoints just return a random word and call it the word of the day. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "date": {
          "type": "string",
          "description": "YYYY-MM-DD in UTC. Defaults to today, and any past date is reproducible."
        },
        "language": {
          "type": "string",
          "description": "en | es. Defaults to en."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • red_email_check unknown never probed

    Use when an agent must decide whether to write to an address, or clean a list before sending: it scores one email 0-100 with a verdict (ok, risky, disposable, undeliverable, invalid) and the evidence under it: every point lost is itemised with the field that proves it. 12,141 disposable domains from two maintained open lists pinned to a commit, 4,897 free providers, 1,018 role names, typo fix (gmial.com > gmail.com), live MX/SPF/DMARC. No SMTP probe, no API key. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "The address to check, e.g. [email protected]."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • red_ip reads unknown never probed

    Use when an agent must decide who an IP belongs to before blocking or trusting it: one IPv4 or IPv6 address against the two authoritative, keyless public sources - RDAP registry data (holder, country, date, abuse contact) via the ARIN-to-RIR chain, and the origin ASN from Team Cymru's DNS service. No city-level geolocation and no VPN/proxy detection: that needs a licensed database this route deliberately does not use. Built for going through a list of IPs one at a time. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "ip"
      ],
      "properties": {
        "ip": {
          "type": "string",
          "description": "The IPv4 or IPv6 address to look up."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • red_asn unknown never probed

    Use when an agent has an origin ASN and must decide who is behind a network and whether it is still live: the RDAP registry record (holder, status, allocation dates, abuse contact), the AS name, country and RIR, and the prefixes it announces right now, split IPv4 and IPv6 with a sample. The natural second call after /v1/red/ip. Do not use for one address (/v1/red/ip) or for a domain (/v1/red/whois). $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "asn"
      ],
      "properties": {
        "asn": {
          "type": "string",
          "description": "The AS number, with or without the AS prefix: 15169 or AS15169."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • util_phone unknown never probed

    Use when an agent must decide whether a phone number is usable before writing or calling: checks it offline, normalises it to E.164, works out its country (including the twelve calling codes shared by several countries) and validates the national length against that country's numbering plan, returning the tel: URI and the national dialling form. Data from Google's libphonenumber, no network call, so it cannot fail because a third party is down. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "phone"
      ],
      "properties": {
        "phone": {
          "type": "string",
          "description": "The phone number, in any usual notation: +34 612 34 56 78, 0034612345678, (612) 345-678."
        },
        "country": {
          "type": "string",
          "description": "Optional ISO 3166-1 alpha-2 country, e.g. ES. Only used when the number carries no country code."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • crypto_sanctions reads unknown never probed

    Use when an agent must decide whether it may transact with an address at all: it checks it against the OFAC SDN list published by the US Treasury, across 16 currencies including Ethereum, Bitcoin, Tron and USDT. A hit returns the actual list entry - sanctioned entity, its type and its sanctions programmes - not a risk score. Exact matching only, never fuzzy. Every answer carries the publication date of the list snapshot. No API key, no account. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "address": {
          "type": "string",
          "description": "The crypto address to check. Any chain: EVM, Bitcoin, Tron, Litecoin, Monero and the rest of the list."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • ai_image_describe reads unknown never probed

    Use when an agent has an image and needs words it can act on, in about a second: pass an https URL or base64 and ask anything about it, from a one-line caption to reading a sign. Pairs with the rest of the chain: describe an image, translate the description, then have it read aloud. You are only charged if the description is delivered. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "url": {
          "type": "string",
          "description": "https URL of the image to describe. Use this or image."
        },
        "image": {
          "type": "string",
          "description": "The image, as base64. Use this or url."
        },
        "prompt": {
          "type": "string",
          "description": "What to ask about the image. Default: a one-sentence description."
        },
        "max_tokens": {
          "type": "number",
          "description": "Length limit of the answer, 16-512. Default 128."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • ai_transcribe reads unknown never probed

    Use when an agent is handed audio and needs text it can work with: Whisper large v3 turbo - pass an https URL (mp3, wav, flac, m4a, ogg, up to 10 MB) or base64 audio in a POST. Returns the text, the detected language with its probability, the duration, and timed segments; add words=true for word-level timestamps. Around 100 languages. You are only charged if the transcript is delivered. No API key, no account. $0.02 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "url": {
          "type": "string",
          "description": "https URL of the audio file, up to 10 MB."
        },
        "audio": {
          "type": "string",
          "description": "Alternative to url: the audio as base64 (POST only)."
        },
        "words": {
          "type": "boolean",
          "description": "Include word-level timestamps. Default false."
        },
        "language": {
          "type": "string",
          "description": "Optional ISO code to skip detection, e.g. es."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • ai_translate unknown never probed

    Use when an agent must say something in a language it was not given: about 100 languages with Meta M2M100 1.2B - pass the text and the target language (ISO code or English name); the source language is detected if omitted. Long texts are split by sentence, keeping order and line breaks. Up to 2000 characters per call. Chains with /v1/ai/transcribe and /v1/ai/speech. You are only charged if the translation is delivered. No API key, no account. $0.005 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "text",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Target language: ISO code (es, fr, de, zh, ja...) or English name (spanish)."
        },
        "from": {
          "type": "string",
          "description": "Optional source language; detected when omitted."
        },
        "text": {
          "type": "string",
          "description": "What to translate, up to 2000 characters."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • security_prompt_injection unknown never probed

    Use when untrusted text - an email, a web page, another tool's output - enters a model's context and may carry instructions aimed at your agent. Returns safe/suspicious/malicious, a 0-1 score and each match with its excerpt, offset and what it would do. Also decodes base64, hex, URL-encoded and reversed payloads, and flags invisible characters. Deterministic, no model, and it says what it could not inspect. Not for ERC20 contracts (/v1/evm/token-safety). Flat price, no key. $0.003 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "description": "The untrusted text to classify, up to 32 kB. Anything longer is truncated and the response says so in unknown[]."
        },
        "source": {
          "type": "string",
          "description": "Optional label echoed back, so a batch of calls can be matched to its items (for example \"email:1842\")."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • x402_recommend unknown never probed

    Use when your agent has a task it cannot do itself and must pick which paid x402 endpoint to call. Returns up to 5 ranked candidates with URL, price, network, method and the seller's own example body - plus the evidence: we challenged it ourselves and it answered 402, and its real payer and repeat counts. Never recommends our own endpoints: the index excludes them by construction. If nothing qualifies you get the near misses and why, never filler. Deterministic, no model. $0.01 per call, paid over x402 (USDC).

    mcp-tool

    {
      "type": "object",
      "required": [
        "need"
      ],
      "properties": {
        "max": {
          "type": "number",
          "description": "How many candidates to return, 1 to 5. Default 3."
        },
        "need": {
          "type": "string",
          "description": "The task, in plain words. Scored against the name, tags, description and URL of every verified endpoint in the index."
        },
        "maxPrice": {
          "type": "number",
          "description": "Optional ceiling in USD per call, for example 0.01. Candidates above it are dropped."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 45e5459185200022.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/45e5459185200022/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/45e5459185200022/badge.svg)](https://brick.blue/agent/45e5459185200022?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.