Nightshift Labs: link, token & signature pre-checks

dev.workers.nightshift-labs.nightshift-x402Published by nightshift-x402.nightshift-labs.workers.devOfficial publisherv1.0.1Updated Nov 6, 2026

Paid x402 pre-checks for agents: phishing links, Base tokens, EIP-712 permits, calldata, DNS.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinanceSecurity & Monitoring

Overview

AI-generated overview

Paid per-call pre-checks for AI agents: phishing links, domains, Base tokens, transactions, calldata and EIP-712 signatures, plus Base on-chain and web…

What you can do
  • Check links, domains and websites: phishing look-alikes, RDAP age, DNS, email security, security headers, brand kit, page-to-Markdown extraction
  • Screen Base tokens and wallets: token safety and price, balances, portfolio, gas, transaction decoding, ENS/Basenames, OFAC wallet screen
  • Inspect before signing: decode EVM calldata and multicall batches, check EIP-712 permits and Seaport orders for drainer patterns
  • Vet x402 paid endpoints before paying them
When to use it
Useful when an agent handles untrusted input — unknown links, domains, tokens, wallets or signature requests — and needs a quick risk read before acting, or when it needs Base on-chain data and clean page text without running its own node or scraper.
Requirements
Remote streamable HTTP endpoint; no account or API key. Every tool call is paid in USDC on Base via x402 micropayments (about $0.003–$0.01 per call), so the client needs a funded Base wallet and an x402-capable client. Free sample responses are available for preview.
Before you install
Each call spends real USDC on Base, so an agent can incur costs without asking. Payment requires signing with a wallet key held by the client. Checks are heuristic and explicitly not guarantees. Queries about addresses, domains and URLs are sent to a third-party service run by an autonomous AI-agent business.

Installation

In SourceWeft

  1. Open Nightshift Labs: link, token & signature pre-checks 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/dev.workers.nightshift-labs.nightshift-x402%2Fagent-safety/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": {
    "nightshift-labs-link-token-signature-pre": {
      "type": "http",
      "url": "https://nightshift-x402.nightshift-labs.workers.dev/mcp"
    }
  }
}

README

Nightshift x402 API: paid pre-checks for AI agents (USDC on Base)

Pay-per-call HTTP API and remote MCP server for agents. No account or API key: each call is paid with an x402 micropayment ($0.003–$0.01 in USDC on Base). Run by Nightshift Labs, an autonomous AI-agent-run business (the code and docs were written by an AI agent).

  • Base URL: https://nightshift-x402.nightshift-labs.workers.dev (free index at /, /openapi.json, /.well-known/x402, /llms.txt)
  • Remote MCP server (streamable HTTP): https://nightshift-x402.nightshift-labs.workers.dev/mcp — tools are paid per call via x402 (@x402/mcp)
  • Free samples: /samples shows real example responses for every endpoint

Endpoints

RoutePriceWhat it does
GET /v1/base/token-check$0.01Base token safety pre-check: name/symbol/decimals/supply, owner and renounce status, proxy implementation, privileged functions found in bytecode (mint, blackli
GET /v1/base/token-price$0.005Live USD price of any ERC-20 token on Base from on-chain DEX quotes (Uniswap v3 0.05/0.3/1% pools and Aerodrome, against USDC and WETH; WETH converted with Chai
GET /v1/base/balance$0.005Base wallet balances: native ETH and USDC for any address, with the block number they were read at.
GET /v1/base/tx$0.005Decode a Base transaction: status, block time, from/to, ETH value, fee, method selector and every ERC-20 transfer with symbol and human amount
GET /v1/domain/email-check$0.005Domain DNS and email-security check: A/AAAA, NS, MX (incl
GET /v1/evm/decode-calldata$0.005Decode EVM transaction calldata before signing: finds the function signature (signature DB, verified by re-encoding to reject selector collisions), decodes all
POST /v1/evm/typed-data-check$0.01Check an EIP-712 signature request BEFORE signing (the JSON passed to eth_signTypedData_v4): detects ERC-2612 Permit, DAI permit, Uniswap Permit2 (allowance + t
GET /v1/base/gas$0.005Base gas snapshot: gas price, base fee, priority fee, 10-block base-fee trend, ETH/USD (Chainlink) and estimated USD cost of an ETH transfer, ERC-20 transfer, s
GET /v1/ens/resolve$0.005Resolve ENS and Basenames (name.eth, name.base.eth): name → address, or address → primary name with forward verification, plus text records (avatar, description
GET /v1/domain/whois$0.005Domain registration lookup (RDAP, the official WHOIS successor): registration date and age in days, expiry, registrar and its abuse email, EPP status, nameserve
GET /v1/domain/dns$0.003DNS lookup in one call: A, AAAA, CNAME, MX, TXT, NS and CAA records with TTLs (or just the types you ask for), NXDOMAIN status, DNSSEC validation, plus parsed h
GET /v1/web/security-headers$0.005Website security-headers audit: follows redirects (SSRF-guarded) and grades the final page A–F on HSTS, Content-Security-Policy (script-src unsafe-inline/eval/w
GET /v1/base/portfolio$0.01Base wallet portfolio: ETH plus 12 major Base tokens (USDC, USDbC, DAI, EURC, WETH, cbETH, wstETH, cbBTC, AERO, DEGEN, VIRTUAL, BRETT) with non-zero balances, U
GET /v1/x402/preflight$0.005x402 seller preflight: check a paid endpoint BEFORE paying it
GET /v1/wallet/screen$0.005Wallet / counterparty screen before you send funds or accept a payer: OFAC SDN sanctioned-address check (EVM list, refreshed from the 0xB10C OFAC dataset), addr
GET /v1/web/brand$0.01Brand kit from a website: site name, logo candidates (JSON-LD logo, header/home-link image, inline SVG logo, apple-touch-icon/favicons, og:image), theme-color,
GET /v1/web/link-check$0.01Link / URL phishing pre-check before an agent opens, clicks or forwards a link: brand look-alikes (typosquats, homoglyphs, brand in subdomain), punycode and mix
GET /v1/web/extract$0.005Fetch any public web page and return clean Markdown of the main content plus title, meta description, word count and absolute links

Use it

Any x402 client works. TypeScript with the official SDK:

js
import { x402Client, x402HTTPClient } from "@x402/core/client";import { registerExactEvmScheme } from "@x402/evm/exact/client";import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.AGENT_KEY) });const http = new x402HTTPClient(client);
const url = "https://nightshift-x402.nightshift-labs.workers.dev/v1/base/gas";const r1 = await fetch(url);                                   // 402 + payment requirementsconst req = http.getPaymentRequiredResponse(n => r1.headers.get(n), await r1.json());const headers = http.encodePaymentSignatureHeader(await http.createPaymentPayload(req));console.log(await (await fetch(url, { headers })).json());       // paid response

The payer only needs USDC on Base (EIP-3009 authorization; the facilitator pays gas).

MCP clients: add the remote server URL above. It is listed in the official MCP Registry as dev.workers.nightshift-labs.nightshift-x402/agent-safety (see mcp-registry/server.json).

Self-host

bash
npm ciPAY_TO=0xYourAddress PORT=8402 node server.mjs          # Node (PayAI facilitator by default)# or Cloudflare Workers: wrangler secret put PAY_TO ; npx wrangler deploy

Optional: CDP_API_KEY_ID / CDP_API_KEY_SECRET (Coinbase CDP facilitator), BASE_RPC_URL (keyed RPC; free public RPCs are used as fallback). Local testing without payments works only on testnet: NETWORK=eip155:84532 TEST_NO_PAY=1.

Code layout: app.mjs (Hono app + route table + x402 middleware), lib.mjs (chain/DNS/web logic, SSRF guard), mcp.mjs (MCP server), preflight.mjs, wallet.mjs, brand.mjs, server.mjs (Node), worker.mjs (Workers).

Limits

Heuristic checks (token risk, phishing, wallet screen) reduce risk but are not guarantees; responses state what was checked. Licence: MIT.

Source: README.md at commit 9118a57

Tools

18

base_token_check

Base token safety pre-check: name/symbol/decimals/supply, owner and renounce status, proxy implementation, privileged functions found in bytecode (mint, blacklist, pause, fee setters, upgrade) and a heuristic risk level. Call before buying or accepting an unknown token on Base. Price: $0.01 USDC on Base per call (x402).

Parametersaddressrequired

base_token_price

Live USD price of any ERC-20 token on Base from on-chain DEX quotes (Uniswap v3 0.05/0.3/1% pools and Aerodrome, against USDC and WETH; WETH converted with Chainlink ETH/USD). Returns the best executable route, every route's price, the price impact of selling $1,000, and flags for thin liquidity or disagreeing pools. Price: $0.005 USDC on Base per call (x402).

Parametersaddressrequired

base_balance

Base wallet balances: native ETH and USDC for any address, with the block number they were read at. Price: $0.005 USDC on Base per call (x402).

Parametersaddressrequired

base_tx

Decode a Base transaction: status, block time, from/to, ETH value, fee, method selector and every ERC-20 transfer with symbol and human amount. Flags fake look-alike tokens (address-poisoning, e.g. a fake USDC with homoglyph characters). Price: $0.005 USDC on Base per call (x402).

Parametershashrequired

domain_email_check

Domain DNS and email-security check: A/AAAA, NS, MX (incl. null MX), SPF, DMARC policy, CAA, plus a list of issues and a 0-100 email security score. Use before sending email to or trusting a domain. Price: $0.005 USDC on Base per call (x402).

Parametersdomainrequired

evm_decode_calldata

Decode EVM transaction calldata before signing: finds the function signature (signature DB, verified by re-encoding to reject selector collisions), decodes all arguments, expands multicall batches, and warns about unlimited token approvals, approve-all-NFTs, permits, ownership changes and upgrades. Works for any EVM chain. Price: $0.005 USDC on Base per call (x402).

Parametersdatarequired

evm_typed_data_check

Check an EIP-712 signature request BEFORE signing (the JSON passed to eth_signTypedData_v4): detects ERC-2612 Permit, DAI permit, Uniswap Permit2 (allowance + transfer) and Seaport orders, explains in one line what the signature grants, and flags drainer patterns: unlimited allowances, spender that is a plain wallet (EOA, checked on Base), zero-payment NFT listings, bulk listings, never-expiring grants. Returns risk (low/medium/high), grants, warnings and the EIP-712 digest. Price: $0.01 USDC on Base per call (x402).

ParameterstypesrequireddomainmessagerequiredprimaryTyperequired

base_gas

Base gas snapshot: gas price, base fee, priority fee, 10-block base-fee trend, ETH/USD (Chainlink) and estimated USD cost of an ETH transfer, ERC-20 transfer, swap and contract deploy right now. Price: $0.005 USDC on Base per call (x402).

ParametersgasLimit

ens_resolve

Resolve ENS and Basenames (name.eth, name.base.eth): name → address, or address → primary name with forward verification, plus text records (avatar, description, url, twitter, github, email). Price: $0.005 USDC on Base per call (x402).

Parametersqrequired

domain_whois

Domain registration lookup (RDAP, the official WHOIS successor): registration date and age in days, expiry, registrar and its abuse email, EPP status, nameservers, DNSSEC, and flags for brand-new (<30 days) or young domains, punycode/IDN names and expiring domains. Use to vet links, senders and counterparties (phishing domains are usually days old). Price: $0.005 USDC on Base per call (x402).

Parametersdomainrequired

domain_dns

DNS lookup in one call: A, AAAA, CNAME, MX, TXT, NS and CAA records with TTLs (or just the types you ask for), NXDOMAIN status, DNSSEC validation, plus parsed hints: SPF record, CAA certificate issuers and which services the domain is verified with (TXT verification tokens). Resolved via DNS-over-HTTPS. Price: $0.003 USDC on Base per call (x402).

Parametersnamerequiredtypes

web_security_headers

Website security-headers audit: follows redirects (SSRF-guarded) and grades the final page A–F on HSTS, Content-Security-Policy (script-src unsafe-inline/eval/wildcards), clickjacking protection, nosniff, Referrer-Policy, Permissions-Policy, COOP, version-leaking Server/X-Powered-By headers and cookie Secure/HttpOnly/SameSite flags. Returns a score, a list of failed checks with severity, and every header value. Price: $0.005 USDC on Base per call (x402).

Parametersurlrequired

base_portfolio

Base wallet portfolio: ETH plus 12 major Base tokens (USDC, USDbC, DAI, EURC, WETH, cbETH, wstETH, cbBTC, AERO, DEGEN, VIRTUAL, BRETT) with non-zero balances, USD values from Chainlink ETH/USD and BTC/USD feeds, and a total. Price: $0.01 USDC on Base per call (x402).

Parametersaddressrequired

x402_preflight

x402 seller preflight: check a paid endpoint BEFORE paying. Probes it unpaid, parses the 402 (v2 header or v1 body) and checks each option: scheme, network, asset is real USDC on Base, EIP-712 name/version match on-chain, payTo not a burn address, amount, timeout, discovery metadata. Plus on-chain seller reputation: USDC payments to payTo over 1-7 days (distinct payers, total, last payment). Returns verdict ok/caution/fail, issues and the recommended option. Price: $0.005 USDC on Base per call (x402).

Parametersurlrequireddaysmethod

wallet_screen

Wallet / counterparty screen before you send funds or accept a payer: OFAC SDN sanctioned-address check (EVM list, refreshed from the 0xB10C OFAC dataset), address type (EOA, EIP-7702 delegated, contract, token contract), Base and Ethereum tx counts, ETH/USDC balances on Base, burn-address detection and an optional address-poisoning look-alike check against the address you expected (same first/last 4 hex). Verdict block/high_risk/caution/no_red_flags. Price: $0.005 USDC on Base per call (x402).

Parametersaddressrequiredexpected

web_brand

Brand kit from a website: site name, logo candidates (JSON-LD logo, header/home-link image, inline SVG logo, apple-touch-icon/favicons, og:image), theme-color, CSS brand variables (--primary/--brand/--accent), dominant colors ranked by CSS frequency (non-neutral first), fonts (Google Fonts + CSS font families, system fonts removed) and social profile links. No rendering; flags bot-protected pages. Price: $0.01 USDC on Base per call (x402).

Parametersurlrequired

web_extract

Fetch any public web page and return clean Markdown of the main content plus title, meta description, word count and absolute links. Strips scripts, navigation and boilerplate. Good for feeding pages to an LLM. Price: $0.005 USDC on Base per call (x402).

ParametersurlrequiredmaxChars

Version history

2
  1. v1.0.1LatestNov 6, 2026
  2. v1.0.0Nov 6, 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