twzrd-x402-gateBLOCK
TWZRD buyer-side x402 trust packages: x402 trust gate, elizaOS trust plugin, and the agent-intel client. Vet a counterparty before you pay.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Don't let your agent sign blind. Pre-spend trust for agents that buy: the x402 service they are about to pay (Solana, and Base) and the product listing they are about to buy from.
- x402 services: vet the seller before USDC leaves the wallet, cap and ledger every spend, and bind each settled payment to the exact offer it paid for (bind-v1 — verifiable from public chain data). Advisory preflight is free ($0). The paid
quickCheckis $0.001 (seller wash risk, tier and score; no receipt). Separately, the gate can issue a portabletwzrd.payment_decision.v1record from its own decision, signed locally with your own signer. - Product listings: a free check of a store product URL and its asking price against a card TWZRD published from the store's public pages. The card is an observer card, not a merchant attestation, and a match is never permission to spend (details).
Not a wallet. Not a payment network. The commerce walkthrough lives in docs/COMMERCE-KIT.md.
Canonical skill (always refresh) • https://intel.twzrd.xyz/skill.md (skill twzrd-trust; the live copy carries its version) · ClawHub `twzrd-trust` Spend-control SDK (npm) • `[email protected]` + seat `[email protected]` Live MCP • https://intel.twzrd.xyz/mcp (streamable HTTP; free tools for x402 service checks and product-listing checks) Shopping check • free check_listing on the hosted MCP · report: https://twzrd.xyz/shopping-check/vuori-kore/ Agent contract • https://intel.twzrd.xyz/llms.txt · https://intel.twzrd.xyz/.well-known/agent.json
60-second deterministic free demo
Run this one-line command with no wallet, no API key, and no configuration:
curl -fsS https://intel.twzrd.xyz/v1/intel/demo-gate | jq '{verdict: (.steps[8fe63071e452OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add twzrd-x402-gate --env SVM_KEYPAIR_PATH=${SVM_KEYPAIR_PATH} --env TWZRD_RECEIPT_PUBKEY=${TWZRD_RECEIPT_PUBKEY} --env TWZRD_WALLET_SECRET_KEY=${TWZRD_WALLET_SECRET_KEY} -- npx -y [email protected]{
"mcpServers": {
"twzrd-x402-gate": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SVM_KEYPAIR_PATH": "${SVM_KEYPAIR_PATH}",
"TWZRD_RECEIPT_PUBKEY": "${TWZRD_RECEIPT_PUBKEY}",
"TWZRD_WALLET_SECRET_KEY": "${TWZRD_WALLET_SECRET_KEY}"
}
}
}
}Exposed tools (8)
6 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
TWZRD_TRUST_GATE | read | Buyer-side x402 trust check: scores the counterparty seller wallet via the free TWZRD |
full_trust | write | PAID $0.05 (auto-pay, Solana x402): full trust intel + signed V6 receipt. |
merchant_card | read | FREE: seller graph card for a payTo wallet or resource id. wash_flagged=true -> do not pay (locked buyer sequence step 2). No payment. |
preflight | read | FREE pre-payment check. readiness_card with allow/warn/block + trust_score. No payment. |
quick_trust | write | PAID $0.001 (auto-pay, Solana x402): quick tier+score for a Solana wallet. |
twzrd-trustgate | read | Buyer-side x402 trust gate. Scores a seller via free TWZRD preflight (ReadinessCard) before |
verify_receipt | read | FREE: independently verify a wallet |
wallet_lookup | read | FREE: facilitators + counterparty breadth for a Solana wallet. |
Trust audit
BLOCKgrade F · trust 56/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (5 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
exec(): Promise<{const TOKEN = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
["pem_block", { note: "-----BEGIN PRIVATE KEY-----\nMIIB\n-----END PRIVATE KEY-----" }],private_key: "-----BEGIN PRIVATE KEY-----",
const pem = verify({ ...base, note: "-----BEGIN PRIVATE KEY-----\nMIIB\n-----END PRIVATE KEY-----" });["bearer_token", { h: "Bearer sk_live_abcdefghijklmnop" }],authorization: "Bearer sk_live_abcdefghijklmnop",
const something = scrubForEvidence({ outer: { apiKey: "x", note: "/home/someone/.ssh/id" } });assert.equal(verifyEvidenceBundle({ ...full, leaked: "/home/alice/.ssh/id_ed25519" }).ok, false);import { installTwzrdAutoGate } from "../../../twzrd-x402-gate/dist/index.js";const SRC = fileURLToPath(new URL("../../src", import.meta.url));import { checkTrust } from "../../plugin-trustgate/src/gate.js";import { createOnBeforeSettleHook } from "../../plugin-trustgate/src/facilitator.js";} from "../../src/cold-start.js";
# Not pull_request-triggered -- that is how CI publish tokens get exfiltrated.
# is the standard way CI publish tokens get exfiltrated. Manual button-press
"https://169.254.169.254/latest/meta-data",
"169.254.169.254",
assert.equal(await hasForbiddenResolution("https://169.254.169.254/latest/meta-data", resolve), true);assert.equal(await hasForbiddenResolution("https://metadata.google.internal/", resolve), true);baseUrl = `http://127.0.0.1:${addr.port}`;base: `http://127.0.0.1:${port}`,const origin = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;const origin = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;intelBase: "https://127.0.0.1:1",
Gates applied: no_behavioural_pass.
8fe63071e452full audit observations/trust-audit/mcp-server/twzrd-sol__twzrd-trust.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 8fe63071e452 | BLOCK | F | 56 | first audit |
Questions
What is the twzrd-x402-gate MCP server?
TWZRD buyer-side x402 trust packages: x402 trust gate, elizaOS trust plugin, and the agent-intel client. Vet a counterparty before you pay.
What tools does twzrd-x402-gate expose?
8 in total: 6 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is twzrd-x402-gate safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (56/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What credentials does twzrd-x402-gate need?
It reads SVM_KEYPAIR_PATH, TWZRD_RECEIPT_PUBKEY and TWZRD_WALLET_SECRET_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does twzrd-x402-gate run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as twzrd-x402-gate at 0.12.0.
How current is this page?
The grade is for one exact copy of the source (8fe63071e452), read on 2026-10-12. The repository is watched and re-audited when it changes.