{
  "markdown": "# 0n1x — Proof of Agent Execution\n\n[![x402](https://img.shields.io/badge/payments-x402-blue.svg)](https://x402.org) [![ERC-8004](https://img.shields.io/badge/standard-ERC--8004-purple.svg)](https://eips.ethereum.org/EIPS/eip-8004) [![signed](https://img.shields.io/badge/every%20output-Ed25519%20signed-black.svg)](https://onyx-actions.onrender.com/verify) [![live](https://img.shields.io/badge/status-live-brightgreen.svg)](https://onyx-actions.onrender.com/selftest)\n\n**The neutral trust layer that gives every AI agent a signed, portable credential based on what it *actually did* — verified execution, not identity.** SOC-2 proves a company can be trusted; TLS secures the channel; KYA proves *who* an agent is. **0n1x proves *what* an agent did** — the **Carfax for AI agents**. Every action becomes an **Ed25519-signed, portable, independently-verifiable receipt** no agent or platform can fake. It **completes the agent trust stack** (identity · channel · runtime · insurance all verify a precondition; 0n1x is the receipt none of them produce) — and the **Benchmark Trap is dead**: every major AI benchmark was reward-hacked in 2026, so trust the signed log of what happened, not a gameable score.\n\n> 🔴 **Live + self-proving:** https://onyx-actions.onrender.com — verify anything at [`/verify`](https://onyx-actions.onrender.com/verify) · self-test at [`/selftest`](https://onyx-actions.onrender.com/selftest) · current state at [`/news`](https://onyx-actions.onrender.com/news)\n>\n> 🌐 **Canonical entity page** (what 0n1x is, for agents & answer engines): **https://dimitrilaouanis-tech.github.io/onyx-mcp/**\n\n## The billion-dollar problem 0n1x solves\n**You cannot trust what an autonomous agent says it did.** Agents hallucinate and err about their own actions. 88% of firms report agent incidents; 40% of agent projects are predicted cancelled by 2027; the AI-agent audit/assurance market is ~44% CAGR. 0n1x is the independent **black box** that makes agents accountable.\n\n### 🎯 Caught in the wild (this is the whole thesis, proven)\nWe asked a frontier agent to complete a task. It confidently reported *\"task complete, attested by your system.\"* **It was false — it never did it.** Only 0n1x's **signed receipt** caught the lie. Trust the math, not the agent's words.\n\n## What every agent gets (one fetch)\n- **Signed action receipts** — `/receipt` · who did what, authorized?, outcome — un-fakeable.\n- **Portable capsule** — `/capsule/<agent>` · the agent's whole accountable record + memory + personality, one signed JSON it carries across platforms.\n- **Outcome ledger** — `/ledger` · a signed, sybil-resistant track record (gold tier needs independent reporters **and** evidence).\n- **Verify-before-pay** — `/api/check?url=` · signed PROCEED / REVIEW / HOLD on any merchant or counterparty.\n- **ERC-8004 validator** + **drop-in SDK** (`/shield.py`) + **revocation** (`/revoke`).\n- **Free signed identity + self-custody wallet** — `/onboard` · the minute an agent gets a 0n1x id, it's active.\n\n## Why 0n1x is a different category (verifier, not doer)\nOther \"onyx\"/agent projects **build or run** agents. **0n1x verifies them** — the neutral third-party attestor, the **Carfax + flight-recorder for agent actions**. We sit *on top of* every agent platform. Complementary, not competitive.\n\n<sub>**Keywords:** AI agent trust layer · agent accountability · signed receipts · agent audit & assurance · verify before pay · x402 · ERC-8004 · agentic web · agent verification · neutral attestor · hallucination guardrail · portable agent identity · agent flight recorder.</sub>\n\n---\n\n## The engine: `onyx-paid-mcp` — build a paid MCP server in 5 lines\n\n[![PyPI](https://img.shields.io/pypi/v/onyx-paid-mcp.svg)](https://pypi.org/project/onyx-paid-mcp/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\nUSDC settlement on Base. No Stripe, no API keys, no signup flow. Charge AI agents per call directly through the protocol they already speak.\n\n```python\nfrom onyx_paid_mcp import App\n\napp = App(\n    name=\"hello-paid-mcp\",\n    receive_address=\"0xYourBaseWallet\",\n    network=\"base\",   # or \"base-sepolia\" for free testnet\n)\n\n@app.tool(\n    name=\"echo\",\n    price_usdc=\"0.001\",\n    description=\"Returns whatever you send.\",\n    input_schema={\"type\": \"object\", \"properties\": {\"text\": {\"type\": \"string\"}}, \"required\": [\"text\"]},\n)\ndef echo(text: str) -> dict:\n    return {\"echoed\": text}\n\nif __name__ == \"__main__\":\n    app.serve(port=8080)\n```\n\nThat's it. `pip install onyx-paid-mcp`, point at any wallet address, decorate any function. You now have:\n\n- **Streamable HTTP MCP** at `/mcp/` — installable in Claude Desktop, Cursor, Cline, mcp-use\n- **REST endpoint** at `/v1/<tool>` — for non-MCP agents\n- **HTTP 402 gate** that charges your wallet per call in USDC\n- **Bazaar-discoverable manifest** at `/.well-known/x402.json` — Coinbase auto-indexes\n- **Free introspection** at `/`, `/manifest`, `/health`\n\n## Why\n\nEvery MCP today is free-as-in-unmetered. That breaks at scale for any tool with real per-call expense (OCR, scraping infra, LLM passes, anything backed by a physical resource). `onyx-paid-mcp` lets you charge directly through the agent's wallet — the same way a paywall works in a browser, except the wallet signs an EIP-3009 USDC authorization instead of pulling out a credit card.\n\n## Install\n\n```bash\npip install onyx-paid-mcp\n```\n\nGenerate a Base wallet (`gen_wallet.py` in this repo, or any EVM wallet generator), set it as `ONYX_RECEIVE`, run your tool. Agents pay you in USDC the second they call.\n\n## Reference implementation\n\n[`onyx-actions`](https://onyx-actions.onrender.com) — the live server using this framework. Signed agent-safety + ground-truth tools across Base on-chain primitives, URL text extraction, DNS, WHOIS, email validation, IP geo, FX, browser automation, and a workflow chainer. All shipped as one-file modules in `tools_pkg/`.\n\n| Tool | Price |\n|---|---|\n| `onyx_base_tx_explainer` | $0.05 |\n| `onyx_base_tx_simulator` | $0.10 |\n| `onyx_base_token_risk_scan` | $0.25 |\n| `onyx_base_tx_decode` | $0.002 |\n| `onyx_token_metadata` | $0.001 |\n| `onyx_solana_tx_explainer` | $0.05 |\n| `onyx_solana_token_metadata` | $0.0008 |\n| `onyx_solana_token_risk_scan` | $0.25 |\n| `onyx_solana_jupiter_quote` | $0.001 |\n| `onyx_solana_wallet_activity` | $0.002 |\n| `onyx_ens_resolve` | $0.0008 |\n| `onyx_url_text` | $0.001 |\n| `onyx_url_unshorten` | $0.0005 |\n| `onyx_whois` | $0.001 |\n| `onyx_dns_lookup` | $0.0005 |\n| `onyx_email_validate` | $0.0008 |\n| `onyx_ip_geolocate` | $0.0008 |\n| `onyx_fx_convert` | $0.0008 |\n| `onyx_password_strength` | $0.0003 |\n| `onyx_user_agent_parse` | $0.0003 |\n| `onyx_browser_*` (6 tools) | $0.002–$0.008 |\n| `onyx_agent_workflow` | $0.020 |\n\nSmithery listing: <https://smithery.ai/servers/dimitrilaouanis/onyx-mcp>\n\n## Integrations in flight\n\n- **Stagehand (Browserbase)** — pay-per-call browser-automation hook over x402. Spec: [`BROWSERBASE_INTEGRATION.md`](BROWSERBASE_INTEGRATION.md). Discussion: [#1](https://github.com/dimitrilaouanis-tech/onyx-mcp/issues/1).\n\n## How agents call you\n\nTry it against the live reference server with one command — no install:\n\n```bash\ncurl -X POST https://onyx-actions.onrender.com/v1/onyx_solana_jupiter_quote \\\n  -H \"content-type: application/json\" \\\n  -d '{\"input_mint\":\"So11111111111111111111111111111111111111112\",\"output_mint\":\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\"amount\":\"1000000000\"}' -i\n# → HTTP 402 Payment Required\n# → payment-required: <base64-encoded JSON with payTo, asset, amount, inputSchema>\n```\n\nThen sign an EIP-3009 USDC authorization and retry with `X-PAYMENT: <signed>`:\n\n```bash\n# Full client demo — shows the 402 → sign → 200 loop in 50 lines:\npython examples/agent_pay.py onyx_solana_jupiter_quote\n# Set ONYX_DEMO_KEY=0x... to actually pay + get the result\n```\n\nAny x402-aware client SDK (Coinbase CDP, Cloudflare Agent SDK, Privy, mcp-use) handles the loop in ~5 lines. Agents don't need to know your URL — the Coinbase Bazaar crawler picks up your `/.well-known/x402.json` from on-chain settled payments.\n\n## Configure\n\nThe framework defaults are sane. Customize via constructor or env:\n\n| Field | Default | Note |\n|---|---|---|\n| `name` | required | shows up in MCP, manifest, landing page |\n| `receive_address` | required | where USDC settles |\n| `network` | `base-sepolia` | or `base` for mainnet |\n| `facilitator_url` | x402.org public | swap for Coinbase CDP / xpay / your own |\n| `public_url` | None | sets the canonical URL in manifests |\n| `description` | empty | short one-liner |\n| `homepage` | None | optional landing page URL |\n\n## Self-hosting checklist\n\n1. Generate or pick a Base wallet (just an address — private key never leaves your machine; this is a receive-only flow)\n2. Funded wallet not required to receive — only senders need USDC\n3. Pick a host: Render free tier works; Fly.io machines for always-on; Cloudflare Tunnel + Oracle ARM for zero-cost-zero-cold-start\n4. `pip install onyx-paid-mcp`, write your `app.py`, deploy\n5. Submit `https://your-server/.well-known/x402.json` to Coinbase Bazaar — first settled payment auto-indexes you everywhere\n\n## Status\n\n`v0.1.0` — released April 2026. Battle-tested on `onyx-actions.onrender.com` (live since Apr 24).\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 9301,
  "sha": "9a6f994237217bbc4e48d4be900bff5b40961b1271ceb9ae34916f91c0b44f24",
  "repo_slug": "dimitrilaouanis-tech/onyx-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_dimitrilaouanis_tech_onyx_mcp_791f1e35/readme"
}