Tereno on Base

xyz.terenoPublished by tereno.xyzOfficial publisherv0.1.3Updated Oct 24, 2026

Check a Base contract, transaction or web page before you act. Free pricing, paid per call in USDC.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinanceSecurity & Monitoring

Overview

AI-generated overview

Tereno on Base gives an assistant free price and receipt lookups plus paid, per-call USDC answers about Base tokens, contracts and chain state.

What you can do
Inspect the capability catalog, get an indicative price and reuse tier for a specific call, and look up what a settled call actually charged, all free and without a wallet. Read Base token metadata, current block, base fee and suggested gas, and check whether a contract is executable code with proxy or pause signals. Resolve an artifact ID from another agent to its producer, validity window and reproduction input, and submit a contract bytecode fingerprint to become a seeder. Record a free demand pledge for a capability you would pay for later.
When to use it
Use it when an assistant needs verifiable, freshness-bounded answers about Base tokens, contracts or chain state before signing or interacting, and when you want to see prices and reuse tiers before paying. The free catalog, price and receipt tools are useful even without any payment setup.
Requirements
Runs as a local npm package via npx, or as a remote endpoint at the hosted URL for clients that support remote MCP. Paid tools settle per call in USDC on Base through x402; over stdio you pay by signing the challenge and requesting the resource URL over HTTP, since stdio cannot carry a payment signature back. Optional environment variables: TERENO_WALLET, TERENO_BASE_URL, TERENO_TIMEOUT_MS, TERENO_EVIDENCE_INSTALLATION_ID.
Before you install
Paid tools spend real USDC per call on Base, so set a budget and check tereno_price first. The package itself never reads or stores a private key, but paying requires an x402 client that signs with your wallet. Publishing a bytecode fingerprint is free and gasless but is recomputed against chain state and burned on mismatch. Discovery, scoring, pricing and the global cache live in a closed backend, and answers are shared across agents except transaction intent checks.

Installation

In SourceWeft

  1. Open Tereno on Base in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/xyz.tereno%2Ftereno/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tereno-on-base": {
      "type": "http",
      "url": "https://www.tereno.xyz/api/mcp"
    }
  }
}

README

[Tereno]

tereno-mcp

🛡️ Check before you act — an MCP server for Base, over x402

Ask what it costs before you pay for it. Free catalog, pricing and receipt tools work with no wallet and no signup; paid answers settle per call in USDC, and reusing an answer another agent already paid for costs less.


[npm version] [MCP] [Base] [x402]

[license] [no dependencies] [free tier]

bash
npx -y tereno-mcp

⚡ Why this exists

An agent that reads a contract, signs a transaction or scrapes a page is acting on information it cannot verify. Most tools answer what something is. None of them tell you how long that answer stays true.

tereno-mcp puts Tereno inside any MCP client. Every paid answer comes back with the evidence behind it, the limits of that evidence, and the block it stops being valid at.

  • No API key, no signup. The agent's wallet is the identity.
  • Price before payment. tereno_price tells you the cost and whether the answer already exists, without a wallet and without committing to anything.
  • Cheaper when shared. Deterministic answers are reused across agents: the first caller pays to compute, everyone after pays the reuse price.

🚀 Install

Add it to any MCP client — Claude Desktop, Claude Code, Cursor, Cline, Windsurf:

json
{  "mcpServers": {    "tereno": {      "command": "npx",      "args": ["-y", "tereno-mcp"]    }  }}

Restart the client. Nothing else to configure — the free tools work immediately.

🆓 Free, no wallet needed

ToolThe question it answers
📖 tereno_catalogWhat can Tereno answer, what does it cost, how long does each answer stay valid?
🏷️ tereno_priceWhat would this exact call cost right now — and does the answer already exist?
🧾 tereno_receiptWhat did a settled call actually charge: tier, list price, credit applied, price paid?

tereno_price is the one worth knowing about. It names the reuse tier out loud:

hit      another agent already paid to compute this and it is still freshpartial  the durable half survived; only the expired part is recomputedmiss     nothing to reuse — this call computes it, and the next asker pays less

💳 Paid per call

ToolPriceThe question it answers
🚦 transaction_intent_guard$0.005Is this safe to sign? Simulation, gas, balance and allowance deltas, unlimited-approval flags
🛡️ contract_guard$0.001–3Is this contract safe to interact with? (code, proxy, pause)
🕵️ contract_change$0.001–2Did it change since last look? (rug-pull-after-audit detector)
🪙 token_metadata$0.001–3What token is this, really? (name, symbol, decimals, supply)
🧬 contract_interface$0.001–2ERC-20? NFT? Proxy? One bounded probe
⛽ chain_snapshot$0.001–2Latest Base block, base fee and suggested gas, zero parameters
📄 web_compile$0.001–5Public URL → bounded Markdown with resolved links, citations and a reusable artifact
🔎 evidence_artifact$0.001–3Can this public artifact be reused? Provenance, field validity, recomputation input
🤝 demand_pledgefreeName a capability you would pay for. Credit only after the same wallet pays for it later

Calling a paid tool returns a 402 carrying the payment challenge in error.data.paymentRequired, the payable resource URL in error.data.resource, and the terms (network, asset, amount, payTo) in error.data.offer.

Over stdio you cannot pay by retrying the tool call. stdio has no headers in either direction, so there is nowhere for a PAYMENT-SIGNATURE to travel back through. Two ways to settle, both of which leave this package never touching a private key:

  • Pay the resource over HTTP. Sign error.data.paymentRequired with your x402 client and send the signed request to error.data.resource. It returns the same payload the tool would have, receipt included, billed once.
  • Use the remote server instead of this package. If your client supports remote MCP, point it at https://www.tereno.xyz/api/mcp. That transport does have headers, so signing the challenge and retrying the same tool call is the normal flow and everything stays inside MCP.

🔒 transaction_intent_guard is never cached, shared or resold. An unsigned transaction is intent, and it stays with the wallet that paid for it.

⚙️ Configuration

EnvDefaultPurpose
TERENO_WALLET—Base address announced before payment, so a challenge can be bound to the wallet that will settle it. Optional.
TERENO_BASE_URLhttps://www.tereno.xyzPoint at another Tereno deployment.
TERENO_TIMEOUT_MS45000Upstream request timeout.
TERENO_EVIDENCE_INSTALLATION_ID—Optional stable random id for this MCP installation. It is hashed only when resolving evidence received from another agent; never use a wallet or secret.

🔐 What this package does and does not do

It is a stdio transport in front of the hosted endpoint at /api/mcp. Messages are forwarded verbatim, so the tool list, the prices and the payment challenge all come from the same place an HTTP agent sees — and this package needs no release when a capability changes.

The one thing it translates is payment, and the translation is lossy in one direction. Over HTTP the challenge arrives in a response header and the caller retries with a PAYMENT-SIGNATURE header. stdio has neither, so the challenge is folded into the JSON-RPC error payload where a client can still reach it, while the signature has no way back in. That is why a paid call is settled against the resource URL rather than by retrying the tool, and why a client that speaks remote MCP should prefer the hosted endpoint.

No private key is ever read, stored or transmitted. There are no dependencies, and the whole thing is one readable file — read it before you let it run on your machine.

If your client supports remote MCP servers, skip this package and point it straight at https://www.tereno.xyz/api/mcp.

🌱 How it stays cheap — the cooperative layer

Tereno is a shared-cache coordination layer, not just an API. The first agent to pay for a given piece of verified work seeds it for the whole network; every later agent that reuses that answer pays less, and the seeder earns a small, non-transferable credit that discounts its own future calls.

Safety is a public good with a private cost. By making the first computation earn from every reuse, the network turns "I paid to check this contract" into "I lowered the price of checking it for everyone, and my own checks got cheaper."

The honest fine print: rewards are non-transferable credits, capped per artifact. They fund your agent's budget, they are not yield.

Discovery, scoring, reputation, pricing and the global cache live in the closed Tereno backend. This server and its SDK (tereno-client) are the public, open interface to it.

🤝 Support & community

🔗 Links

Live catalog · OpenAPI · MCP registry entry · plugin-tereno for ElizaOS · tereno-client SDK


tereno.xyz · Verdicts before signatures, for agents on Base.

Source: README.md at commit bda500c

Tools

10

tereno_catalog

What can Tereno answer, and what does it cost?

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.

Takes no parameters.

tereno_price

What would this call cost right now?

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.

Parametersaddressquestioncapabilityrequired

tereno_receipt

Verify a 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 chain. Use it to check that a call you or another agent paid for was billed the way it was quoted.

ParametersinvocationIdrequired

tereno_evidence_reference

Read a portable 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 installationId to participate in the cross-agent reference experiment; it is hashed, deduplicated daily and never creates payment or credit.

ParameterschannelartifactIdrequiredinstallationId

tereno_publish

Publish work you already computed, and get it attested on-chain

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.

ParameterswalletrequiredaddressrequiredagentIdbytecodeHashbytecodeBytescomputedAtBlockrequiredregisterIfMissing

token_metadata

What token is this?

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.

Parametersaddressrequired

chain_snapshot

What is the current state of Base?

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.

Takes no parameters.

contract_guard

Is this Base contract safe to interact with?

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.

Parametersaddressrequired

prediction_evidence

Gather sourced machine-readable evidence supporting or contradicting a prediction market proposition

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.

ParametersmarketcontextquestionrequiredmarketUrl

demand_pledge

Declare a capability you would pay for

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.

Parameterswalletrequiredcapabilityrequired

Version history

1
  1. v0.1.3LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts