coldread@0.1.6
VERIFIED· install onlyPublisher claims: "Enables users to run read-only trust checks on an x402 endpoint and receive a signed report covering endpoint lint, signed offers, ERC-8004 identity, and payer mix before paying." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
- no credential variables read in the code
- Where it talks to
- no vendor host named in the codeAlso workers.dev, publicnode.com, quantx402.app, spawnxchange.com, mart402.com, toll402.dev, minia2a.uk, onrender.com, ottoai.services, x402tap.com, seller.example, drpc.org, base.org, optimism.io, arbitrum.io, avax.network, gnosischain.com, celo.org, linea.build, scroll.io, ipfs.io, cloudflare-dns.com, x402scan.com, agent.example — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- use of the skill by an agent
Connect it under the guard. Nothing executable in the bundle ran; the trace covers the install step only. The code names no credential variable; the guard pins the network to what the honeypot saw and logs every call.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-13 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
const why = declared === "POST" ? "the bazaar extension declares method POST" : ops?.has("get") && ops?.has("post") ? "openapi.json documents GET and POST as separate operations on this path" : null;Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const tampered = { ...env, report: { ...env.report, overall: "red_flags" } };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…//a/b" }, { url: "http://127.0.0.1/x" }, { url: "http://localhost/x" }, { url: "http://169.254.169.254/latest" }, { url: "http://[::1]/" }, { url: "https://a.example/x", method: "PUT…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…line") ? "--online" : undefined; const USAGE = "usage: node verify.mjs <report.json | report URL> [--online] [--live [--warn-only] [--timeout <ms>]]\nexit codes: 0 valid (and, with --live, fresh); 1 bad or unpublished signature, or tampere…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…agent")), t: tool, v: report.overall, h: report.subject.host }); return { ...env, stored: st.stored, ...(st.reason ? { stored_note: st.reason } : {}), ...(st.st…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.app.get("/mcp", (c) => c.json({ error: "method_not_allowed", detail: "POST JSON-RPC to /mcp (stateless Streamable HTTP)" }, 405));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.writeFileSync(join(dir, "b.json"), JSON.stringify({ ...env, report: { ...env.report, x: 1 } }));Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if (!has(llms)) f.push(F("X011", "info", "No /llms.txt: agents reading docs have nothing to learn price, inputs and limits from.", undefined, "/llms.txt"));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…: string) { return { $schema: "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json", name: "io.github.something-agent/coldread", version: VERSION, title: "ColdRead", description: "Independent signed pre-payment check for…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.expect((await (await req("/openapi.json")).json() as any).paths["/v1/check"].post.operationId).toBe("coldread_check");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.CLOUDFLARE_API_TOKEN="$(cat ../secrets/cloudflare-token.txt)" CLOUDFLARE_ACCOUNT_ID=e69789e19bc46a76e0f5f34e51585e49 exec npx wrangler "$@"Fix: Pin versions and sources; vendor anything fetched at install time.const s = await req("/v1/check", { method: "POST", body: JSON.stringify({ url: "http://10.1.2.3/admin" }) });Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.const forged = { ...env, signature: { ...env.signature, public_key: KEYS.keys[0].public_key } };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.