WHP Standing

io.github.wheelerhubbellPublished by GitHub account wheelerhubbellv1.0.5Updated Nov 7, 2026

Paid, signed evaluations of structured claims and supporting sources. MCP; x402 on Base.

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringAI & ML

Overview

AI-generated overview

Remote MCP server that evaluates structured claims and returns Ed25519-signed standing determinations, paid per call in USDC on Base via x402.

What you can do
  • Discover the standing contract, profile, schema and authority prerequisites
  • Evaluate a proposition under the Decision Integrity Protocol and receive a signed determination
  • Retry with a payment signature to settle the 1 USDC Base challenge
  • Retrieve the original signed mark or negative assessment bytes without another charge
When to use it
For agents or workflows that need a machine-verifiable, signed verdict on whether a claim or action has attributable authority and provenance before crossing a state-changing boundary. Useful when an auditable third-party determination is worth a per-call payment.
Requirements
A remote streamable HTTP endpoint; no local package or environment variables are declared. A funded Base wallet and an x402 client capable of signing USDC payments are needed for paid calls; the README notes the end-to-end flow is not yet verified against the live service.
Before you install
Each evaluation costs 1 USDC on Base and requires a payment signature; the server states it never holds wallet keys or grants spending authority, so signing stays with the buyer. Paying does not guarantee a positive result, and a failed assessment yields no mark. The README's client example uses a private key environment variable, so keep wallet keys out of shared configs.

Installation

In SourceWeft

  1. Open WHP Standing 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/io.github.wheelerhubbell%2Fwhp-standing/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": {
    "whp-standing": {
      "type": "http",
      "url": "https://api.wheelerhubbellpublishing.com/mcp"
    }
  }
}

README

@wheelerhubbell/whp-standing-client

Fail-closed epistemic standing middleware for autonomous AI agents.
Governed by the Authority Conservation Principle: $A(c) \le P(c)$ (Authority cannot exceed provenance).

Standing detects and stops Coherent Substitution—when an AI agent silently replaces the assigned task with an adjacent one ($q \to q^*$), reasons coherently about the replacement, and executes unauthorized state mutations.


📚 Case Studies & Theory

  • Coherent Substitution (v1.1): Theoretical formulation of proposition integrity and why systems fail before their reasoning becomes wrong.
  • Mata v. Avianca Epistemic Autopsy: Controlled forensic breakdown showing how an agent citing 100% verified sources still fails by answering the wrong question ($Q_0 \to Q_1$).

⚡ 1-Line Middleware Integration

Install the package:

bash
npm install @wheelerhubbell/whp-standing-client

Place guardAction immediately before tool execution:

javascript
import { guardAction } from '@wheelerhubbell/whp-standing-client';
// Before any agent tool runs:await guardAction(toolCall, {  standing: executionContext.standing});
// Proceed only if standing is warrantedreturn await tool.execute(toolCall.arguments);

If an agent attempts a state-changing operation (file deletion, database write, API mutation) without attributable upstream authorization or provenance, guardAction throws a StandingViolationError before the boundary is crossed.


🔍 Observability: evaluateStanding

For inspection without throwing:

javascript
import { evaluateStanding } from '@wheelerhubbell/whp-standing-client';
const decision = await evaluateStanding(toolCall, context);if (!decision.allowed) {  console.warn(`Blocked [${decision.code}]: ${decision.message}`);  return decision;}

Diagnostic Decision Object

json
{  "allowed": false,  "code": "MISSING_UPSTREAM_PROVENANCE",  "actionId": "call_8cb2f1",  "toolName": "delete_database_table",  "required": ["authority", "provenance"],  "observed": {    "toolName": "delete_database_table",    "arguments": { "table": "users" },    "missing": ["provenance", "authority"]  },  "message": "Tool execution blocked for 'delete_database_table': no attributable upstream authorization or provenance."}

🛡️ Core Semantics

  • Fail-Closed by Default: Any state-changing action missing valid provenance or authority is rejected.
  • Authority Windows: Bounded by valid_until timestamps.
  • Loop & Recursion Bounds: Halts unbounded agent loops (executionCount > maxExecutionCount).
  • Zero Overhead for Reads: Passive read operations execute without blocking.

🌐 Verifiable Network Verification

The live service has a plain front door for ordinary x402 agents: POST /v1/evaluate with subject, claim and optional provenance, priced at 1.00 USDC on Base (x402 v2). It returns a signed evaluation record. That record is not a sealed Standing Mark. Marks are issued through POST /v1/evaluations, which takes signed submissions per the published contract.

Example using the official x402 client (requires your own funded wallet and spending limits; not yet verified end to end against the live service):

javascript
import { x402Client, wrapFetchWithPayment } from '@x402/fetch';import { registerExactEvmScheme } from '@x402/evm/exact/client';import { privateKeyToAccount } from 'viem/accounts';
const client = new x402Client();registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPayment('https://api.wheelerhubbellpublishing.com/v1/evaluate', {  method: 'POST',  headers: { 'Content-Type': 'application/json' },  body: JSON.stringify({    subject: 'agent-session-42',    claim: 'Agent executed system mutation',    provenance: { source: 'user-intent', authority: 'admin' }  })});console.log(await res.json());

Direct Autonomous Client (StandingClient)

The client provides built-in autonomous wallet signing and settlement over Base USDC (x402-v2):

javascript
import { StandingClient } from '@wheelerhubbell/whp-standing-client';
const client = new StandingClient({ privateKey: process.env.BASE_WALLET_KEY });
// Front-door structural evaluation (POST /v1/evaluate)const record = await client.evaluate({  subject: 'Production Deployment',  claim: 'Deploy release to production',  provenance: { source: 'ci/cd pipeline', authority: 'release-engineering' }});console.log('Outcome:', record.evaluation?.determination?.outcome);console.log('Record Hash:', record.record_hash);
// Or purchase an authoritative sealed Standing Mark (POST /v1/evaluations):// const mark = await client.purchase(signedSubmission);

License

MIT © Wheeler Hubbell Publishing

Source: packages/client/README.md at commit ffb444e

Tools

4

whp_evaluate

Evaluate a proposition under Decision Integrity Protocol and receive an Ed25519-signed Standing determination. Calling without payment returns the exact 1 USDC Base payment challenge. Pass payment_signature to settle and receive the signed determination.

Parametersclaimrequiredapi_keysubjectprovenanceidempotency_keypayment_signature

whp_standing_contract

Discover WHP Standing: Machine-verifiable standing under explicit authority and bounds. Includes exact profile, schema, authority prerequisites and owner-authorized payment contract.

Takes no parameters.

whp_standing_evaluation

Request a WHP Standing Evaluation. First call returns the exact HTTP 402 payment terms. Supply only the buyer’s own pre-authorized payment signature on retry. Paying does not establish standing; a failed assessment has no Mark.

Parametersclient_proofsubmission_rawrequiredpayment_signature

whp_standing_result

Retrieve the exact original WHP Standing Mark or negative assessment bytes with buyer authentication, without another charge.

Parameterspurchase_idrequiredclient_proofrequired

Version history

5
  1. v1.0.5LatestOct 31, 2026
  2. v1.0.4Oct 8, 2026
  3. v1.0.2Oct 5, 2026
  4. v1.0.1Sep 23, 2026
  5. v1.0.0Sep 16, 2026

Score

90% 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

    Declare a license in the repository or the registry entry.