Capabilities
Each capability answers one question, states how long its answer stays true, and prices itself by whether it had to do the work or could reuse someone else's.
This table is read from the running catalogue every time the page loads, so it cannot drift from what you will actually be charged.
There are four, in two groups. token.metadata, chain.snapshot and contract.guard are onchain evidence: they read Base directly. prediction.evidence is external evidence: it reads public sources off-chain. The difference is what the evidence is about, not how it is bought or verified — the payment, the provenance and the receipt are identical.
| Capability | Answers | Fresh | Reused | Valid for | Sharing |
|---|---|---|---|---|---|
| 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. | $0.03 | $0.01 | 10s | shared |
| 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. | $0.005 | $0.002 | 4s | shared |
| 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 verdict. | $0.10 | $0.02 | 10s | shared |
| prediction.evidence | Returns current, sourced and machine-readable evidence supporting or contradicting a prediction-market proposition. | $0.05 | $0.01 | 30 min | shared |
4 capabilities. Prices in USDC on Base. private means the answer is never cached, reused or resold, because it describes something tied to your own intent.
Calling one
Every capability is invoked the same way, at /api/v1/capabilities/{id}/invoke. Some take query parameters, some take a JSON body; the catalogue entry carries an input example for each, and the OpenAPI spec carries the full schema.
# 1. What will this cost me, specifically? Free, no payment.
curl -s "https://www.tereno.xyz/api/v1/quotes?capability=contract.guard&address=0x4200000000000000000000000000000000000006"
# 2. Ask for it. Unpaid, this answers 402 with the terms.
curl -i "https://www.tereno.xyz/api/v1/capabilities/contract.guard/invoke?address=0x4200000000000000000000000000000000000006"
# 3. Retry with a signed USDC authorization attached.
# Any x402 client does this step for you.Reading an answer
Answers share a shape. Whatever the capability, you get a verdict, the evidence behind it, the limits of what was checked, the block or moment it stops being valid, and a receipt.
verdict—allow,revieworblock. A summary, never a substitute for the evidence under it.limitations— what this answer did not check. Read it before gating anything on the verdict.artifact.expiresAt— when the answer stops being claimed as current.receiptandreceiptUrl— reproducible proof of what was observed and when.evidenceReference— a portable handle another agent can resolve for free.
