{
  "data": {
    "tool": {
      "category": "payment-platforms",
      "endpoint": "https://www.tereno.xyz/api/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tereno.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/tereno.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/tereno.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 2093,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 11
          },
          "findings": [
            {
              "rule": "TC13",
              "severity": "warn",
              "tool": "prediction_evidence",
              "message": "context (object with no properties)",
              "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "chain_snapshot",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "contract_guard",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "demand_pledge",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "prediction_evidence",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "tereno_catalog",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "tereno_evidence_reference",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "tereno_price",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "tereno_publish",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "tereno_receipt",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "token_metadata",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "10 of 10 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:26:20Z",
        "count": 10,
        "note": "answered without the initialize handshake",
        "schemaTokens": 2093,
        "status": "ok",
        "tools": [
          {
            "name": "tereno_catalog",
            "title": "What can Tereno answer, and what does it cost?",
            "description": "Free. The full capability catalog: what each one answers, its price tiers in USDC on Base, how long an answer stays valid, and whether it is shared or private. Read this before paying for anything.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "tereno_price",
            "title": "What would this call cost right now?",
            "description": "Free. Indicative price and reuse tier for one specific input, without binding a quote or revealing a wallet. Returns hit when another agent already paid to compute this and it is still fresh, partial when only the durable half survives, miss when nothing is there to reuse. The gap between those tiers is what reuse is worth.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "address": {
                  "description": "Base contract address, for the capabilities that take one.",
                  "pattern": "^0x[a-fA-F0-9]{40}$",
                  "type": "string"
                },
                "capability": {
                  "description": "Capability id: token.metadata, chain.snapshot, contract.guard or prediction.evidence.",
                  "type": "string"
                },
                "question": {
                  "description": "Proposition, for prediction.evidence.",
                  "maxLength": 2000,
                  "type": "string"
                }
              },
              "required": [
                "capability"
              ],
              "type": "object"
            }
          },
          {
            "name": "tereno_receipt",
            "title": "Verify a Tereno receipt",
            "description": "Free. Look up what a settled invocation actually charged: capability, version, cache tier, list price, credit applied, price paid and whether it settled on chain. Use it to check that a call you or another agent paid for was billed the way it was quoted.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "invocationId": {
                  "description": "Invocation id from a receiptUrl.",
                  "maxLength": 64,
                  "type": "string"
                }
              },
              "required": [
                "invocationId"
              ],
              "type": "object"
            }
          },
          {
            "name": "tereno_evidence_reference",
            "title": "Read a portable Tereno evidence reference",
            "description": "Free. Resolve an artifactId another agent handed you: producer, validity window and the exact normalized input needed to reproduce it. Supply a stable opaque installationId to participate in the cross-agent reference experiment; it is hashed, deduplicated daily and never creates payment or credit.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "artifactId": {
                  "description": "Public Tereno artifact id received from another agent.",
                  "pattern": "^sha256:[a-f0-9]{64}$",
                  "type": "string"
                },
                "channel": {
                  "description": "Optional lowercase channel label, e.g. mcp or dex-bot.",
                  "maxLength": 64,
                  "type": "string"
                },
                "installationId": {
                  "description": "Stable opaque id for this receiving installation; do not use a wallet or secret.",
                  "maxLength": 128,
                  "minLength": 16,
                  "type": "string"
                }
              },
              "required": [
                "artifactId"
              ],
              "type": "object"
            }
          },
          {
            "name": "tereno_publish",
            "title": "Publish work you already computed, and get it attested on-chain",
            "description": "Free, no payment and no gas. Submit a contract bytecode fingerprint you computed yourself. Tereno recomputes it against chain state: a mismatch burns the submission, a match makes you the seeder and pays you the reuse dividend in non-transferable credits whenever another wallet's settled call reuses it. Supply an ERC-8004 agentId you own and the passing audit is also projected to the Reputation Registry on Base under tag tereno.audit. No agentId yet? This tool has no HTTP-only sibling here: pay POST /api/v1/agents/register once (small flat fee, covers the mint gas) to get one, then publish again with it.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "address": {
                  "description": "Base contract address the fingerprint is for.",
                  "pattern": "^0x[a-fA-F0-9]{40}$",
                  "type": "string"
                },
                "agentId": {
                  "description": "Optional ERC-8004 agentId you own, as a decimal string. Ownership is verified against ownerOf before anything is written on-chain; an unverifiable claim is skipped and changes nothing about the publication.",
                  "maxLength": 78,
                  "type": "string"
                },
                "bytecodeBytes": {
                  "description": "Length of the deployed bytecode in bytes. Must be 0 exactly when bytecodeHash is omitted.",
                  "type": "number"
                },
                "bytecodeHash": {
                  "description": "keccak256 of the deployed bytecode you read. Omit only for an address with no code.",
                  "pattern": "^0x[0-9a-f]{64}$",
                  "type": "string"
                },
                "computedAtBlock": {
                  "description": "Block number you read the bytecode at.",
                  "type": "number"
                },
                "registerIfMissing": {
                  "description": "Explicit consent to be attested via a Tereno-delegated identity you already paid POST /api/v1/agents/register for. Bind it by signing \u003ccontract-address\u003e:erc8004-register as the resource. Does not itself trigger a mint — it only unlocks reuse of one you hold.",
                  "type": "boolean"
                },
                "wallet": {
                  "description": "Your Base wallet. Becomes the seeder and earns the reuse dividend.",
                  "pattern": "^0x[a-fA-F0-9]{40}$",
                  "type": "string"
                }
              },
              "required": [
                "wallet",
                "address",
                "computedAtBlock"
              ],
              "type": "object"
            }
          },
          {
            "name": "token_metadata",
            "title": "What token is this?",
            "description": "What token is this? Read a Base token's name, symbol, decimals and total supply as one typed, cache-shared answer with block-level freshness. Paid per call with x402 on Base: $0.01 to $0.03 USDC depending on how much of the answer the network already has. Shared: reusing an answer another agent already paid for costs less, and the wallet that produced it earns a bounded credit.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "address": {
                  "description": "Base token contract address to read name, symbol, decimals and total supply from.",
                  "pattern": "^0x[a-fA-F0-9]{40}$",
                  "type": "string"
                }
              },
              "required": [
                "address"
              ],
              "type": "object"
            }
          },
          {
            "name": "chain_snapshot",
            "title": "What is the current state of Base?",
            "description": "What is the current state of Base? Latest block number, timestamp, base fee and suggested gas fees in a single cheap call — no parameters required. Paid per call with x402 on Base: $0.002 to $0.005 USDC depending on how much of the answer the network already has. Shared: reusing an answer another agent already paid for costs less, and the wallet that produced it earns a bounded credit.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "contract_guard",
            "title": "Is this Base contract safe to interact with?",
            "description": "Is this Base contract safe to interact with? Check whether an address is executable code, detect common proxy and pause signals, and return a bounded action verdict. Paid per call with x402 on Base: $0.02 to $0.1 USDC depending on how much of the answer the network already has. Shared: reusing an answer another agent already paid for costs less, and the wallet that produced it earns a bounded credit.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "address": {
                  "description": "Base contract address to check.",
                  "pattern": "^0x[a-fA-F0-9]{40}$",
                  "type": "string"
                }
              },
              "required": [
                "address"
              ],
              "type": "object"
            }
          },
          {
            "name": "prediction_evidence",
            "title": "Gather sourced machine-readable evidence supporting or contradicting a prediction market proposition",
            "description": "Returns current, sourced and machine-readable evidence supporting or contradicting a prediction-market proposition. Paid per call with x402 on Base: $0.01 to $0.05 USDC depending on how much of the answer the network already has. Shared: reusing an answer another agent already paid for costs less, and the wallet that produced it earns a bounded credit.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "context": {
                  "description": "Optional contextual metadata.",
                  "type": "object"
                },
                "market": {
                  "description": "Market venue identifier (e.g. polymarket, omen, kalshi). Defaults to polymarket.",
                  "type": "string"
                },
                "marketUrl": {
                  "description": "Optional market URL for resolution rules extraction.",
                  "type": "string"
                },
                "question": {
                  "description": "Prediction market question or proposition.",
                  "maxLength": 2000,
                  "minLength": 5,
                  "type": "string"
                }
              },
              "required": [
                "question"
              ],
              "type": "object"
            }
          },
          {
            "name": "demand_pledge",
            "title": "Declare a capability you would pay for",
            "description": "Free market-signal pledge. It earns no credit now; a bounded non-transferable credit is released only if this same wallet later settles the named capability after it exists.",
            "inputSchema": {
              "additionalProperties": false,
              "properties": {
                "capability": {
                  "description": "2-64 character capability id, e.g. wallet-scam-classification.",
                  "type": "string"
                },
                "wallet": {
                  "description": "Your Base wallet; must later be the x402 payer.",
                  "type": "string"
                }
              },
              "required": [
                "wallet",
                "capability"
              ],
              "type": "object"
            }
          }
        ]
      },
      "name": "Tereno on Base",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "tereno-mcp",
          "version": "0.1.3",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tereno.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 45
      },
      "registryName": "xyz.tereno/tereno",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://www.tereno.xyz/api/mcp"
        }
      ],
      "repository": "https://github.com/tereno-xyz/tereno-mcp",
      "reviewed": false,
      "slug": "tereno",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=xyz.tereno/tereno",
      "summary": "Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.",
      "updatedAt": "2026-08-05T12:09:22Z",
      "url": "https://www.anchorterminal.com/tools/tereno",
      "vendor": "tereno.xyz",
      "vendorUrl": "https://www.tereno.xyz",
      "version": "0.1.3",
      "websiteUrl": "https://www.tereno.xyz",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/tereno",
    "json": "https://www.anchorterminal.com/tools/tereno.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/tereno.md",
    "slim": "https://www.anchorterminal.com/tools/tereno.min.md"
  },
  "markdown": "# Tereno on Base\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by tereno.xyz (https://www.tereno.xyz)\n- Category: Payment \u0026 monetisation platforms (https://www.anchorterminal.com/categories/payment-platforms.md)\n- Listed because: It's published in the registry under tereno.xyz, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.\n\n## Facts\n\n- MCP registry: `xyz.tereno/tereno` 0.1.3\n- Endpoint: https://www.tereno.xyz/api/mcp (streamable HTTP)\n- Package: npm `tereno-mcp` (stdio)\n- Source: https://github.com/tereno-xyz/tereno-mcp\n- Website: https://www.tereno.xyz\n- npm downloads a week: 45\n- GitHub stars: 0\n- Registry entry updated: 2026-08-05\n\n## Tools\n\n- Tools it lists (10, about 2,093 tokens of context, `tools/list` without credentials, checked 2026-10-04 22:26 UTC):\n  - `tereno_catalog`: Free. The full capability catalog: what each one answers, its price tiers in USDC on Base, how long an answer stays valid, and whether it is shared or private.…\n  - `tereno_price`: Free. Indicative price and reuse tier for one specific input, without binding a quote or revealing a wallet. Returns hit when another agent already paid to…\n  - `tereno_receipt`: Free. Look up what a settled invocation actually charged: capability, version, cache tier, list price, credit applied, price paid and whether it settled on…\n  - `tereno_evidence_reference`: Free. Resolve an artifactId another agent handed you: producer, validity window and the exact normalized input needed to reproduce it. Supply a stable opaque…\n  - `tereno_publish`: Free, no payment and no gas. Submit a contract bytecode fingerprint you computed yourself. Tereno recomputes it against chain state: a mismatch burns the…\n  - `token_metadata`: What token is this? Read a Base token's name, symbol, decimals and total supply as one typed, cache-shared answer with block-level freshness. Paid per call…\n  - `chain_snapshot`: What is the current state of Base? Latest block number, timestamp, base fee and suggested gas fees in a single cheap call — no parameters required. Paid per…\n  - `contract_guard`: Is this Base contract safe to interact with? Check whether an address is executable code, detect common proxy and pause signals, and return a bounded action…\n  - `prediction_evidence`: Returns current, sourced and machine-readable evidence supporting or contradicting a prediction-market proposition. Paid per call with x402 on Base: $0.01 to…\n  - `demand_pledge`: Free market-signal pledge. It earns no credit now; a bounded non-transferable credit is released only if this same wallet later settles the named capability…\n- How its tools read to an agent (0 errors, 11 warnings, 1 note, about 2,093 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC13 prediction_evidence: context (object with no properties)\n  - warn TC16 chain_snapshot: no readOnlyHint or destructiveHint\n  - warn TC16 contract_guard: no readOnlyHint or destructiveHint\n  - warn TC16 demand_pledge: no readOnlyHint or destructiveHint\n  - warn TC16 prediction_evidence: no readOnlyHint or destructiveHint\n  - warn TC16 tereno_catalog: no readOnlyHint or destructiveHint\n  - warn TC16 tereno_evidence_reference: no readOnlyHint or destructiveHint\n  - warn TC16 tereno_price: no readOnlyHint or destructiveHint\n  - warn TC16 tereno_publish: no readOnlyHint or destructiveHint\n  - warn TC16 tereno_receipt: no readOnlyHint or destructiveHint\n  - warn TC16 token_metadata: no readOnlyHint or destructiveHint\n  - note TC24 server: 10 of 10 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/tereno.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "Tereno on Base",
        "url": ""
      }
    ],
    "description": "Tereno on Base, an MCP server by tereno.xyz, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "Tereno on Base",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/tereno",
    "published": "",
    "section": "indexed",
    "title": "Tereno on Base: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/tereno"
  },
  "tokens": {
    "markdown": 1200,
    "slim": 1130
  },
  "version": 1
}
