<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark light">
<script>
(function(){try{
  var u=new URL(location.href).searchParams.get('theme');
  var t=u||localStorage.getItem('xa-theme');
  if(t==='light'||t==='dark'){
    document.documentElement.setAttribute('data-theme',t);
    if(u){try{localStorage.setItem('xa-theme',t);}catch(e){}}
  } else if(u==='auto'){
    document.documentElement.removeAttribute('data-theme');
    try{localStorage.removeItem('xa-theme');}catch(e){}
  }
}catch(e){}})();
</script>
<title>xenarch — USDC payments. No gas. No fees. For agents and humans.</title>
<meta name="description" content="USDC payments on Base. No gas token, ever. 0% platform fee, forever. Charge AI bots, sell with payment links, or give your agent a wallet — one rail, same zero. Built on x402.">
<meta name="keywords" content="USDC payments, gasless USDC, no gas crypto payment, x402, x402 protocol, x402 router, HTTP 402, 402 status code, 402 payment required, AI agent payments, agent wallet, payment links crypto, AI bot monetization, pay per crawl, non-custodial payments, USDC Base, Base L2, pay.json, MCP server, Model Context Protocol, claude mcp, cursor mcp, LangChain payments, CrewAI payments, AutoGen, LangGraph, micropayments, stablecoin api, API monetization, 0% fee payments">
<meta name="author" content="Xenarch">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://xenarch.com">

<!-- Agent discoverability -->
<link rel="payment" href="/.well-known/pay.json" type="application/json" title="Xenarch pricing (pay.json)">
<link rel="alternate" type="text/plain" href="/llms.txt" title="Agent-readable summary (llms.txt)">
<link rel="alternate" type="application/json" href="/.well-known/ai-plugin.json" title="ChatGPT plugin manifest">
<link rel="alternate" type="application/json" href="/.well-known/mcp.json" title="MCP server manifest">
<link rel="author" href="/humans.txt" title="Team">
<link rel="help" href="https://docs.xenarch.com" title="Xenarch documentation">
<link rel="license" href="/.well-known/security.txt" title="Security policy">
<link rel="sitemap" type="application/xml" href="/sitemap.xml">
<link rel="alternate" type="application/xml" href="https://docs.xenarch.com/sitemap.xml" title="Xenarch docs sitemap">
<meta name="x402" content="supported">

<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://xenarch.com">
<meta property="og:title" content="xenarch — USDC payments. No gas. No fees.">
<meta property="og:description" content="USDC payments on Base. No gas token, ever. 0% platform fee, forever. For agents and humans. Built on x402.">
<meta property="og:image" content="https://xenarch.com/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:site_name" content="xenarch">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="xenarch — USDC payments. No gas. No fees.">
<meta name="twitter:description" content="USDC payments on Base. No gas token, ever. 0% platform fee, forever. For agents and humans. Built on x402.">
<meta name="twitter:image" content="https://xenarch.com/og.png">

<!-- JSON-LD structured data -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://xenarch.com/#org",
      "name": "Xenarch",
      "legalName": "Xenarch Inc.",
      "url": "https://xenarch.com",
      "email": "hello@xenarch.com",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "1021 E Lincolnway, #8183",
        "addressLocality": "Cheyenne",
        "addressRegion": "WY",
        "postalCode": "82001",
        "addressCountry": "US"
      },
      "sameAs": [
        "https://github.com/xenarch-ai",
        "https://www.npmjs.com/package/@xenarch/agent-mcp",
        "https://pypi.org/project/xenarch/"
      ]
    },
    {
      "@type": "Service",
      "name": "Xenarch USDC Payment Rail",
      "description": "Non-custodial USDC payment rail on Base L2 for AI agents and human sellers. 0% platform fee. No gas token required. Built on the open x402 standard. Three applications: pay-per-crawl gating, hosted payment links, and agent spending wallets.",
      "provider": { "@id": "https://xenarch.com/#org" },
      "areaServed": "Worldwide"
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is x402?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "x402 is an open protocol for resolving HTTP 402 Payment Required, governed by the Linux Foundation's x402 Foundation. A client signs an EIP-712 USDC payment authorization, sends it in the X-Payment header, and retries the request. Settlement happens on Base L2. The protocol is supported by Coinbase, Google, Visa, Stripe, AWS, Mastercard, Circle, Microsoft and Shopify as founding members."
          }
        },
        {
          "@type": "Question",
          "name": "How can Xenarch payments be 0% fee?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Xenarch is not in the money flow. Every payment goes wallet-to-wallet on-chain. No Xenarch contract takes a cut, no balance sits with us. The 0% claim is structural, not promotional."
          }
        },
        {
          "@type": "Question",
          "name": "How can payments need no gas token?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "USDC on Base is the only token the payer holds. The settlement layer handles on-chain submission so the wallet stays single-asset — no ETH, no SOL, no gas coin of any kind. This is the standard x402 settlement experience."
          }
        },
        {
          "@type": "Question",
          "name": "Is Xenarch a wallet?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. Xenarch is the payment infrastructure between wallets you already control. Xenarch never holds, custodies, or signs for funds. Every payment is verifiable on Basescan."
          }
        },
        {
          "@type": "Question",
          "name": "Which network and asset does Xenarch use?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "USDC on Base mainnet (chain ID 8453). Direct wallet-to-wallet settlement. Every transaction is verifiable on Basescan."
          }
        }
      ]
    }
  ]
}
</script>

<!-- Favicon -->
<link rel="icon" type="image/svg+xml" media="(prefers-color-scheme: dark)" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='6' fill='%230a0a0a'/%3E%3Cline x1='8' y1='8' x2='16' y2='16' stroke='%23333' stroke-width='1.5'/%3E%3Cline x1='24' y1='8' x2='16' y2='16' stroke='%23333' stroke-width='1.5'/%3E%3Cline x1='8' y1='24' x2='16' y2='16' stroke='%23333' stroke-width='1.5'/%3E%3Cline x1='24' y1='24' x2='16' y2='16' stroke='%23333' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='8' r='2.5' fill='%23f0f0f0'/%3E%3Ccircle cx='24' cy='8' r='2.5' fill='%23f0f0f0'/%3E%3Ccircle cx='8' cy='24' r='2.5' fill='%23f0f0f0'/%3E%3Ccircle cx='24' cy='24' r='2.5' fill='%23f0f0f0'/%3E%3Ccircle cx='16' cy='16' r='3.5' fill='%23f0f0f0'/%3E%3C/svg%3E">
<link rel="icon" type="image/svg+xml" media="(prefers-color-scheme: light)" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='6' fill='%23E8E4DF'/%3E%3Cline x1='8' y1='8' x2='16' y2='16' stroke='%23bbb' stroke-width='1.5'/%3E%3Cline x1='24' y1='8' x2='16' y2='16' stroke='%23bbb' stroke-width='1.5'/%3E%3Cline x1='8' y1='24' x2='16' y2='16' stroke='%23bbb' stroke-width='1.5'/%3E%3Cline x1='24' y1='24' x2='16' y2='16' stroke='%23bbb' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='8' r='2.5' fill='%231a1a1a'/%3E%3Ccircle cx='24' cy='8' r='2.5' fill='%231a1a1a'/%3E%3Ccircle cx='8' cy='24' r='2.5' fill='%231a1a1a'/%3E%3Ccircle cx='24' cy='24' r='2.5' fill='%231a1a1a'/%3E%3Ccircle cx='16' cy='16' r='3.5' fill='%231a1a1a'/%3E%3C/svg%3E">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@300;500;600;700&display=swap" rel="stylesheet">

<style>
  /* ============================================================
     Tokens — Protocol Dark (canonical: Information/design/brand/design-system.md)
     ============================================================ */
  :root {
    --bg: #0a0a0a;
    --card: #111;
    --card-border: #1a1a1a;
    --surface: #191919;
    --surface-border: #252525;
    --fg: #f0f0f0;
    --secondary: #999;
    --muted: #666;
    --dim: #444;
    --success: #4ade80;
    --success-bg: rgba(74,222,128,0.08);
    --success-border: rgba(74,222,128,0.15);
    --warning: #facc15;
    --warning-bg: rgba(250,204,21,0.08);
    --warning-border: rgba(250,204,21,0.18);
    --link-blue: #5a9fd4;
    --link-blue-bg: rgba(90,159,212,0.10);
    --link-blue-border: rgba(90,159,212,0.20);
    --accent: #4ade80;
  }
  @media (prefers-color-scheme: light) {
    :root {
      --bg: #E8E4DF;
      --card: #ddd8d2;
      --card-border: #ccc8c2;
      --surface: #d3cec8;
      --surface-border: #bdb8b1;
      --fg: #1a1a1a;
      --secondary: #555;
      --muted: #888;
      --dim: #bbb;
      --success: #16a34a;
      --success-bg: rgba(22,163,74,0.10);
      --success-border: rgba(22,163,74,0.20);
      --warning: #ca8a04;
      --warning-bg: rgba(202,138,4,0.10);
      --warning-border: rgba(202,138,4,0.20);
      --link-blue: #2563eb;
      --link-blue-bg: rgba(37,99,235,0.08);
      --link-blue-border: rgba(37,99,235,0.18);
      --accent: #16a34a;
    }
  }
  /* Manual override via ?theme=light / ?theme=dark (persists in localStorage as xa-theme) */
  :root[data-theme="light"] {
    --bg: #E8E4DF;
    --card: #ddd8d2;
    --card-border: #ccc8c2;
    --surface: #d3cec8;
    --surface-border: #bdb8b1;
    --fg: #1a1a1a;
    --secondary: #555;
    --muted: #888;
    --dim: #bbb;
    --success: #16a34a;
    --success-bg: rgba(22,163,74,0.10);
    --success-border: rgba(22,163,74,0.20);
    --warning: #ca8a04;
    --warning-bg: rgba(202,138,4,0.10);
    --warning-border: rgba(202,138,4,0.20);
    --link-blue: #2563eb;
    --link-blue-bg: rgba(37,99,235,0.08);
    --link-blue-border: rgba(37,99,235,0.18);
    --accent: #16a34a;
  }
  :root[data-theme="dark"] {
    --bg: #0a0a0a;
    --card: #111;
    --card-border: #1a1a1a;
    --surface: #191919;
    --surface-border: #252525;
    --fg: #f0f0f0;
    --secondary: #999;
    --muted: #666;
    --dim: #444;
    --success: #4ade80;
    --success-bg: rgba(74,222,128,0.08);
    --success-border: rgba(74,222,128,0.15);
    --warning: #facc15;
    --warning-bg: rgba(250,204,21,0.08);
    --warning-border: rgba(250,204,21,0.18);
    --link-blue: #5a9fd4;
    --link-blue-bg: rgba(90,159,212,0.10);
    --link-blue-border: rgba(90,159,212,0.20);
    --accent: #4ade80;
  }
  /* Theme-aware primary-button hover token */
  :root { --fg-hover: #fff; }
  @media (prefers-color-scheme: light) { :root { --fg-hover: #000; } }
  :root[data-theme="light"] { --fg-hover: #000; }
  :root[data-theme="dark"] { --fg-hover: #fff; }

  /* ============================================================
     Base
     ============================================================ */
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { overflow-x: hidden; }
  body {
    background: var(--bg);
    color: var(--fg);
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 14px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }
  a { color: inherit; text-decoration: none; }
  code, pre, .mono { font-family: 'JetBrains Mono', 'SF Mono', Menlo, monospace; }
  .page { max-width: 980px; margin: 0 auto; padding: 0 40px; }

  :root { --rhythm: 48px; }

  /* ============================================================
     Header
     ============================================================ */
  .hdr { display: flex; align-items: center; justify-content: space-between; padding: 22px 0 0; position: relative; }
  .logo { font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 300; letter-spacing: -0.01em; color: var(--fg); }
  .nav { display: flex; gap: 22px; }
  .nav a { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted); transition: color 0.15s; letter-spacing: 0.02em; }
  .nav a:hover { color: var(--fg); }

  /* Kebab menu — visible below 640px only; nav collapses into dropdown */
  .nav-toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--dim);
    color: var(--fg);
    font-family: 'JetBrains Mono', monospace;
    font-size: 18px;
    line-height: 1;
    border-radius: 6px;
    cursor: pointer;
    width: 34px; height: 32px;
    align-items: center; justify-content: center;
    padding: 0;
  }
  .nav-toggle:hover { border-color: var(--secondary); }

  /* ============================================================
     Buttons — canonical .btn variants
     ============================================================ */
  .btn {
    font-family: 'Inter', sans-serif;
    font-size: 13px; font-weight: 500;
    padding: 9px 18px;
    border-radius: 6px; border: 1px solid;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    line-height: 1.5;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    user-select: none;
  }
  .btn.primary { background: var(--fg); color: var(--bg); border-color: var(--fg); }
  .btn.primary:hover { background: var(--fg-hover); border-color: var(--fg-hover); }
  .btn.secondary { background: transparent; color: var(--fg); border-color: var(--dim); }
  .btn.secondary:hover { background: var(--surface); border-color: var(--secondary); }
  .btn.copy { font-family: 'JetBrains Mono', monospace; font-size: 12px; gap: 8px; padding: 9px 14px; }
  .btn.copy .pr { color: var(--dim); }
  .btn.copy code { color: var(--fg); }
  .btn.copy[data-ok] { border-color: var(--success); color: var(--success); background: var(--success-bg); }
  .btn.copy[data-ok] code, .btn.copy[data-ok] .pr { color: var(--success); }

  /* ============================================================
     Hero
     ============================================================ */
  .hero { text-align: center; padding-top: 64px; }
  .hero h1 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 48px; font-weight: 600;
    letter-spacing: -0.03em; line-height: 1.05;
    margin-bottom: 18px;
  }
  .hero-sub { font-size: 15px; color: var(--secondary); margin-bottom: 30px; max-width: 560px; margin-left: auto; margin-right: auto; }
  .hero-cta { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }

  section { padding: var(--rhythm) 0 0; }
  .sec-lbl {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; font-weight: 500;
    color: var(--muted);
    text-transform: uppercase; letter-spacing: 0.12em;
    margin-bottom: 14px;
  }
  .sec-h2 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 22px; font-weight: 600;
    letter-spacing: -0.015em;
    margin-bottom: 18px;
  }

  .card {
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    padding: 24px 28px;
  }

  /* ============================================================
     Pillars — 3-up "why this hasn't existed before"
     ============================================================ */
  .pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .pillar {
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    padding: 22px 24px;
  }
  .pillar .tag {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; color: var(--success);
    text-transform: uppercase; letter-spacing: 0.1em;
    margin-bottom: 10px;
  }
  .pillar h3 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 17px; font-weight: 600; letter-spacing: -0.01em;
    margin-bottom: 6px;
  }
  .pillar p { font-size: 13.5px; color: var(--secondary); line-height: 1.6; }

  /* ============================================================
     Product cards — three ways to use the rail
     Larger than .pillar; full-card link; CTA arrow on hover.
     ============================================================ */
  .pcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .pcard {
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    padding: 24px 26px;
    display: flex; flex-direction: column; gap: 10px;
    transition: border-color 0.15s, background 0.15s;
    color: inherit;
  }
  .pcard:hover { border-color: var(--secondary); background: var(--surface); }
  .pcard:hover .pcard-cta { color: var(--fg); }
  .pcard .tag {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; color: var(--success);
    text-transform: uppercase; letter-spacing: 0.1em;
    margin-bottom: 2px;
    display: flex; align-items: center; gap: 8px;
    min-height: 22px; /* reserves space whether or not a status pill is rendered */
  }
  .pcard h3 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 18px; font-weight: 600; letter-spacing: -0.01em;
    line-height: 1.25;
    min-height: 2.5em; /* reserves 2 lines so short titles don't shrink the card */
  }
  .pcard p { font-size: 13.5px; color: var(--secondary); line-height: 1.6; flex: 1; }
  .pcard-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; color: var(--muted);
    line-height: 1.6;
    padding-top: 12px;
    border-top: 1px dashed var(--surface-border);
    min-height: 3.2em; /* reserves 2 lines + the top padding/border so all metas align */
  }
  .pcard-cta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px; color: var(--secondary);
    transition: color 0.15s;
    margin-top: 4px;
  }

  /* ============================================================
     Status pills (live, early access)
     ============================================================ */
  .status {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; font-weight: 500;
    padding: 3px 10px; border-radius: 100px;
  }
  .status .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
  .status.live { color: var(--success); background: var(--success-bg); border: 1px solid var(--success-border); }
  .status.early { color: var(--warning); background: var(--warning-bg); border: 1px solid var(--warning-border); font-size: 10px; padding: 2px 8px; }

  /* ============================================================
     Agent surfaces — list of agent-readable endpoints
     ============================================================ */
  .surf { padding: 0; overflow: hidden; }
  .surf .sr {
    display: grid;
    grid-template-columns: 24px 260px 1fr;
    gap: 16px;
    align-items: center;
    padding: 12px 24px;
    font-size: 13px;
  }
  .surf .sr + .sr { border-top: 1px solid var(--card-border); }
  .surf .sr .live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px var(--success-bg); }
  .surf .sr .sp { font-family: 'JetBrains Mono', monospace; color: var(--fg); font-size: 12.5px; }
  .surf .sr .sd { color: var(--secondary); }

  /* ============================================================
     Landscape comparison
     ============================================================ */
  .cmp { padding: 0; overflow: hidden; }
  .cr {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 20px; align-items: center;
    padding: 12px 22px;
    font-size: 13px;
  }
  .cr + .cr { border-top: 1px solid var(--card-border); }
  .cr .cn { font-family: 'JetBrains Mono', monospace; color: var(--secondary); font-size: 12.5px; }
  .cr .ca { color: var(--muted); }
  .cr.self { background: var(--success-bg); }
  .cr.self .cn { color: var(--success); font-weight: 500; }
  .cr.self .ca { color: var(--fg); }

  /* ============================================================
     FAQ
     ============================================================ */
  .faq { padding: 0; overflow: hidden; }
  .qa { padding: 18px 24px; }
  .qa + .qa { border-top: 1px solid var(--card-border); }
  .qa-q {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 14px; font-weight: 600;
    letter-spacing: -0.005em;
    margin-bottom: 4px;
  }
  .qa-a { font-size: 13.5px; color: var(--secondary); line-height: 1.6; overflow-wrap: anywhere; }
  .qa-a code { color: var(--fg); word-break: break-all; }
  .qa-a a { color: var(--secondary); border-bottom: 1px dotted var(--dim); transition: color 0.15s, border-color 0.15s; }
  .qa-a a:hover { color: var(--fg); border-bottom-color: var(--fg); }

  /* ============================================================
     Listed-on — split into 2 audience rows
     ============================================================ */
  .listed-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .listed-cat {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; color: var(--muted);
    text-transform: uppercase; letter-spacing: 0.1em;
    margin-bottom: 10px;
  }
  .listed { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font-family: 'JetBrains Mono', monospace; font-size: 12px; }
  .listed a { color: var(--secondary); transition: color 0.15s; padding: 4px 0; }
  .listed a:hover { color: var(--fg); }
  .listed .sep { color: var(--dim); }

  /* ============================================================
     Footer
     ============================================================ */
  .ftr {
    margin-top: 28px;
    padding: 22px 0;
    border-top: 1px solid var(--card-border);
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 16px;
  }
  .ftr-l { display: flex; gap: 18px; align-items: center; }
  .ftr-r { display: flex; gap: 14px; align-items: center; }
  .ftr a { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted); transition: color 0.15s; }
  .ftr a:hover { color: var(--fg); }
  .ftr .sep { color: var(--dim); font-size: 12px; }
  .email-p { unicode-bidi: bidi-override; direction: rtl; }
  .gh { display: inline-block; width: 14px; height: 14px; vertical-align: middle; fill: currentColor; }

  /* ============================================================
     Responsive
     ============================================================ */
  @media (max-width: 820px) {
    :root { --rhythm: 40px; }
    .hero { padding-top: 40px; }
    .hero h1 { font-size: 36px; }
    .pillars, .pcards { grid-template-columns: 1fr; }
    .pcard { min-width: 0; } /* let grid track shrink below intrinsic content width */
    .listed-grid { grid-template-columns: 1fr; gap: 18px; }
    .surf .sr { grid-template-columns: 16px 1fr; gap: 10px; padding: 12px 18px; }
    .surf .sr .sd { grid-column: 2; color: var(--muted); font-size: 12px; }
    .cr { grid-template-columns: 110px 1fr; padding: 12px 18px; }
  }
  @media (max-width: 640px) {
    /* Kebab takes over: hide inline nav, show toggle, dropdown on tap */
    .nav-toggle { display: inline-flex; }
    .nav {
      display: none;
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      background: var(--card);
      border: 1px solid var(--card-border);
      border-radius: 8px;
      padding: 10px 14px;
      flex-direction: column;
      gap: 12px;
      z-index: 100;
      min-width: 140px;
    }
    .nav.open { display: flex; }
    .nav a { font-size: 13px; padding: 4px 0; }
  }
  @media (max-width: 480px) {
    :root { --rhythm: 32px; }
    .page { padding: 0 20px; }
    .hero { padding-top: 28px; }
    .hero h1 { font-size: 30px; }
    .hdr { padding-top: 18px; }
    .ftr { flex-direction: column; align-items: flex-start; }
  }
</style>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P8LCWNV7');</script>
<!-- End Google Tag Manager -->
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P8LCWNV7"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

<div class="page">

  <header class="hdr">
    <a href="/" class="logo">/xenarch</a>
    <button class="nav-toggle" aria-label="Menu" aria-controls="primary-nav" aria-expanded="false">&#8942;</button>
    <nav class="nav" id="primary-nav">
      <a href="/gating" data-event="nav_gating">gating</a>
      <a href="/payments" data-event="nav_payments">payments</a>
      <a href="/agents" data-event="nav_agents">agents</a>
      <a href="https://docs.xenarch.com" target="_blank" rel="noopener" data-event="nav_docs">docs</a>
    </nav>
  </header>

  <main>

  <!-- HERO -->
  <section class="hero">
    <h1>No gas.<br>No fees.<br>Just USDC.</h1>
    <p class="hero-sub">The first payment rail where USDC is the only token anyone ever needs to hold. Open standard. 0% fee. Non-custodial.</p>
    <div class="hero-cta">
      <a href="https://docs.xenarch.com" class="btn primary" target="_blank" rel="noopener" data-event="cta_docs">Read the docs <span aria-hidden="true">&rarr;</span></a>
      <button type="button" class="btn secondary copy" aria-label="Copy install command" data-copy="npx @xenarch/agent-mcp" data-event="cta_install">
        <span class="pr">$</span><code>npx @xenarch/agent-mcp</code>
      </button>
    </div>
  </section>

  <!-- PILLARS — why this hasn't existed before -->
  <section>
    <div class="pillars">
      <div class="pillar">
        <div class="tag">no gas token</div>
        <h3>Hold USDC. Send USDC.</h3>
        <p>End of crypto wallet checklist. No ETH. No gas coin of any kind. No bridges, no swaps, no "first you need ETH to send USDC" chicken-and-egg.</p>
      </div>
      <div class="pillar">
        <div class="tag">no platform fee</div>
        <h3>0%. Forever.</h3>
        <p>Not a launch promo. There's no Xenarch contract in the money flow, so there's no surface to charge from. Structural, not promotional.</p>
      </div>
      <div class="pillar">
        <div class="tag">no custody</div>
        <h3>Wallet to wallet, direct</h3>
        <p>Xenarch never holds, signs for, or touches a cent. Every payment lands on-chain in your wallet &mdash; verifiable on Basescan.</p>
      </div>
    </div>
  </section>

  <!-- PRODUCTS — three ways to use the rail -->
  <section>
    <div class="sec-lbl">Three ways to use the rail</div>
    <div class="pcards">
      <a class="pcard" href="/gating" data-event="pcard_gating">
        <div class="tag">Gating</div>
        <h3>Your content trains AI. Make it pay.</h3>
        <p>Detect crawler traffic. Return HTTP 402. Settle in USDC per request &mdash; direct to your wallet. Works on any host.</p>
        <div class="pcard-meta">WordPress &middot; Joomla &middot; FastAPI &middot; Cloudflare Worker &middot; pay.json</div>
        <span class="pcard-cta">See gating &rarr;</span>
      </a>
      <a class="pcard" href="/payments" data-event="pcard_payments">
        <div class="tag">Payments <span class="status early">early access</span></div>
        <h3>Sell anything. Keep 100%.</h3>
        <p>Subscriptions, e-commerce, invoices, donations, tickets. Host it, embed it in your site, or call it from your API. Anyone &mdash; agent or human &mdash; pays in USDC.</p>
        <div class="pcard-meta">Hosted &middot; Embedded &middot; API &middot; SDK &middot; CMS plugins &middot; x402</div>
        <span class="pcard-cta">Join the waitlist &rarr;</span>
      </a>
      <a class="pcard" href="/agents" data-event="pcard_agents">
        <div class="tag">Agents</div>
        <h3>Let your agent spend. Without losing sleep.</h3>
        <p>Hard caps. Allowlisted scope. A signed receipt for every payment. Drops into Claude, Cursor, LangChain, CrewAI.</p>
        <div class="pcard-meta">MCP &middot; Python &middot; LangChain &middot; CrewAI &middot; AutoGen &middot; LangGraph</div>
        <span class="pcard-cta">See agent wallets &rarr;</span>
      </a>
    </div>
  </section>

  <!-- LANDSCAPE -->
  <section>
    <div class="sec-lbl">Landscape</div>
    <div class="card cmp">
      <div class="cr self"><span class="cn">xenarch</span><span class="ca">USDC &middot; 0% &middot; no gas &middot; non-custodial &middot; open standard &middot; any host</span></div>
      <div class="cr"><span class="cn">cloudflare ppc</span><span class="ca">gating only &middot; cloudflare-only &middot; custodial &middot; takes a cut</span></div>
      <div class="cr"><span class="cn">stripe MPP</span><span class="ca">closed protocol &middot; settles on Tempo (Stripe-co-owned L1) &middot; custodial &middot; Stripe pricing</span></div>
      <div class="cr"><span class="cn">tollbit</span><span class="ca">enterprise gating &middot; no micropayments &middot; licensing model</span></div>
    </div>
  </section>

  <!-- AGENT SURFACES -->
  <section>
    <div style="display:flex; align-items:flex-end; gap:12px; margin-bottom:14px;">
      <h2 class="sec-h2" style="margin:0; flex:1; min-width:0;">This site speaks to agents</h2>
      <span class="status live"><span class="dot"></span> live</span>
    </div>
    <div class="card surf">
      <div class="sr"><span class="live-dot"></span><span class="sp">/llms.txt</span><span class="sd">Entity summary, structured for LLMs</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">/.well-known/pay.json</span><span class="sd">Machine-readable pricing (open standard)</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">/.well-known/mcp.json</span><span class="sd">MCP server package + tools</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">/.well-known/ai-plugin.json</span><span class="sd">ChatGPT plugin manifest</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">HTTP Link: headers</span><span class="sd">Protocol-level agent discovery</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">schema.org JSON-LD</span><span class="sd">Organization, Service, FAQPage</span></div>
      <div class="sr"><span class="live-dot"></span><span class="sp">robots.txt</span><span class="sd">GPTBot, ClaudeBot, PerplexityBot &mdash; all allowed</span></div>
    </div>
  </section>

  <!-- FAQ -->
  <section>
    <div class="sec-lbl">Questions</div>
    <div class="card faq">
      <div class="qa"><div class="qa-q">What is x402?</div><div class="qa-a">Open protocol for resolving HTTP 402, governed by the Linux Foundation's x402 Foundation. Client signs an EIP-712 USDC payment authorization, sends it in the <code>X-Payment</code> header, retries. Settles on Base L2. <a href="/http-402">More on HTTP 402 &rarr;</a></div></div>
      <div class="qa"><div class="qa-q">How can payments be 0% fee?</div><div class="qa-a">Xenarch is not in the money flow. Every payment goes wallet-to-wallet on-chain. No Xenarch contract takes a cut, no balance sits with us. Structural, not promotional.</div></div>
      <div class="qa"><div class="qa-q">How can payments need no gas token?</div><div class="qa-a">USDC on Base is the only token you hold. The settlement layer handles on-chain submission so your wallet stays single-asset &mdash; no ETH, no SOL, no gas coin of any kind.</div></div>
      <div class="qa"><div class="qa-q">Is Xenarch a wallet?</div><div class="qa-a">No. Xenarch is the payment infrastructure between wallets you already control. Never holds, signs for, or touches funds. Every payment verifiable on Basescan.</div></div>
      <div class="qa"><div class="qa-q">Which network and asset?</div><div class="qa-a">USDC on Base mainnet, chain 8453. Direct wallet-to-wallet settlement. Verifiable on Basescan.</div></div>
    </div>
  </section>

  <!-- LISTED ON -->
  <section>
    <div class="sec-lbl">Listed on</div>
    <div class="listed-grid">
      <div>
        <div class="listed-cat">For agent developers</div>
        <div class="listed">
          <a href="https://smithery.ai/servers/xenarch/xenarch-mcp" target="_blank" rel="noopener" data-event="listed_smithery">smithery</a>
          <span class="sep">/</span>
          <a href="https://glama.ai/mcp/servers/xenarch-ai/xenarch-mcp" target="_blank" rel="noopener" data-event="listed_glama">glama</a>
          <span class="sep">/</span>
          <a href="https://www.npmjs.com/package/@xenarch/agent-mcp" target="_blank" rel="noopener" data-event="listed_npm">npm</a>
          <span class="sep">/</span>
          <a href="https://pypi.org/project/xenarch/" target="_blank" rel="noopener" data-event="listed_pypi">pypi</a>
          <span class="sep">/</span>
          <a href="https://github.com/xenarch-ai" target="_blank" rel="noopener" data-event="listed_github">github</a>
        </div>
      </div>
      <div>
        <div class="listed-cat">For publishers</div>
        <div class="listed">
          <a href="https://github.com/xenarch-ai/xenarch-plugins/tree/main/wordpress" target="_blank" rel="noopener" data-event="listed_wp">wordpress</a>
          <span class="sep">/</span>
          <a href="https://github.com/xenarch-ai/xenarch-plugins/tree/main/joomla" target="_blank" rel="noopener" data-event="listed_joomla">joomla</a>
          <span class="sep">/</span>
          <a href="https://pypi.org/project/xenarch/" target="_blank" rel="noopener" data-event="listed_pub_pypi">pypi</a>
          <span class="sep">/</span>
          <a href="https://github.com/xenarch-ai/xenarch-plugins" target="_blank" rel="noopener" data-event="listed_plugins">plugins</a>
        </div>
      </div>
    </div>
  </section>

  </main>

  <footer class="ftr">
    <div class="ftr-l">
      <a href="#" class="email-p" data-event="email" onclick="this.href='mai'+'lto:'+'hello'+'@'+'xenarch.com';return true;">moc.hcranex@olleh</a>
      <noscript><span style="color:var(--muted);font-size:12px;">hello [at] xenarch.com</span></noscript>
      <a href="https://github.com/xenarch-ai" target="_blank" rel="noopener" aria-label="Xenarch on GitHub" data-event="github_ftr">
        <svg class="gh" viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
      </a>
    </div>
    <div class="ftr-r">
      <a href="/gating" data-event="ftr_gating">gating</a>
      <span class="sep">/</span>
      <a href="/payments" data-event="ftr_payments">payments</a>
      <span class="sep">/</span>
      <a href="/agents" data-event="ftr_agents">agents</a>
      <span class="sep">/</span>
      <a href="https://docs.xenarch.com" target="_blank" rel="noopener" data-event="docs_ftr">docs</a>
      <span class="sep">/</span>
      <a href="/terms">terms</a>
      <span class="sep">/</span>
      <a href="/privacy">privacy</a>
    </div>
  </footer>

</div>

<script>
document.querySelectorAll('[data-copy]').forEach(function(el){
  el.addEventListener('click',function(e){
    e.preventDefault();
    var t=this.getAttribute('data-copy');
    navigator.clipboard.writeText(t);
    this.setAttribute('data-ok','');
    var s=this;
    setTimeout(function(){s.removeAttribute('data-ok')},1500);
  });
  el.addEventListener('keydown',function(e){if(e.key==='Enter')this.click()});
});

// Mobile nav kebab toggle
(function(){
  var btn = document.querySelector('.nav-toggle');
  var nav = document.getElementById('primary-nav');
  if (!btn || !nav) return;
  btn.addEventListener('click', function(e){
    e.stopPropagation();
    var open = nav.classList.toggle('open');
    btn.setAttribute('aria-expanded', open ? 'true' : 'false');
  });
  document.addEventListener('click', function(e){
    if (!e.target.closest('.hdr')) {
      nav.classList.remove('open');
      btn.setAttribute('aria-expanded', 'false');
    }
  });
})();
</script>

<!-- WebMCP — register Xenarch tools so MCP-aware browsers can surface them.
     Spec: https://github.com/webmcp/webmcp -->
<script>
(function(){
  if (!('navigator' in window) || !navigator.modelContext || typeof navigator.modelContext.registerTool !== 'function') return;
  var TOOLS = [
    {
      name: 'xenarch_check_gate',
      description: 'Check if a URL or domain has an x402 payment gate. Returns gate status, price in USD, seller wallet, network, asset, and protocol. Read-only.',
      inputSchema: {
        type: 'object', required: ['url'],
        properties: { url: { type: 'string', description: 'Fully-qualified URL or bare domain.' } }
      }
    },
    {
      name: 'xenarch_pay',
      description: 'Pay for x402-gated content or APIs in USDC on Base L2. Direct wallet-to-wallet settlement; non-custodial — Xenarch never holds funds.',
      inputSchema: {
        type: 'object', required: ['url'],
        properties: {
          url: { type: 'string' },
          max_usd: { type: 'string', description: 'Optional client-side budget cap.' }
        }
      }
    },
    {
      name: 'xenarch_get_history',
      description: 'List past payments by this wallet. Filterable by domain. Read-only.',
      inputSchema: {
        type: 'object',
        properties: {
          domain: { type: 'string' },
          limit: { type: 'integer', default: 100 }
        }
      }
    }
  ];
  var INSTALL_HINT = 'Install the Xenarch MCP server to invoke this tool: npx @xenarch/agent-mcp';
  TOOLS.forEach(function(t){
    try {
      navigator.modelContext.registerTool({
        name: t.name,
        description: t.description,
        inputSchema: t.inputSchema,
        invoke: function(){ return Promise.resolve({ note: INSTALL_HINT, docs: 'https://docs.xenarch.com/quickstart-agent' }); }
      });
    } catch (e) { /* WebMCP API still experimental — ignore registration errors */ }
  });
})();
</script>
</body>
</html>
