NEMO x402 Micro-Services
34 paid tools: site/SEO, weather, crypto+markets, podcasts, YouTube, Polymarket. x402/MPP/Stripe.
Beschreibung vom Entwickler (englisches Original)
Smart-contract risk reports for AI agents on 20 EVM chains, paid per call via x402 ($0.02 USDC).
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://x402.magneta.finance/mcpFühre das in deinem Terminal aus
claude mcp add --transport http magneta-contract-risk https://x402.magneta.finance/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"magneta-contract-risk": {
"url": "https://x402.magneta.finance/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"magneta-contract-risk": {
"type": "http",
"url": "https://x402.magneta.finance/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://x402.magneta.finance/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 7. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
contract_risk_summaryAnalyze a deployed smart contract and return a deterministic risk report: 0-100 score with level (low/medium/high/critical), proxy/upgradeability, owner and pause state, risky selectors found in the bytecode (mint, blacklist, fee/tax setters, pause, upgrade), SELFDESTRUCT/DELEGAT
contract_quick_flagsFree, no payment: bytecode-only preview of a deployed smart contract. Covers proxy/upgradeability, ERC-20 probe (name, symbol, owner, paused), risky selectors found in the bytecode (mint, blacklist, fee/tax setters, pause, upgrade), SELFDESTRUCT/DELEGATECALL opcodes, and a partia
supported_chainsList the EVM chains contract_risk_summary can analyze, as { chainId, name, testnet } objects. Free, read-only, no payment and no parameters. Call it when you need to map a chain name to its id or to check coverage before paying for a report.
scoring_rubricReturn the exact rubric behind contract_risk_summary scores: points per flag, the level thresholds and what each flag means. Free, read-only, no parameters. Call it to explain a score to a user or to decide your own threshold before acting on a report.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto Bosacks bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Antwort in 364 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 4 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.1) kam vor 21 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: NEMO x402 Micro-Services, Crypto Derivatives Data: Perp Funding Rates, Open Interest, Basis, IV, Agent Data Tools: Prices and DeFi
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
34 paid tools: site/SEO, weather, crypto+markets, podcasts, YouTube, Polymarket. x402/MPP/Stripe.
Perp funding rates, open interest, futures basis, IV, liquidations, order books on 8 exchanges
50 tools: token prices, wallet and contract risk, liquidity pools, FX. 25 free calls.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A small production-oriented service that sells an on-chain smart-contract risk report to AI agents, paid per call with x402 micropayments (USDC, EIP-3009 exact scheme). One express process, two paid surfaces:
| Surface | Route | Price |
|---|---|---|
| HTTP | GET /v1/risk/:chainId/:address | $0.01 |
| MCP (Streamable HTTP, stateless) | POST /mcp, tool contract_risk_summary(chainId, address) | $0.01 |
| MCP | tool supported_chains | free |
| Health | GET /health | free |
| OpenAPI | GET /openapi.json | free |
Both paid surfaces call the same analyzeContract(chainId, address) in src/risk/analyze.ts. The analysis is deterministic and uses public data only (RPC, Blockscout, Sourcify, a local aderyn binary). No LLM, no API key for analysis. Unknown chain or malformed address returns 400 *before* any payment is requested. If the analysis itself fails (not a contract, upstream error, timeout) the response is an error status and the buyer is not charged (x402 only settles successful responses).
Supported chains (v1, src/chains.ts): Base 8453, Base Sepolia 84532, Ethereum 1, Arbitrum One 42161. Override RPCs with RPC_URL_ .
{ chainId, address, analyzedAt, isContract, bytecodeSize, proxy, erc20, opcodes, selectors: { found },
blockscout, sourcify?, aderyn, score, level, flags, notes }
proxy: { type, implementation, admin? } from EIP-1967 (implementation/admin/beacon), legacy zeppelinos slot, EIP-1822, EIP-1167 clones, or Blockscout's detection. The implementation bytecode is analysed too.erc20: name, symbol, decimals, totalSupply, owner() (and whether it is the zero address), paused(). Each probe is individually try/catch.opcodes: SELFDESTRUCT / DELEGATECALL presence from a real opcode walk that skips PUSH data (no substring matching).selectors.found: risky signatures (mint, pause, blacklist, fee/tax setters, upgrade, ownership...) whose 4-byte selector appears as a PUSH4 in the bytecode. Heuristic: presence is not proof of reachability (also stated in notes).blockscout / sourcify: verification status, compiler, contract name, creator and creation tx. Blockscout has a 5 s timeout; on failure blockscout: { available: false }. Sourcify is only queried as a fallback when Blockscout is unreachable or reports "unverified". For proxies, the implementation's verification is what counts.aderyn: when verified Solidity source is available, sources are written to a temp dir (sanitised paths) and aderyn runs with a 15 s timeout: { ran, counts: { high, low }, top: [{ title, severity, instances }] }, else { ran: false, reason }. It never fails the request.src/risk/score.ts)Score 0..100, higher = riskier, additive, capped at 100.
| Points | Condition |
|---|---|
| +25 | logic contract source not verified (Blockscout, then Sourcify) |
| +0 (flagged) | verification unknown because every provider was unreachable |
| +15 | proxy / upgradeable |
| +10 | owner() exists and is not the zero address |
| +15 | mint selector |
| +15 | blacklist / bot-list selector |
| +10 | fee / tax / limit / trading-switch setters |
| +5 (+5 if currently paused) | pause selector |
| +10 | SELFDESTRUCT opcode |
| +5 each, max +20 | aderyn high-severity findings |
Level: 0-24 low, 25-49 medium, 50-74 high, 75-100 critical. A non-contract address is an error, not a score. The score is a triage signal, not an audit.
Mainnets: Ethereum (1), OP Mainnet (10), BNB Smart Chain (56), Gnosis (100), Unichain (130), Polygon (137), Sonic (146), World Chain (480), Mantle (5000), Base (8453), Arbitrum One (42161), Celo (42220), Avalanche C-Chain (43114), Linea (59144), Blast (81457), Scroll (534352). Testnets: Base Sepolia (84532), Sepolia (11155111), OP Sepolia (11155420), Arbitrum Sepolia (421614). Chains without a Blockscout instance (BNB, Sonic, Mantle, Avalanche) rely on Sourcify for verified sources. zkSync Era is excluded on purpose: EraVM bytecode defeats the opcode and selector heuristics. Compiler remappings from Blockscout or Sourcify are written to remappings.txt so aderyn can resolve @openzeppelin/...-style imports.
Machine-readable description: GET /openapi.json (OpenAPI 3.1, free). Error bodies are JSON with an error code.
| Status | error | When | Route | Charged? |
|---|---|---|---|---|
| 400 | unsupported_chain | chainId is not in the supported list (body carries supportedChains) | both | no (answered before the 402 challenge) |
| 400 | invalid_address | address is not 0x + 40 hex characters | both | no (answered before the 402 challenge) |
| 402 | n/a | Payment required: base64 x402 challenge in the PAYMENT-REQUIRED header (USDC, exact scheme) | paid | no, it is the price quote |
| 422 | not_a_contract | the address has no contract code on that chain (EOA) | both | no |
| 429 | rate_limited | more than 30 requests per minute from one IP (retryAfterSeconds, Retry-After header) | free /v1/flags only | n/a (free) |
| 502 | analysis_failed | an upstream data source (RPC, explorer) failed | both | no |
| 504 | timeout | the analysis exceeded its 24 s budget | both | no |
Only a 200 response is settled. Over MCP, the same failures return an isError result with an error message and are not charged.
Buyers pay in USDC on Base (eip155:8453). When SOLANA_PAY_TO is set, the same routes and tools also accept USDC on Solana mainnet (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp), settled by the same Coinbase CDP facilitator, which pays the Solana fees. The Solana receiving address must already own a USDC token account (the SDK does not create it). pnpm buy-once-svm pays one call from a Solana keypair (SVM_PRIVATE_KEY, base58 64-byte secret key).
GET /v1/flags/:chainId/:address and the MCP tool contract_quick_flags return the bytecode-only part of the report (proxy, owner/pause state, risky selectors, opcodes, partial score) with no payment. Rate-limited to 30 requests per minute per IP. Source verification and aderyn findings are only in the paid report.npx skills add Bosacks/magneta-risk-x402 --skill magneta-contract-risk installs skills/magneta-contract-risk/SKILL.md, which teaches an agent when and how to buy a report over HTTP, MCP or a Coinbase Agentic Wallet.@magnetafinance/contract-risk (npm i @magnetafinance/contract-risk @x402/core@2.28.0 @x402/evm@2.28.0 @x402/fetch@2.28.0 viem@2.57.7, source in packages/contract-risk-client) wraps the x402 payment flow in a typed client and ships tool adapters for LangChain.js, the Vercel AI SDK and OpenAI/Anthropic function calling.packages/plugin-elizaos (@magnetafinance/plugin-contract-risk) adds the actions CONTRACT_QUICK_FLAGS (free) and CONTRACT_RISK_REPORT (paid, capped per payment) to an Eliza agent./.well-known/agent-registration.json; scripts/erc8004-register.ts prints the register(string) call for the Base IdentityRegistry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432.pnpm install --ignore-scripts
cp .env.example .env.local # fill PAY_TO, X402_NETWORK, FACILITATOR_URL (+ CDP keys if cdp) pnpm dev # tsx, or: pnpm build && pnpm start pnpm type-check && pnpm test # unit tests, no network pnpm analyze 84532 0x036CbD53842c5426634e7929541eC2318f3dCF7e # free local run, prints the report
Buying (needs a funded buyer key, spend cap $0.01 = the price; never put this key on the server):
BUYER_PRIVATE_KEY=0x... pnpm buy-once # HTTP; prints the report and the PAYMENT-RESPONSE tx hash
BUYER_PRIVATE_KEY=0x... pnpm buy-once-mcp # same through the MCP tool
PUBLIC_URL (https, no trailing slash): advertised as the MCP resource URL for Bazaar discovery. Behind a reverse proxy the server trusts the loopback proxy (trust proxy = loopback) so HTTP resource URLs are advertised as https://; without that, the facilitator rejects discovery with "resource must start with https://".| Var | Meaning |
|---|---|
PORT | listening port (default 3011) |
PAY_TO | receiving address (required) |
X402_NETWORK | CAIP-2 network, default eip155:84532 (Base Sepolia); production: eip155:8453 |
FACILITATOR_URL | cdp (Coinbase CDP facilitator, needs CDP_API_KEY_ID + CDP_API_KEY_SECRET) or an HTTP facilitator URL such as https://x402.org/facilitator (testnet) |
ADERYN_BIN | aderyn 0.6.8 binary, default /home/dominique/bin/aderyn |
RPC_URL_ | optional RPC override per chain |
BUYER_PRIVATE_KEY, TARGET_URL, MCP_URL, CHAIN_ID, ADDRESS | buyer scripts only |
pnpm install --ignore-scripts && pnpm build
rsync -a --exclude node_modules --exclude .env.local --exclude 'scripts/logs' ./ server:/srv/magneta/risk-x402/ # never overwrite the server's .env.local; then pnpm install --prod --ignore-scripts there sudo cp deploy/magneta-risk-x402.service /etc/systemd/system/ && sudo systemctl enable --now magneta-risk-x402
The unit reads /srv/magneta/risk-x402/.env.local. For mainnet set X402_NETWORK=eip155:8453 and FACILITATOR_URL=cdp. Aderyn needs its solc download/cache available to the service user (HOME writable).
Both paid surfaces declare x402 Bazaar discovery metadata with declareDiscoveryExtension from @x402/extensions/bazaar (HTTP route with path-parameter schema and output example; MCP tool with input schema), and the bazaarResourceServerExtension is registered on the resource server. The metadata appears in the PAYMENT-REQUIRED header (extensions.bazaar). Actual cataloguing depends on the facilitator: it indexes resources when it settles a payment, so the listing appears only after the first real paid call through a Bazaar-enabled facilitator (CDP). The public x402.org testnet facilitator is not expected to list it.
Live at https://x402.magneta.finance on Base mainnet (eip155:8453), Coinbase CDP facilitator, $0.01 per call, listed in the x402 Bazaar (route /v1/risk/:chainId/:address). Buyers need USDC on Base and no ETH. The facilitator rejects payments where the payer equals payTo (self_send_not_allowed).
MIT, Copyright (c) 2026 Magneta Finance. See LICENSE.