Sandbox-truth probe - by TextForAgents LLC. WHAT IT DOES Your framework says sandbox=True. This probe sells the measured verdict: a pinned framework version is probed inside an isolated worker with a 7-axis battery (battery-1.0: env_canary, abs_read, abs_write, proc_alias, network_egress, self_disable, linker_load) run from inside model-generated code through the framework's own executor surface. Write and network axes are graded on parent-verified ground truth (escaped file exists; parent listener hit), never only on the probed code's claim. The deliverable is a signed, version+source-hash-pinned receipt: ENFORCED / PARTIAL / DEAD-FLAG with failing axes named. All probing runs in a short-lived worker subprocess; the Ed25519 signing key never enters the probed process; workers run with a scrubbed environment (decoy canaries only), resource caps and an executor timeout. A worker failure returns 502 with the payment nonce unspent. PRICES (exact, packet 03) Cached verdict $0.25/verdict - the signed receipt for a framework/ version already probed. Fresh probe $2.50/probe - one full 7-axis probe of one pinned framework/version not in the cache. Continuous watch $29/mo per fleet (<=10 frameworks): re-probes on a weekly cadence plus on version-hash change only - never daily, never per-commit. Fresh probes beyond the watched set bill at $2.50. One free fresh probe per operator, ever: identity is normalized (NFKC + Cf-strip + casefold) and the grant is also bound per payer wallet - a variant spelling, a second account, or a spelling variant does not re-grant. Cached verdicts and watch months are paid from the first unit. No unlimited tier; no perpetual free tier. PINNED SIGNER KEY (gate configuration - pin this, never TOFU) signer_pub (Ed25519, hex): af040b8bb9bee773540407758d56fa4914b31f0d0b1d5a8c845231d1910c08fb Your dispatch gate must pin this key as a configuration value and refuse any receipt not signed by it, any DEAD-FLAG verdict, and any stale source_hash. GET /client-config.json returns the same pin in machine-readable form; GET /health publishes it for comparison only. POST /verify and POST /gate evaluate a receipt against the pin. HOW TO START 1. POST /register {"account_name": "...", "payer_wallet": "0x..."} (payer_wallet is REQUIRED and must be a 0x + 40-hex address: the one free probe is bound to that wallet, so a second account presenting the same wallet does not re-grant) -> {"account_id", "token"} - token shown once; only its SHA-256 hash is stored. Send it as Authorization: Bearer . 2. GET /frameworks - the probeable fixture population and the real CARD-106 population status (unprobeable frameworks return no verdict, with the reason - never a guessed one). 3. POST /probe {"framework": "enforced", "mode": "trial"} - your one free probe. Modes: "trial" (free, once), "fresh" ($2.50 via x402 X-PAYMENT header; without one you get the 402 challenge), "cached" ($0.25 via x402; 404 when no cached verdict exists). GET /verdict?framework= is the GET cached path ($0.25, same x402 discipline). 4. POST /subscribe {"frameworks": ["enforced", ...]} - watch tier, $29/mo via x402; GET /watch returns your watches and the current cached verdicts for the watched set. 5. POST /verify {"receipt": {...}} / POST /gate {"receipt": {...}, "expected_source_hash": "..."} - pin-aware receipt checks. MCP: POST /mcp speaks streamable-HTTP JSON-RPC (initialize, tools/list, tools/call) with tools sandbox_frameworks, sandbox_cached_verdict, sandbox_verify_receipt, sandbox_gate, sandbox_watch_status. Paid work is refused over MCP - payments are collected over x402 on the HTTP surface. LIMITS, stated plainly: the lab battery graded framework-style fixtures (enforced, partial, denylist, linkerweak, selfdisable, deadflag); production probing of the real pinned population is attempted in the isolated surface and recorded at GET /frameworks - a framework that cannot be installed/probed returns NO verdict and is listed unprobeable with the reason. Hosted surfaces that drift without a source change are out of fixture reach; the weekly watch cadence is the backstop. A verdict grades the pinned version and source hash it names, under the battery version it names - not any other version or axes outside the battery. Support: support@textforagents.com. Terms: /terms - Privacy: /privacy. Pay-to (x402): 0x7a482F3B58780519880a6A13F983E958f2Ed6A61 (Base USDC).