One engine for x402 assurance, five ways to run it.

Settlens runs one catalog of deterministic checks across four stages, Assess, CI, Monitor and Evidence, and reaches your engineers, pipelines and AI agents through a CLI, a GitHub Action, a container image, an HTTP API and an MCP server.

settlens-19fc4364.jsonRecorded example

active-authorizedGET http://127.0.0.1:4402/bypass

pass
25
fail
1
warn
1
skip
0
  • criticalsecurity.invalid_signature_fail_closed

    The endpoint returned HTTP 200 after an invalid payment authorization.

  • mediumtransport.invalid_payment_status

    Expected HTTP 400 or 402 for invalid payment, received HTTP 200.

scope
settlementCalls 0 · privateKeysUsed 0
sha256
verify-report · d5c00c1f…⁠8fdae09d
canonical
settlens-stable-json-v2
ed25519
signature valid · report matches
Recorded example: the demo /bypass endpoint with the authorized probe, Oct 13, 2026, Settlens 0.5.0. Report ids and digests change on every run. Read the report format.

In short

Settlens runs one catalog of deterministic x402 checks in four stages, Assess, CI gate, Monitor and Evidence, through a CLI, a GitHub Action, a container image, an HTTP API and an MCP server. It never settles or sends a valid payment and holds no wallet.

How the platform fits together

Every surface calls the same engine. By default the engine only reads: it requests the paid resource and the facilitator's capabilities, then writes reports you can verify.

Surfaces on top, the engine in the middle, what it touches below. Nothing in the engine pays, signs a payment or holds funds.

Stage by stage

What each stage does, where it runs and what it leaves behind. Verify and the agent preflight reuse the same engine outside the four-stage loop.

Settlens stages and supporting capabilities
StageWhat it doesRuns fromOutput
AssessPassive scan of the 402 handshake, PAYMENT-REQUIRED, every advertised requirement, the resource binding, drift and your policy. Optional facilitator scan and authorized fail-closed probe.settlens scan, facilitator and check; the container; the HTTP API and MCP scan_endpoint (passive only)JSON, HTML and SARIF reports with a SHA-256 integrity block
CI gateRuns your configured targets on pull requests and fails the job when a check fails at or above the fail-on severity.GitHub composite Action (settlens check)Exit code 1 at the threshold, SARIF for code scanning, report artifacts
MonitorCompares each passive scan with the stored baseline and alerts on checks that get worse (pass or skip to warn or fail, warn to fail), on new failing or warning checks and on checks that disappear (coverage lost).settlens monitor on a schedule (cron or CI)Regression list, optional webhook POST, non-zero exit at the threshold
EvidenceBinds a report's SHA-256 digest to an ed25519 signing identity and a timestamp.settlens evidence keygen, attest and verify; MCP verify_attestationAttestation JSON anyone can verify offline
VerifyRecovers the EIP-3009 / EIP-712 signer of a captured exact EVM authorization and checks recipient, amount, asset and validity window, with no RPC. Checks every signer of a Solana transaction.settlens verify-payment; MCP verify_payment_signature and verify_solana_transactionVerified or not, with the reasons
Agent preflightEvaluates a PAYMENT-REQUIRED header against the URL the agent requested and its spending policy, option by option.MCP evaluate_payment_requirements, local or remote; the free x402 checker in a browserpay, review or do_not_pay, the reasons and the acceptable options

Integration surfaces

Pick the surface that matches who is asking: an engineer, a pipeline, an isolated host, a service or an AI agent.

  • Container image

    The Dockerfile pins node:24-alpine by digest, installs the locked production dependencies without install scripts and runs the CLI as the unprivileged node user.

    Non-root

Availability

Settlens lives in a private repository and is not distributed on npm. Pilot participants get the CLI, the GitHub Action and the Dockerfile; the HTTP API and the remote MCP network tools need a bearer token. Request a pilot to get access, or see pricing.

Self-testing vs independent assurance

Your own tests prove the paths you expected. Independent assurance applies fixed, published criteria and produces evidence that someone else can check.

What typical in-house tests and Settlens each cover
QuestionTypical in-house testsSettlens
Validates the 402 challenge with the official @x402/core schemaWhen someone wires it in
Checks the resource binding and, against your policy, the recipient, asset, amount and network of every optionUsually the happy path
Sends an invalid signature to check that the resource fails closedRarely: fixtures use valid paymentsOne, with explicit authorization
Asks the facilitator to verify an invalid signatureRarelyDuring the authorized probe
Detects drift between identical requestsRarely
Same criteria in a pilot, in CI and in production monitoringOften separate suites
Tamper-evident, signed result a partner can verify offline
Knows your business logic and edge cases

Settlens does not replace your test suite. It adds an outside view with stable check ids from a published catalog, and a report records what was observed during the run. It is not a certification, a full security audit or legal advice; the methodology explains what each result proves.

Deployment and security model

Settlens runs where you run it. The hosted surfaces add authentication, destination checks and rate limits.

  • Runs in your environment

    The CLI, the Action and the container run on your machine or CI runner. A scan contacts only the targets and facilitators you configure, and the monitor adds only your optional webhook. Reports stay in your output directory.

  • Passive unless authorized

    Scans and monitoring never send a payment signature. The active probe needs --active, --authorized and an authorization reference, and is never offered by the HTTP API or MCP.

  • Secrets go only where you allow

    Custom headers are sent only to hosts on a separate allowlist (--allow-host, SETTLENS_ALLOWED_HOSTS or the Action's allowed-hosts), and their values never reach the report.

  • Hosted endpoints are gated

    POST /api/scan and the remote MCP network tools need a bearer token, refuse private and loopback destinations, never follow redirects and are rate limited per IP.

  • Pinned supply chain

    Exact dependency versions with a lockfile, install scripts ignored, third-party GitHub actions pinned by commit SHA, container base image pinned by digest, non-root runtime.

  • Your evidence key, no custody

    Evidence keys are generated locally with node:crypto and stay with you. Settlens holds no wallet, signs no payment and takes custody of nothing.

What a report does not prove

A passing report means the sampled endpoint behaved as the checks require during the recorded window. Settlens does not check on-chain balances, nonce use, replay or settlement, and a report does not prove the absence of other vulnerabilities. Read the security model and the security policy.

Explore the platform

Each stage has its own page with real commands and output, the free x402 tools run the public offline checks from your browser, and the documentation has the full reference.

Documentation by topic
TopicPages
Get startedDocumentation, Quickstart
Use SettlensCLI, Configuration, GitHub Action, Monitor, Evidence, MCP
ReferenceChecks, Reports, API
AssuranceMethodology, Security model

Sources

  1. x402 protocol specification, version 2x402 Foundation · github.com
  2. x402 V2 HTTP transportx402 Foundation · github.com
  3. Static Analysis Results Interchange Format (SARIF) Version 2.1.0OASIS · docs.oasis-open.org
  4. Model Context Protocol specification (2025-06-18)Model Context Protocol · modelcontextprotocol.io

Assess one paid endpoint first

Start with a scoped pilot on one endpoint or facilitator, and get a report your engineers and partners can verify.