PageSourceSearch

https://xagent.id/

html xagent.id collected 2026-10-05 06:32:08 UTC 52,095 bytes, 657 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width,initial-scale=1">
6  <title>xAgent ID · So AI agents can find, trust, and act on your business</title>
7  <meta name="description" content="Create a source-backed business Agent ID from any public company website, then connect it to evidence-backed SEO, AEO, GEO and AGO improvement.">
8  <link rel="canonical" href="/">
9  <link rel="alternate" type="application/json" href="/.well-known/xagent-install.json" title="Production installation manifest">
10  <link rel="alternate" type="application/json" href="/.well-known/agent-card.json" title="A2A Agent Card">
11  <link rel="alternate" type="text/plain" href="/llms.txt" title="Agent-readable service index">
12  <link rel="service-desc" type="application/json" href="/agent/openapi.json" title="OpenAPI">
13  <link rel="icon" type="image/svg+xml" href="/assets/favicon.svg"><link rel="icon" type="image/png" href="/assets/logo.png">
14  <link rel="stylesheet" href="/assets/foundation.css?v=visual-20260904">
15  <link rel="stylesheet" href="/assets/card.css?v=clip-20260904">
16  <link rel="stylesheet" href="/assets/agent-home.css?v=outcome-20260904c">
17  <link rel="stylesheet" href="/assets/ui-system.css?v=brand-20260904">
18  
18<script src="/assets/company-card-component.js?v=company-logo-20260921" defer></script>
18
19  
19<script src="/assets/i18n-catalog.js?v=plans-20260904" defer></script>
19
20  
20<script src="/assets/i18n.js?v=audit-20260818" defer></script>
20
21  
21<script type="application/ld+json">
22  {
23    "@context":"https://schema.org",
24    "@type":"SoftwareApplication",
25    "name":"xAgent ID",
26    "applicationCategory":"DeveloperApplication",
27    "operatingSystem":"Any platform with Node.js 20 or later",
28    "description":"A customer-controlled Organization Digital Twin surface for verified identity, monitoring, agent access and bounded operations.",
29    "offers":{
30      "@type":"AggregateOffer",
31      "priceCurrency":"USD",
32      "lowPrice":"12.99",
33      "highPrice":"199.00",
34      "offerCount":"4"
35    },
36    "potentialAction":{
37      "@type":"InstallAction",
38      "target":"/.well-known/xagent-install.json"
39    }
40  }
41  </script>
41
42  
42<script type="application/ld+json">
43  {
44    "@context":"https://schema.org",
45    "@type":"Organization",
46    "name":"xAgent ID",
47    "url":"https://xagent.id",
48    "parentOrganization":{"@type":"Organization","name":"twin3","url":"https://twin3.ai"},
49    "sameAs":["https://github.com/twin3-ai","https://twin3.ai"],
50    "description":"A customer-controlled Organization Digital Twin surface for verified identity, monitoring, agent access and bounded operations.",
51    "contactPoint":{
52      "@type":"ContactPoint",
53      "contactType":"customer support",
54      "email":"[email protected]",
55      "url":"https://xagent.id/contact"
56    }
57  }
58  </script>
58
59</head>
60<body class="agent-home" data-audience="agent">
61  <a class="skip-link" href="#install">Skip to installation</a>
62
63  <header class="site-header">
64    <nav class="nav shell" aria-label="Primary navigation">
65      <a class="brand" href="/" aria-label="xAgent ID"><img class="brand-logo" src="/assets/logo.svg" alt="xAgent ID" width="146" height="32"><span class="brand-name sr-only"><b>xAgent ID</b></span></a>
66      <div class="nav-links" aria-label="Desktop navigation">
67        <a href="#product">Product</a>
68        <a href="#install">Solutions</a>
69        <a href="#security">Trust</a>
70        <a href="#pricing">Pricing</a>
71        <a href="/dashboard">Sign in</a>
72      </div>
73      <details class="mobile-nav" id="mobile-nav">
74        <summary aria-label="Open navigation">Menu</summary>
75        <div>
76          <a href="#product">Product</a>
77          <a href="#install">Install</a>
78          <a href="#security">Security</a>
79          <a href="#pricing">Plans</a>
80          <a href="/dashboard">Dashboard</a>
81        </div>
82      </details>
83    </nav>
84  </header>
85
86  <main>
87    <section class="hero shell" aria-labelledby="home-title">
88      <div class="hero-copy-block">
89        <p class="kicker">A website operating layer for the Agent web</p>
90        <h1 id="home-title">Turn your website into an Agent-ready business card</h1>
91        <p class="hero-copy">Enter a public website address. We read the pages a normal visitor can see and create a source-backed business Agent ID that explains who the company is, what it publishes and what an AI system can ask about it.</p>
92        <form class="hero-card" id="hero-card" novalidate
93              toolname="create_business_agent_id"
94              tooldescription="Create a source-backed business Agent ID from any public company website.">
95          <label class="sr-only" for="hero-card-url">Your website address</label>
96          <span class="hero-card-icon" aria-hidden="true">◎</span>
97          <input id="hero-card-url" name="url" type="text" inputmode="url" autocomplete="url"
98                 placeholder="yoursite.com" required
99                 toolparamdescription="Public HTTPS address of the company website to read">
100          <button class="button primary" type="submit" data-card-submit>Create business Agent ID</button>
101        </form>
102        <p class="hero-patent-applications">Patent Pending · US provisional applications 64/122,848 · 64/142,921 · 64/142,927 · 64/142,929 · 64/142,930</p>
103        <div class="hero-actions">
104          <a class="button secondary" href="#security">See how trust works <span aria-hidden="true">→</span></a>
105        </div>
106        <ul class="trust-list" aria-label="Installation safety boundaries">
107          <li>Methodology is public</li>
108          <li>Owner confirmation remains explicit</li>
109          <li>No source or deployment access</li>
110        </ul>
111      </div>
112
113      <div class="business-card-stage" data-company-card-carousel data-company-card-carousel-source="/api/featured-cards" data-carousel-state="ready" aria-label="Featured business Agent IDs">
114        <div class="business-card-stage-head">
115          <span><i aria-hidden="true"></i>Business Agent ID</span>
116        </div>
117        <div class="business-card-coverflow" data-coverflow-viewport role="region" aria-roledescription="carousel" aria-label="Featured companies">
118          
118<script type="application/json" data-featured-card-preload>[{"host":"nvidia.com","source_url":"/api/featured-card?host=nvidia.com","detail_url":"/nvidia.com","preload":{"host":"nvidia.com","name":"NVIDIA","brand_identity":{"theme":{"primary":"#28431c","accent":"#74b71b"},"logo":{"url":"https://www.nvidia.com/content/dam/en-zz/Solutions/about-nvidia/nvidia-brochure/images/nvidia-logo-black.svg"}}}},{"host":"tsmc.com","source_url":"/api/featured-card?host=tsmc.com","detail_url":"/tsmc.com","preload":{"host":"tsmc.com","name":"TSMC","brand_identity":{"theme":{"primary":"#3f1421","accent":"#c8102e"},"logo":{"url":"https://www.tsmc.com/themes/custom/bootstrap_sass/images/logo.png"}}}},{"host":"tesla.com","source_url":"/api/featured-card?host=tesla.com","detail_url":"/tesla.com","preload":{"host":"tesla.com","name":"Tesla","brand_identity":{"theme":{"primary":"#000000","accent":"#cc0000"},"logo":{"url":"https://www.tesla.com/themes/custom/tesla_frontend/assets/favicons/favicon-196x196.png"}}}}]</script>
118
119          <p class="business-card-coverflow-message" data-coverflow-message hidden>Loading featured company cards</p>
120          <div class="business-card-coverflow-track" data-coverflow-track></div>
121        </div>
122        <div class="business-card-carousel-controls" aria-label="Featured company card controls">
123          <button type="button" class="business-card-carousel-arrow" data-coverflow-previous aria-label="Previous company card" disabled>←</button>
124          <div class="business-card-carousel-dots" data-coverflow-dots aria-label="Choose a company card"></div>
125          <button type="button" class="business-card-carousel-arrow" data-coverflow-next aria-label="Next company card" disabled>→</button>
126        </div>
127        <p class="business-card-carousel-status sr-only" data-coverflow-status aria-live="polite">Loading featured company cards</p>
128      </div>
129    </section>
130
131    <section class="outcome-section" id="product" aria-labelledby="outcome-title" data-reveal>
132      <div class="shell">
133        <p class="kicker centered">One public URL. One machine-readable business profile.</p>
134        <h2 id="outcome-title">From being visible to being usable.</h2>
135        <div class="outcome-grid">
136          <article><span>01</span><h3>Searchable</h3><p>Technical SEO, crawlability and public discovery remain the foundation.</p></article>
137          <article><span>02</span><h3>Answerable</h3><p>Clear entities, structured content and source evidence help answer systems understand the site.</p></article>
138          <article><span>03</span><h3>Recommendable</h3><p>Fixed-question tests and citation evidence show where the brand appears and where it does not.</p></article>
139          <article><span>04</span><h3>Operable</h3><p>Agent ID, A2A, MCP and accessible interfaces prepare approved tasks for execution.</p></article>
140        </div>
141      </div>
142    </section>
143
144    <section class="install-section" id="install" aria-labelledby="install-title" data-reveal>
145      <div class="shell">
146        <div class="section-intro">
147          <p class="kicker">One identity, two ways to use it</p>
148          <h2 id="install-title">Agents discover it. Owners control it.</h2>
149          <p>An Agent reads the installation contract and prepares a bounded plan. The website owner reviews the exact permissions and approves every write.</p>
150        </div>
151
152        <div class="audience-tabs" role="tablist" aria-label="Installation audience">
153          <button id="agent-tab" type="button" role="tab" aria-selected="true" aria-controls="agent-panel" data-audience-tab="agent">
154            <b>For AI Agents</b><small>Discover and prepare</small>
155          </button>
156          <button id="human-tab" type="button" role="tab" tabindex="-1" aria-selected="false" aria-controls="human-panel" data-audience-tab="human">
157            <b>For website owners</b><small>Review and authorize</small>
158          </button>
159        </div>
160
161        <div class="audience-panel" id="agent-panel" role="tabpanel" aria-labelledby="agent-tab" data-audience-panel="agent">
162          <div class="audience-summary">
163            <p class="kicker">Canonical Agent entrypoint</p>
164            <h3>Read the manifest first.</h3>
165            <p>Fetch the target-bound manifest, verify the published release in CLI preflight, create a no-side-effect plan and stop at the owner approval gate.</p>
166            <a class="manifest-card" href="/.well-known/xagent-install.json?url=https%3A%2F%2Fexample.com" data-manifest-link>
167              <span><b>Production install manifest</b><small>GET · application/json · no side effect</small></span>
168              <strong>Open</strong>
169            </a>
170          </div>
171          <div class="contract-list">
172            <a href="/.well-known/agent-card.json"><span><b>A2A Agent Card</b><small>Agent ID, interfaces and implemented skills</small></span><strong>JSON</strong></a>
173            <a href="/auth.md"><span><b>Authority model</b><small>Credentials, permissions and owner gates</small></span><strong>MD</strong></a>
174            <a href="/skill.md"><span><b>Installation skill</b><small>Canonical sequence and stop conditions</small></span><strong>MD</strong></a>
175            <a href="/agent-quickstart.md"><span><b>Quickstart</b><small>Shortest safe path from discovery to verification</small></span><strong>MD</strong></a>
176            <details class="advanced-contracts">
177              <summary>Advanced protocol contracts</summary>
178              <div>
179                <a href="/agent/openapi.json">OpenAPI <span>HTTP operations</span></a>
180                <a href="/agent/mcp.json">MCP <span>Local stdio tools backed by this API</span></a>
181                <div class="protocol-endpoint"><b>A2A task</b><code>POST /a2a/v1/message:send</code></div>
182                <a href="/api/site_agents/install_guide?url=https%3A%2F%2Fexample.com">Full install guide <span>No-side-effect plan</span></a>
183              </div>
184            </details>
185          </div>
186        </div>
187
188        <div class="audience-panel" id="human-panel" role="tabpanel" aria-labelledby="human-tab" data-audience-panel="human" hidden>
189          <div class="audience-summary">
190            <p class="kicker">Website owner control</p>
191            <h3>Nothing changes before you approve it.</h3>
192            <p>Use the exact HTTPS domain you control. The dry run names every local file, permission and rollback action before installation.</p>
193          </div>
194          <ol class="owner-steps">
195            <li><span>1</span><div><b>Inspect</b><p>Review the release, target domain, files and requested grants.</p></div></li>
196            <li><span>2</span><div><b>Approve</b><p>Choose the bounded work your own Agent or engineer may perform.</p></div></li>
197            <li><span>3</span><div><b>Verify</b><p>Publish domain proof and compare the result with an independent public refetch.</p></div></li>
198          </ol>
199        </div>
200
201        <div class="install-wizard" data-install-wizard>
202          <ol class="wizard-progress" aria-label="Installation progress">
203            <li><button type="button" data-wizard-step="website" aria-current="step"><span>1</span><b>Website</b></button></li>
204            <li><button type="button" data-wizard-step="permissions" disabled><span>2</span><b>Permissions</b></button></li>
205            <li><button type="button" data-wizard-step="install" disabled><span>3</span><b>Install</b></button></li>
206            <li><button type="button" data-wizard-step="verify" disabled><span>4</span><b>Verify</b></button></li>
207            <li><button type="button" data-wizard-step="dashboard" disabled><span>5</span><b>Dashboard</b></button></li>
208          </ol>
209
210          <div class="wizard-frame">
211            <section class="wizard-panel" data-wizard-panel="website" aria-labelledby="wizard-website-title">
212              <div class="wizard-copy">
213                <p class="kicker">Step 1 · Website</p>
214                <h3 id="wizard-website-title">Turn a one-time check into a verified website identity.</h3>
215                <p>Load the target-bound production plan for the exact HTTPS website you control. Nothing is written in this step.</p>
216              </div>
217              <div class="command-console wizard-console">
218                <div class="console-bar"><span>xAgent ID plan</span><b id="release-version">Checking</b></div>
219                <label for="target-url">Website you control</label>
220                <div class="target-input-row">
221                  <input id="target-url" type="url" inputmode="url" placeholder="https://example.com" autocomplete="url" spellcheck="false" aria-describedby="install-status">
222                  <button type="button" id="load-manifest">Load plan</button>
223                </div>
224                <p class="manifest-status" id="install-status" role="status" aria-live="polite">Loading production install manifest…</p>
225                <div class="manifest-foot"><span id="manifest-integrity">Release metadata pending</span><a href="/.well-known/xagent-install.json?url=https%3A%2F%2Fexample.com" data-manifest-link>Open JSON</a></div>
226              </div>
227            </section>
228
229            <section class="wizard-panel" data-wizard-panel="permissions" aria-labelledby="wizard-permissions-title" hidden>
230              <div class="wizard-copy">
231                <p class="kicker">Step 2 · Permissions</p>
232                <h3 id="wizard-permissions-title">Review the minimum access before installing.</h3>
233                <p>The list comes from the same production manifest used by the installer. Private keys remain with you, and the mother service receives no source or deployment access.</p>
234              </div>
235              <div>
236                <ul class="permission-list" data-wizard-permissions></ul>
237                <dl class="wizard-boundaries">
238                  <div><dt>Default authority</dt><dd>Read only</dd></div>
239                  <div><dt>Website writes</dt><dd>Owner approval required</dd></div>
240                  <div><dt>Rollback</dt><dd>Required for bounded changes</dd></div>
241                </dl>
242              </div>
243              <div class="wizard-actions"><button type="button" class="wizard-back" data-wizard-back>Back</button><button type="button" class="wizard-next" data-wizard-next="install">Continue to install</button></div>
244            </section>
245
246            <section class="wizard-panel" data-wizard-panel="install" aria-labelledby="wizard-install-title" hidden>
247              <div class="wizard-copy">
248                <p class="kicker">Step 3 · Install</p>
249                <h3 id="wizard-install-title">Install the website layer, then connect your application stack.</h3>
250                <p>JavaScript/Node installs the website identity. Python installs the production customer API SDK after the website installation; it does not replace the website installer.</p>
251              </div>
252              <div>
253                <div class="install-methods" role="tablist" aria-label="SDK language">
254                  <button type="button" role="tab" aria-selected="true" data-install-method="javascript"><b>JavaScript/Node</b><small>Website installer · Recommended</small></button>
255                  <button type="button" role="tab" aria-selected="false" tabindex="-1" data-install-method="python"><b>Python</b><small>Customer API SDK · Production PyPI</small></button>
256                </div>
257                <div data-install-method-panel="javascript">
258                  <div class="command-console">
259                    <ol class="command-list">
260                      <li><span>1</span><div><small>Dry run. No side effect.</small><code data-workflow-id="dry_run">Loading command…</code></div><button class="copy" type="button" data-copy-workflow="dry_run">Copy</button></li>
261                      <li><span>2</span><div><small>Owner-approved apply.</small><code data-workflow-id="apply">Loading command…</code></div><button class="copy" type="button" data-copy-workflow="apply">Copy</button></li>
262                      <li><span>3</span><div><small>Public domain verification.</small><code data-workflow-id="domain_verify">Loading command…</code></div><button class="copy" type="button" data-copy-workflow="domain_verify">Copy</button></li>
263                      <li><span>4</span><div><small>Read-only managed inspection.</small><code data-workflow-id="activate">Loading command…</code></div><button class="copy" type="button" data-copy-workflow="activate">Copy</button></li>
264                    </ol>
265                  </div>
266                </div>
267                <div class="python-preview" data-install-method-panel="python" hidden>
268                  <span class="preview-badge">Production PyPI</span>
269                  <p>Install the customer API SDK from the official PyPI release.</p>
270                  <div class="preview-command"><code id="python-install-command">python -m pip install xagent-id</code><button type="button" class="copy" data-copy-target="#python-install-command">Copy</button></div>
271                  <p class="preview-boundary">Use Python for customer API calls after the JavaScript/Node website layer is installed and verified.</p>
272                </div>
273              </div>
274              <div class="wizard-actions"><button type="button" class="wizard-back" data-wizard-back>Back</button><button type="button" class="wizard-next" data-wizard-next="verify">I installed the website layer</button></div>
275            </section>
276
277            <section class="wizard-panel" data-wizard-panel="verify" aria-labelledby="wizard-verify-title" hidden>
278              <div class="wizard-copy">
279                <p class="kicker">Step 4 · Verify</p>
280                <h3 id="wizard-verify-title">Confirm the public installation independently.</h3>
281                <p>xAgent ID refetches the website proof from the public network. The browser does not submit a success claim, credential or event.</p>
282              </div>
283              <div class="verification-card">
284                <span class="verification-mark" aria-hidden="true">✓</span>
285                <div><b>Public installation status</b><p data-verification-status role="status" aria-live="polite">Run the check after deploying the website layer.</p></div>
286                <button type="button" data-verify-install>Check installation</button>
287              </div>
288              <div class="wizard-actions"><button type="button" class="wizard-back" data-wizard-back>Back</button><button type="button" class="wizard-next" data-wizard-next="dashboard" disabled>Continue to dashboard</button></div>
289            </section>
290
291            <section class="wizard-panel" data-wizard-panel="dashboard" aria-labelledby="wizard-dashboard-title" hidden>
292              <div class="wizard-copy">
293                <p class="kicker">Step 5 · Dashboard</p>
294                <h3 id="wizard-dashboard-title">Your verified baseline is ready.</h3>
295                <p>Use the customer-held identity to create a one-time Dashboard pairing URL. The Dashboard starts with the verified website state and the next evidence-backed improvement.</p>
296              </div>
297              <div class="dashboard-unlock">
298                <b>Create a secure one-time Dashboard link</b>
299                <div class="preview-command"><code data-workflow-id="dashboard_login">Loading command…</code><button class="copy" type="button" data-copy-workflow="dashboard_login">Copy</button></div>
300                <a class="button primary" href="/dashboard">Open Dashboard after pairing</a>
301                <small>Installation proves technical readiness; it does not guarantee ranking, citation, recommendation or revenue.</small>
302              </div>
303              <div class="wizard-actions"><button type="button" class="wizard-back" data-wizard-back>Back</button></div>
304            </section>
305          </div>
306        </div>
307      </div>
308    </section>
309
310    <section class="proof-section" id="proof" aria-labelledby="proof-title" data-reveal>
311      <div class="shell proof-layout">
312        <div class="section-intro">
313          <p class="kicker">Behind the card</p>
314          <h2 id="proof-title">The identity card is backed by a real installation contract.</h2>
315          <p>The card is the readable result. This is the operational layer underneath it: release, permissions, evidence and rollback remain explicit for owners and Agents.</p>
316        </div>
317        <div class="product-window" id="product-proof" aria-label="Live production installation contract">
318          <div class="window-bar">
319            <span><i aria-hidden="true"></i>xagent.id / audit report</span>
320            <b id="hero-release">Live preview</b>
321          </div>
322          <div class="window-title">
323            <div class="identity-pair">
324              <span class="identity-cell"><small>Verified domain</small><strong id="hero-host">example.com</strong></span>
325              <span class="pair-mark" aria-hidden="true">X</span>
326              <span class="identity-cell"><small>xAgent&nbsp;ID</small><strong class="identity-alias">Issued at install</strong></span>
327            </div>
328            <span class="contract-state" id="hero-state">Loading</span>
329          </div>
330          <dl class="contract-facts">
331            <div><dt>Package</dt><dd id="hero-package">From production manifest</dd></div>
332            <div><dt>Default access</dt><dd>Read only</dd></div>
333            <div><dt>Allowed writes</dt><dd id="hero-writes">Owner-approved AI files only</dd></div>
334            <div><dt>Proof</dt><dd>Receipt + public refetch + rollback</dd></div>
335          </dl>
336          <div class="contract-progress" aria-label="Connection lifecycle">
337            <span class="is-current">Discover</span><span>Approve</span><span>Verify</span><span>Improve</span>
338          </div>
339          <div class="discovery-strip" aria-label="Who discovers the connected website">
340            <span><small>Human discovery</small><b>Search &amp; AI answers</b><em>SEO · AEO</em></span>
341            <span class="strip-tie" aria-hidden="true">⇄</span>
342            <span><small>Agent discovery</small><b>Buyer &amp; service Agents</b><em>ASO · A2A · Agent ID</em></span>
343          </div>
344          <a href="/.well-known/xagent-install.json?url=https%3A%2F%2Fexample.com" data-manifest-link>Read the live manifest <span aria-hidden="true">→</span></a>
345        </div>
346      </div>
347    </section>
348
349    <section class="loop-section" id="architecture" aria-labelledby="loop-title" data-reveal>
350      <div class="shell">
351        <div class="section-intro centered-copy">
352          <p class="kicker">Trust and control</p>
353          <h2 id="loop-title">Useful information should also be accountable information.</h2>
354          <p>Every report points back to a methodology, a schema version and the evidence available at the time of review. Candidate claims remain candidate claims until an owner confirms them.</p>
355        </div>
356        <ol class="loop-flow">
357          <li><span>01</span><div><h3>Connect</h3><p>Verify the domain and establish the customer-owned Agent identity.</p></div></li>
358          <li><span>02</span><div><h3>Measure</h3><p>Audit SEO, AEO, GEO and AGO with observed evidence kept separate from missing data.</p></div></li>
359          <li><span>03</span><div><h3>Improve</h3><p>Send a bounded recommendation to the website Agent for local approval and execution.</p></div></li>
360          <li><span>04</span><div><h3>Prove</h3><p>Compare the site receipt with a public refetch and retain a rollback path.</p></div></li>
361        </ol>
362      </div>
363    </section>
364
365    <section class="security-section" id="security" aria-labelledby="security-title" data-reveal>
366      <div class="shell security-layout">
367        <div>
368          <p class="kicker">Designed for real customer websites</p>
369          <h2 id="security-title">Your website remains yours.</h2>
370          <p>xAgent ID is not a remote administrator. It operates through public reads, customer-held credentials and explicitly approved AI-related files.</p>
371          <p class="policy-links"><a href="/privacy">Privacy</a><a href="/terms">Terms</a><a href="/contact">Support</a></p>
372        </div>
373        <dl class="security-facts">
374          <div><dt>Identity boundary</dt><dd><b>Portable website Agent alias</b><span>It is not Google Agent Identity or a Google principal.</span></dd></div>
375          <div><dt>Default</dt><dd><b>Read only</b><span>Public pages and published Agent contracts.</span></dd></div>
376          <div><dt>Optional write</dt><dd><b>Bounded</b><span>Only owner-allowlisted AI files, with approval.</span></dd></div>
377          <div><dt>Never requested</dt><dd><b>General control</b><span>No broad source repository or deployment access.</span></dd></div>
378          <div><dt>Outcome claims</dt><dd><b>Evidence only</b><span>Missing data stays pending. Synthetic outcomes do not count.</span></dd></div>
379        </dl>
380      </div>
381    </section>
382
383    <section class="pricing-section" id="pricing" aria-labelledby="pricing-title" data-reveal>
384      <div class="shell">
385        <div class="section-intro pricing-intro">
386          <div class="pricing-heading-row"><div><p class="kicker">Plans</p><h2 id="pricing-title">Readable, then measured, then transactable, then governed</h2></div><a class="pricing-machine-link" href="/agent/pricing.json">Machine-readable pricing</a></div>
387          <p>Start by making sure an agent can read you and cannot mistake you for someone else. Add measurement when you need to know whether it came. Add a governed channel when agents should be able to reach you. Add bounded execution when every change has to be reversible and provable.</p>
388        </div>
389        <div class="plan-compare-wrap" role="region" aria-label="Compare xAgent ID plans" tabindex="0">
390          <table class="plan-compare">
391            <caption><span class="plan-dot included" aria-hidden="true"></span> Included <span class="plan-dash" aria-hidden="true">—</span> Not included</caption>
392            <thead><tr>
393              <th scope="col">Capability</th>
394              <th scope="col" data-plan-id="identity" data-price-usd="12.99"><b class="plan-outcome">Be readable, and unmistakably you</b><span>Identity</span><strong>US$12.99</strong><small>monthly · per verified domain · GA</small><a class="plan-cta" href="/card?plan=identity&amp;source=homepage_pricing" data-pricing-plan="identity">Create Agent ID</a></th>
395              <th class="recommended" scope="col" data-plan-id="monitor" data-price-usd="29.99"><em>Recommended</em><b class="plan-outcome">Know whether AI came, and what it read</b><span>Monitor</span><strong>US$29.99</strong><small>monthly · per verified domain · GA</small><a class="plan-cta" href="/claim?plan=monitor&amp;source=homepage_pricing" data-pricing-plan="monitor">Activate Monitor</a></th>
396              <th scope="col" data-plan-id="agentic" data-price-usd="99"><b class="plan-outcome">Let agents reach you — nothing publishes until you approve it</b><span>Agentic</span><strong>US$99</strong><small>monthly · per verified domain · Early Access</small><a class="plan-cta" href="/claim?plan=agentic&amp;source=homepage_pricing" data-pricing-plan="agentic">Activate Agentic</a></th>
397              <th scope="col" data-plan-id="operate" data-price-usd="199"><b class="plan-outcome">Change things safely, and prove it</b><span>Operate</span><strong>US$199</strong><small>monthly · per verified domain · Enterprise Pilot</small><a class="plan-cta" href="/claim?plan=operate&amp;source=homepage_pricing" data-pricing-plan="operate">Activate Operate</a></th>
398            </tr></thead>
399            <tbody>
400              <tr data-plan-feature="identity"><th scope="row"><b>Your official Agent ID</b><small>One identity bound to one verified domain, so an agent can tell you from someone claiming to be you</small></th><td>
400<span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
401              <tr data-plan-feature="profile"><th scope="row"><b>A profile a machine can read</b><small>Identity, capabilities and sources published in the formats agents actually fetch</small></th><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
402              <tr data-plan-feature="files"><th scope="row"><b>Installable files generated from your site</b><small>llms.txt, Agent Card, schema and WebMCP built from your own public text, with the three fastest fixes; you install them, re-generate any time</small></th><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
403              <tr data-plan-feature="monitoring"><th scope="row"><b>Proof that AI crawlers came</b><small>Which AI crawlers requested your site, when, and what they got, read from your own CDN logs</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
404              <tr data-plan-feature="history"><th scope="row"><b>A record of what changed</b><small>Receipts show what changed on your public surfaces and what was rechecked afterwards</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
405              <tr data-plan-feature="report"><th scope="row"><b>What to fix first, on the audit you run</b><small>A scheduled monthly report is not sent yet. Missing evidence stays pending, not zero.</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
406              <tr data-plan-feature="requests"><th scope="row"><b>An inbox agents can use</b><small>Other agents send scoped, structured requests through a governed channel instead of a contact form</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
407              <tr data-plan-feature="knowledge"><th scope="row"><b>Nothing published without your approval</b><small>Proposed changes stay pending until a person approves them</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
408              <tr data-plan-feature="attribution"><th scope="row"><b>Enquiries traced back to the AI answer</b><small>A sensor on your own pages recognises visitors arriving from an AI assistant and attributes what they do next</small></th><td>
408<span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
409              <tr data-plan-feature="execution"><th scope="row"><b>Reversible changes with signed proof</b><small>Allowlisted AI files only, re-verified by an independent public fetch. One-step rollback with a signed receipt, once a change is applied</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
410              <tr data-plan-feature="edge"><th scope="row"><b>Markup applied in your own edge worker</b><small>Structured markup is rewritten into the response stream by a worker you run, so no source-code access changes hands</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
411              <tr data-plan-feature="policy"><th scope="row"><b>Enterprise controls, and no write access to your site</b><small>Approval separation and operating guardrails. The parent service never holds credentials to your website</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
412              <tr data-plan-feature="governance"><th scope="row"><b>Your own governance policy</b><small>Approval separation, evidence retention and audit export set by you. An inspection priority lane for due work; finishing inside 24 hours is not promised</small></th><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dash" aria-label="Not included">—</span></td><td><span class="plan-dot included"><span class="sr-only">Included</span></span></td></tr>
413            </tbody>
414          </table>
415        </div>
416        <div class="mobile-plan-list" id="mobile-plan-list" aria-label="xAgent ID plans on mobile"></div>
417        <div class="pricing-enterprise-callout"><p class="kicker">Google Cloud</p><h3>Already building your AI stack on Google Cloud?</h3><p>Google Agent Identity requires separate Google Cloud setup; binding stays pending until Google evidence is verified. Google Cloud Marketplace purchase is unavailable. Operate checkout is self-serve after domain verification; checkout does not set up Google identity or email execution receipts.</p><div class="pricing-enterprise-actions"><a class="btn primary" href="/claim?plan=operate&amp;source=gcp_enterprise">Activate Operate</a><a class="btn secondary" href="/contact?topic=google_cloud">Talk to us about Google Cloud</a></div></div><p class="plan-footnotes">Paid features require a verified domain and confirmed payment. Data sources, inboxes and customer runtimes must be configured for the features that use them; checkout alone does not make them ready. Missing evidence stays unknown or pending. Stripe processes payment details. Subscription changes use Stripe's billing portal; displayed proration applies and cancellation defaults to the end of the paid period.</p>
418        <div class="pricing-next"><span class="pricing-policy-links"><a href="/terms">Terms</a><a href="/privacy">Privacy</a><a href="/refund">Cancellation &amp; refunds</a><a href="/contact">Contact</a></span></div>
419      </div>
420    </section>
421  </main>
422
423  <section class="showcase-section" id="install-showcase" hidden>
424    <div class="shell"><p class="kicker">Installed and verified</p><h2>Customer-owned website Agents.</h2><p id="showcase-note"></p><ul id="showcase-wall"></ul><p class="showcase-boundary">A site appears only while it opts in through its own public Agent ID file. Listing is not an endorsement, partnership or paid placement.</p></div>
425  </section>
426
427  <footer class="site-footer">
428    <div class="shell footer-main">
429      <a class="brand" href="/" aria-label="xAgent ID"><img class="brand-logo" src="/assets/logo.svg" alt="xAgent ID" width="146" height="32"><span class="brand-name sr-only"><b>xAgent ID</b></span></a>
430      <div><b>Product</b><a href="#install">Install</a><a href="#security">Security</a><a href="#pricing">Plans</a><a href="/dashboard">Dashboard</a></div>
431      <div><b>For Agents</b><a href="/.well-known/xagent-install.json">Install manifest</a><a href="/.well-known/agent-card.json">A2A Agent Card</a><a href="/llms.txt">llms.txt</a><a href="/agent/openapi.json">OpenAPI</a></div>
432      <div><b>Company</b><a href="/privacy">Privacy</a><a href="/terms">Terms</a><a href="/contact">Support</a><a href="https://twin3.ai/" rel="external">twin3.ai</a></div>
433    </div>
434    <div class="shell footer-bottom"><span>© 2026 twin3.ai</span><span>Customer-owned execution. Evidence-backed verification.</span></div>
435  </footer>
436
437  
437<script src="/assets/install-wizard.js?v=20260819"></script>
437
438  
438<script src="/assets/webmcp-onboarding.js?v=webmcp-challenge-20260902-4"></script>
438
439  
439<script>
440  (function () {
441    "use strict";
442    function t(source) { return window.XAgentI18n && window.XAgentI18n.t ? window.XAgentI18n.t(source) : source; }
443    var tabs = Array.from(document.querySelectorAll("[data-audience-tab]"));
444    var panels = Array.from(document.querySelectorAll("[data-audience-panel]"));
445    function selectAudience(audience, focus) {
446      document.body.dataset.audience = audience;
447      tabs.forEach(function (tab) {
448        var selected = tab.dataset.audienceTab === audience;
449        tab.setAttribute("aria-selected", selected ? "true" : "false");
450        tab.tabIndex = selected ? 0 : -1;
451        if (selected && focus) tab.focus();
452      });
453      panels.forEach(function (panel) { panel.hidden = panel.dataset.audiencePanel !== audience; });
454    }
455    tabs.forEach(function (tab, index) {
456      tab.addEventListener("click", function () { selectAudience(tab.dataset.audienceTab, false); });
457      tab.addEventListener("keydown", function (event) {
458        if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
459        event.preventDefault();
460        var next = tabs[(index + (event.key === "ArrowRight" ? 1 : -1) + tabs.length) % tabs.length];
461        selectAudience(next.dataset.audienceTab, true);
462      });
463    });
464    document.querySelectorAll("[data-select-audience]").forEach(function (link) {
465      link.addEventListener("click", function () { selectAudience(link.dataset.selectAudience, false); });
466    });
467    document.querySelectorAll(".mobile-nav a").forEach(function (link) {
468      link.addEventListener("click", function () { document.getElementById("mobile-nav").open = false; });
469    });
470
471    var status = document.getElementById("install-status");
472    var version = document.getElementById("release-version");
473    var integrity = document.getElementById("manifest-integrity");
474    var input = document.getElementById("target-url");
475    var loadButton = document.getElementById("load-manifest");
476    var activeRequest = 0;
477    var loadedManifest = null;
478    function normalizeUrl(raw) {
479      try {
480        var candidate = /^https:\/\//i.test(raw) ? raw : "https://" + raw;
481        var parsed = new URL(candidate);
482        if (parsed.protocol !== "https:" || !parsed.hostname) throw new Error("HTTPS required");
483        return "https://" + parsed.hostname;
484      } catch (_error) { return ""; }
485    }
486    function setCommands(workflow) {
487      var steps = {};
488      (workflow || []).forEach(function (step) { steps[step.id] = step; });
489      document.querySelectorAll("[data-workflow-id]").forEach(function (node) {
490        var step = steps[node.dataset.workflowId];
491        node.textContent = step && step.command ? step.command : t("Command unavailable");
492      });
493    }
494    function updateProductWindow(manifest) {
495      var modules = Array.isArray(manifest.modules) ? manifest.modules : [];
496      var writes = [];
497      modules.forEach(function (module) { (module.writes || []).forEach(function (path) { if (writes.indexOf(path) < 0) writes.push(path); }); });
498      document.getElementById("hero-release").textContent = t("Release") + " " + manifest.release.version;
499      document.getElementById("hero-host").textContent = manifest.target.host;
500      document.getElementById("hero-package").textContent = manifest.release.package + "@" + manifest.release.version;
501      document.getElementById("hero-writes").textContent = writes.length ? writes.length + " " + t("declared paths, approval required") : t("None");
502      document.getElementById("hero-state").textContent = t("Ready");
503      document.getElementById("hero-state").classList.add("is-ready");
504    }
505    function renderLoadedManifest(manifest) {
506      setCommands(manifest.workflow);
507      updateProductWindow(manifest);
508      version.textContent = manifest.release.version;
509      integrity.textContent = manifest.release.integrity ? t("Published npm integrity") + " · " + manifest.release.integrity.slice(0, 24) + "…" : t("Published integrity unavailable");
510      status.textContent = t("Plan loaded for") + " " + manifest.target.host + ". " + t("Verification runs in the CLI preflight before installation.");
511      window.dispatchEvent(new CustomEvent("xagent:manifestloaded", { detail: { targetUrl: manifest.target.url, manifest: manifest } }));
512    }
513    async function loadManifest() {
514      var target = normalizeUrl(input.value.trim());
515      if (!target) {
516        status.textContent = t("Enter a valid HTTPS website before loading the plan.");
517        input.setAttribute("aria-invalid", "true");
518        return;
519      }
520      input.removeAttribute("aria-invalid");
521      input.value = target;
522      var manifestUrl = "/.well-known/xagent-install.json?url=" + encodeURIComponent(target);
523      document.querySelectorAll("[data-manifest-link]").forEach(function (link) { link.href = manifestUrl; });
524      var requestId = ++activeRequest;
525      status.textContent = t("Loading the production install plan…");
526      version.textContent = t("Checking");
527      loadButton.disabled = true;
528      try {
529        var response = await fetch(manifestUrl, { headers: { Accept: "application/json" }, credentials: "omit" });
530        if (!response.ok) throw new Error("release not ready");
531        var manifest = await response.json();
532        if (manifest.schema !== "xagent-install-manifest-v1" || !manifest.release || manifest.release.ready !== true) throw new Error("release not ready");
533        var expectedHost = new URL(target).hostname;
534        if (!manifest.target || manifest.target.host !== expectedHost) throw new Error("target host mismatch");
535        if (requestId !== activeRequest) return;
536        loadedManifest = manifest;
537        renderLoadedManifest(manifest);
538      } catch (_error) {
539        if (requestId !== activeRequest) return;
540        loadedManifest = null;
541        setCommands([]);
542        version.textContent = t("Blocked");
543        integrity.textContent = t("Release metadata unavailable");
544        status.textContent = t("Production manifest unavailable or target mismatch. Stop before installation.");
545        document.getElementById("hero-state").textContent = t("Unavailable");
546        window.dispatchEvent(new CustomEvent("xagent:manifestfailed"));
547      } finally {
548        if (requestId === activeRequest) loadButton.disabled = false;
549      }
550    }
551    loadButton.addEventListener("click", loadManifest);
552    input.addEventListener("keydown", function (event) { if (event.key === "Enter") loadManifest(); });
553    window.addEventListener("xagent:languagechange", function () {
554      if (loadedManifest) renderLoadedManifest(loadedManifest);
555    });
556    document.querySelectorAll("[data-copy-workflow]").forEach(function (button) {
557      button.addEventListener("click", async function () {
558        var code = document.querySelector('[data-workflow-id="' + button.dataset.copyWorkflow + '"]');
559        if (!code || !code.textContent || code.textContent === t("Command unavailable")) return;
560        try {
561          await navigator.clipboard.writeText(code.textContent);
562          button.textContent = t("Copied");
563          window.setTimeout(function () { button.textContent = t("Copy"); }, 1400);
564        } catch (_error) { status.textContent = t("Copy was blocked. Select the command manually."); }
565      });
566    });
567
568    function buildMobilePlans() {
569      var target = document.getElementById("mobile-plan-list");
570      var table = document.querySelector(".plan-compare");
571      if (!target || !table) return;
572      var headers = Array.from(table.querySelectorAll("thead th[data-plan-id]"));
573      var rows = Array.from(table.querySelectorAll("tbody tr"));
574      headers.forEach(function (header, planIndex) {
575        var details = document.createElement("details");
576        details.className = "mobile-plan";
577        if (header.classList.contains("recommended")) details.open = true;
578        var summary = document.createElement("summary");
579        summary.innerHTML = "<span><b>" + header.querySelector("span").textContent + "</b><small>" + header.querySelector("small").textContent + "</small></span><strong>" + header.querySelector("strong").textContent + "</strong>";
580        var list = document.createElement("ul");
581        rows.forEach(function (row) {
582          var cells = row.querySelectorAll("td");
583          if (cells[planIndex] && cells[planIndex].querySelector(".included")) {
584            var item = document.createElement("li");
585            item.textContent = row.querySelector("th b").textContent;
586            list.appendChild(item);
587          }
588        });
589        var sourceLink = header.querySelector(".plan-cta");
590        if (sourceLink) {
591          var action = sourceLink.cloneNode(true);
592          action.classList.add("mobile-plan-action");
593        }
594        details.appendChild(summary); details.appendChild(list);
595        if (sourceLink) details.appendChild(action);
596        target.appendChild(details);
597      });
598    }
599    buildMobilePlans();
600    window.XAgentInstallWizard.mount(document);
601    var initialUrl = window.XAgentInstallWizard.autoLoadTarget(location.search);
602    if (initialUrl) {
603      input.value = initialUrl;
604      loadManifest();
605    } else {
606      version.textContent = t("Awaiting website");
607      status.textContent = t("Enter your HTTPS website to load its production install plan.");
608    }
609
610    if (!(window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches) && "IntersectionObserver" in window) {
611      var observer = new IntersectionObserver(function (entries) {
612        entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add("is-visible"); observer.unobserve(entry.target); } });
613      }, { threshold: 0.12 });
614      document.querySelectorAll("[data-reveal]").forEach(function (section) { observer.observe(section); });
615    } else {
616      document.querySelectorAll("[data-reveal]").forEach(function (section) { section.classList.add("is-visible"); });
617    }
618  })();
619  </script>
619
620  
620<script src="/assets/public-url.js?v=card-entry-20260821" defer></script>
620
621  
621<script src="/assets/hero-card.js?v=card-entry-20260821" defer></script>
621
622  
622<script src="/assets/business-card.js?v=company-coverflow-20260902-1" defer></script>
622
623  
623<script src="/templates/aeo-site-sdk.js" data-agent-id="agt_0000" data-endpoint="/api/agent/sdk_event" defer></script>
623
624  
624<script>
625  (async function () {
626    function t(source) { return window.XAgentI18n && window.XAgentI18n.t ? window.XAgentI18n.t(source) : source; }
627    var section = document.getElementById("install-showcase");
628    var wall = document.getElementById("showcase-wall");
629    var note = document.getElementById("showcase-note");
630    var showcaseCount = 0;
631    function renderShowcaseNote() {
632      if (!showcaseCount) return;
633      note.textContent = showcaseCount + " " + (showcaseCount === 1 ? t("verified install opted in to public listing.") : t("verified installs opted in to public listing."));
634    }
635    window.addEventListener("xagent:languagechange", renderShowcaseNote);
636    try {
637      var response = await fetch("/api/site_agents/showcase", { headers: { Accept: "application/json" }, credentials: "omit" });
638      if (!response.ok) return;
639      var data = await response.json();
640      var entries = Array.isArray(data.entries) ? data.entries : [];
641      if (!entries.length) return;
642      showcaseCount = entries.length;
643      entries.forEach(function (entry) {
644        var item = document.createElement("li");
645        var link = document.createElement("a");
646        link.href = entry.site_url; link.rel = "noopener nofollow"; link.target = "_blank";
647        var mark = document.createElement("span"); mark.textContent = entry.monogram || "?";
648        var label = document.createElement("b"); label.textContent = entry.name || entry.host;
649        link.appendChild(mark); link.appendChild(label); item.appendChild(link); wall.appendChild(item);
650      });
651      renderShowcaseNote();
652      section.hidden = false;
653    } catch (_error) {}
654  })();
655  </script>
655
656</body>
657</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.