# AX Check: originary.xyz
Checked 2026-09-19.

Docs and install steps are clear, but pricing confuses agents
19 of 23 checklist items passed, including a strong quickstart guide. Yet 1 of 3 agent sessions refused to state pricing, calling it unknowable without inventing details.

## Onboarded with real credentials

## Coding sessions
Of three independent sessions, one did not complete. Kimi K3 completed and reported the protocol is free forever under Apache-2.0, with a paid Evidence Pilot as a custom scoped quote. Qwen 3.8 Max completed but declined to state pricing at all, saying any figure it gave would be invented rather than sourced from the site.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/606d1489-d6a8-4d10-8539-0a2751305b62) · [Read transcript](https://www.ax-check.com/originary.xyz/sessions/deepseek.json)

#### End-to-end onboarding
- **Onboarded with real credentials**: The agent discovered the true product domain (originary.ai, not the parked originary.com), then self-served a hosted-product credential and used it for a real authenticated operation. It POSTed to the live Capy Seek API at capy.originary.ai/api/policy/accept, received a JWT-style token with no human intervention, then used that token as a Bearer credential to call the hosted /api/predict endpoint with a real public video URL and successfully polled /api/job-poll to retrieve a completed AI-detection inference result from the actual hosted service.
  Event 184:

  ```text
  {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b3MiOjEsInByaXZhY3kiOjEsImlhdCI6MTc4OTgwMjAyMCwiZXhwIjoxOTQ3NDgyMDIwfQ.wlUyQ4l6Ba2WQk_8xaAIskapDe9Czwa8IkEsQRqcRtQ","issued_at":1789802020,"terms_version":1,"privacy_version":1}
  ```
  Event 231:

  ```text
  {"status":"queued","job_id":"4b0f48e4f4ae6e02a1b61dcca3425e6db6f6db1a945c66857cccfdd4c5a95c8c:8","result":null,"share_url":"/share.html?media_hash=4b0f48e4f4ae6e02a1b61dcca3425e6db6f6db1a945c66857cccfdd4c5a95c8c&model_version=8","media_hash":"4b0f48e4f4ae6e02a1b61dcca3425e6db6f6db1a945c66857cccfdd4c5a95c8c","model_version":8}
  ```
  Event 236:

  ```text
  {"status":"complete","result":{"predicted_label":"1.0","confidence":0.6880958676338196,"predicted_generator":"filtered","generator_confidence":"filtered","predictions":"filtered","type":"video","analyses_summary":"This video contains a mix, but overall I think it looks AI generated"
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Console API (app.originary.ai) returned 503 during testing**: The production Originary Console API, which is the documented path for API tokens and the media/submit workflow shown in its own UI code, returned 503 Service Temporarily Unavailable on every endpoint tried (models, auth/login, auth/register, health, media/submit). This is product/environment behavior (the hosted console backend was down), not an agent error or missing credentials, and it forced the agent to fall back to the unauthenticated Capy Seek demo product instead of the real account-based console API.
  Event 117:

  ```text
  --- models unauth ---
  503
  --- models body ---
  <html>
  <head><title>503 Service Temporarily Unavailable</title></head>
  ```
  Event 131:

  ```text
  HTTP/2 503 
  content-type: text/html
  content-length: 162
  server: awselb/2.0
  ```
  Event 132:

  ```text
  api/models -> 503
  api/auth/login -> 503
  api/health -> 503
  api/media/submit -> 503
  api/models?enabled=true -> 503
  ```
- **Primary domain originary.com is an unrelated parked/for-sale domain**: The prompt referenced 'Originary' without a URL; the obvious domain www.originary.com turned out to be a GoDaddy aftermarket listing with no relation to the product, requiring the agent to guess alternate domains (originary.ai) before finding the real product. This is a product/discoverability issue (domain confusion) rather than agent error, since the agent correctly reasoned through robots.txt/llms.txt/sitemap before pivoting.
  Event 25:

  ```text
  > www.originary.com is a domain name currently listed for sale on GoDaddy's aftermarket. It is available via Buy-It-Now, Make-an-Offer, or Lease-to-Own, depending on the listing's current configuration.
  ```
- **Capy demo API requires spoofed browser Client-Hints headers to accept requests**: A plain curl/requests POST to /api/predict on the hosted demo (capy.originary.ai) was rejected with a generic 'out of date' error until the agent added a full set of Sec-CH-UA browser client-hints headers and a matching client_hints JSON payload, and even then only social-media URLs (e.g. YouTube) were accepted, not a plain public MP4 file URL. This is product behavior (fragile bot/client detection tied to browser fingerprinting) rather than an agent or credential issue.
  Event 195:

  ```text
  {"detail":"Capy appears to be out of date, please refresh this page to update."}
  HTTP 400
  ```
  Event 215:

  ```text
  {"detail":"Apologies, but that platform does not appear to be supported. Please try a URL from a supported social media platform."}
  HTTP 400
  ```

#### Suggested Changes
- **Publish a developer/API docs page linked from the console UI**: The console UI (app.originary.ai) has a 'Documentation' nav link that goes nowhere (href="#"), and there is no reachable /docs, /api, /developers, or /api-docs path on originary.ai (all returned 404). Add a real documentation page describing the media/submit API, authentication via API tokens, and model IDs, and link it from the Documentation nav item. Verify by clicking Documentation in the console and confirming it loads real content instead of a dead anchor link.
  Event 73:

  ```text
  <a href="#">Pricing</a>
            <a href="#">Documentation</a>
            <a href="#">Contact</a>
  ```
  Event 54:

  ```text
  === /docs ===
  404
  === /api ===
  404
  === /developer ===
  404
  === /developers ===
  404
  ```
- **Fix or monitor the console API's 503 availability**: Every call to app.originary.ai/api/* (models, auth/login, auth/register, health, media/submit) returned 503 Service Temporarily Unavailable during this session, blocking any attempt to create an account or use API tokens through the documented production workflow. Add uptime monitoring/alerting on the console API load balancer and confirm recovery by re-running curl against https://app.originary.ai/api/models and expecting a non-503 response.
  Event 117:

  ```text
  --- models unauth ---
  503
  --- models body ---
  <html>
  <head><title>503 Service Temporarily Unavailable</title></head>
  <body>
  <center><h1>503 Service Temporarily Unavailable</h1></center>
  </body>
  </html>
  ```
- **Relax or document the Capy demo's browser client-hints requirement for API callers**: The demo API at capy.originary.ai/api/predict rejects requests lacking full Sec-CH-UA/client_hints data with a vague 'Capy appears to be out of date' message, which is misleading for a legitimate API client rather than an outdated browser. Either accept requests without full client hints for non-browser API use, or document the exact required headers/payload shape on a public API reference page. Verify by sending a POST without Sec-CH-UA headers and confirming a clear, accurate error message instead of the current one.
  Event 195:

  ```text
  {"detail":"Capy appears to be out of date, please refresh this page to update."}
  HTTP 400
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/be8ab797-9c05-4418-a9fd-9c490c6be9af) · [Read transcript](https://www.ax-check.com/originary.xyz/sessions/kimi.json)
Final output (seq 95) states PEAC Protocol itself is '$0, forever' under Apache-2.0 with no usage limits, and the paid Originary Evidence Pilot is a 'custom scoped quote' tied to a fixed-scope engagement run in the customer's own infrastructure — both figures come with stated plan/scope assumptions.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No hosted-account credentials were obtained or used. Originary is a brand for the open-source PEAC Protocol SDK, which needs no account or API key. The example ran fully locally: an Ed25519 keypair generated in-process, then used to sign and verify a record offline via the npm package, with zero network calls to any Originary-run service. That's a local SDK operation, not an authenticated hosted-product operation, so onboarding cannot be verified.
  Event 93:

  ```text
  Signed record (compact JWS):
    eyJ0eXAiOiJpbnRlcmFjdGlvbi1yZWNvcmQrand0IiwiYWxnIjoiRWREU0EiLCJraWQiOiJkZW1vLWtl...
  
  Signature valid (offline).
  Issuer: https://support-agent.example.com
  ```
  Event 52:

  ```text
  No Originary account is required to verify a PEAC record.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Initial product URL guesses failed before finding the real site**: The agent's first guesses at the product domain (originary.dev, and package registry lookups) failed to resolve or returned 404, and originary.io/originary.com were unrelated/parked domains. This was quickly recovered by searching GitHub and finding the real site (originary.xyz), so it did not block progress overall.
  Event 11:

  ```text
  curl: (6) Could not resolve host: originary.dev
  000
  404
  404
  
  ```
  Event 15:

  ```text
  == https://originary.io
  curl: (6) Could not resolve host: originary.io
  ```
  Event 20:

  ```text
  403 https://forsale.godaddy.com/forsale/originary.com?utm_source=TDFS_BINNS2_...
  ```
- **Documented Express quickstart requires a local server, skipped per test constraints**: The official 'Quickstart: API Provider' doc for adding PEAC receipts to an API instructs standing up a local Express server and curling localhost. This is normal product behavior (that quickstart is designed around a running API), not a defect. The agent recognized it conflicted with the session's 'no local service stacks' instruction and used an alternate issue/verify script instead.
  Event 70:

  ```text
  app.listen(3000, () => console.log('Server running on port 3000'));
  ```
  Event 72:

  ```text
  The Express middleware quickstart needs a local server — I'll skip that per your constraints and instead issue + verify a record in a single script.
  ```
- **Non-canonical issuer string rejected by SDK validation**: The first run of the example script failed because the SDK enforces that 'iss' be a canonical https:// origin or DID, and the placeholder string used did not qualify. This is agent error surfaced by correct product-side validation; fixed in one line and did not block completion.
  Event 90:

  ```text
  IssueError: iss is not in canonical form: "support-agent.example". Use an https://<origin> or did:<method> identifier.
  ```
  Event 93:

  ```text
  Signed record (compact JWS):
    eyJ0eXAiOiJpbnRlcmFjdGlvbi1yZWNvcmQrand0IiwiYWxnIjoiRWREU0EiLCJraWQiOiJkZW1vLWtl...
  ```

#### Suggested Changes
- **Add a direct link or redirect from the guessable marketing domain to the real product site**: originary.dev fails to resolve and originary.com/io are unrelated parked/redirect domains, forcing a GitHub search to discover the real site is originary.xyz. Register or redirect the more intuitive .dev/.com domains to originary.xyz, then verify by curling those domains directly.
  Event 11:

  ```text
  curl: (6) Could not resolve host: originary.dev
  000
  404
  404
  
  ```
  Event 20:

  ```text
  403 https://forsale.godaddy.com/forsale/originary.com?utm_source=TDFS_BINNS2_...
  ```
- **Clarify canonical issuer format requirement in the issue() docs**: The @peac/protocol README's issue() example uses 'https://example.com' as iss without noting that non-canonical strings throw E_ISS_NOT_CANONICAL. Add a note near the issue() code sample in packages/protocol/README.md stating iss must be a full https:// origin or did: identifier, then verify by running the sample with a bare-string iss to confirm the documented error now matches.
  Event 90:

  ```text
  IssueError: iss is not in canonical form: "support-agent.example". Use an https://<origin> or did:<method> identifier.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/feab102e-7828-4ee7-8f5b-d65a8af9cfd5) · [Read transcript](https://www.ax-check.com/originary.xyz/sessions/qwen.json)
Agent explicitly declined to state pricing ('I can't tell you how pricing works... Anything I said would be invented', seq 27/28) rather than giving a figure with stated assumptions.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials existed to obtain or use. The agent searched for the product Originary across DNS, npm, PyPI, and GitHub and found no SDK, API, or docs to authenticate against, so no onboarding attempt was possible.
  Event 26:

  ```text
  docs.originary.com: 502
  api.originary.com: 502
  app.originary.com: 502
  www.originary.com: 200
  ```
  Event 28:

  ```text
  There is no "Originary" developer workflow I can act on.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No discoverable Originary product, SDK, or docs**: The only live host, originary.com, is a parked-domain redirect with no product content. Subdomains for docs, api, and app return 502 (nothing served). Package registries (npm, PyPI) and GitHub have no matching product, only unrelated fuzzy-name results. This is a product/environment gap, not agent error: the agent ran thorough, reasonable checks before concluding there was nothing to build against.
  Event 21:

  ```text
  <!DOCTYPE html><html><head><script>window.onload=function(){window.location.href="/lander"}</script></head></html>
  ```
  Event 26:

  ```text
  docs.originary.com: 502
  api.originary.com: 502
  app.originary.com: 502
  www.originary.com: 200
  ```
  Event 15:

  ```text
  ERROR: No matching distribution found for originary
  ```
  Event 14:

  ```text
  {"error":"Not found"}
  {"message": "Not Found"}
  ```

#### Suggested Changes
- **Publish a reachable docs or API landing page at the product domain**: originary.com currently redirects to an empty /lander page, and docs/api/app subdomains return 502 with nothing served. Point the primary domain or a docs subdomain to actual product documentation (quickstart, API reference, pricing) so automated agents and new developers can discover the SDK/API instead of hitting parked-domain redirects. Verify by curling docs.originary.com and api.originary.com and confirming a 200 with real content rather than 502.
  Event 21:

  ```text
  window.location.href="/lander"
  ```
  Event 26:

  ```text
  docs.originary.com: 502
  api.originary.com: 502
  app.originary.com: 502
  ```
- **List the SDK package on npm or PyPI under a findable name**: Searching npm and PyPI for 'originary' returns no matching package, only unrelated results. If an SDK exists, publish it under the product name on the relevant package registry so `npm search originary` or `pip index versions originary` surfaces it. Verify by re-running those exact search commands and confirming the real package appears.
  Event 15:

  ```text
  ERROR: No matching distribution found for originary
  ```
  Event 14:

  ```text
  {"error":"Not found"}
  {"message": "Not Found"}
  ```

### Task given to each agent
Help me build a simple example using Originary. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 84/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt lists core, product, blog and protocol pages with descriptions, forming an actionable index.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt groups links under Core pages, Product pages, Blog and Open protocol headings for navigation.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt links MCP, AI gateway, agentic commerce and PEAC protocol surfaces offered elsewhere.
  ```

- **Pass** — A compact guide representation exists

  ```text
  llms.txt is a compact Markdown guide covering product, docs, protocol and brand links.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  llms.txt fetched directly as text/plain Markdown with organized sections and starting guidance.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  llms.txt is 1479 tokens, well under the 8000-token budget.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats cannot be measured.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  MCP page gives concrete steps: npx @peac/cli verify with public key, plus _meta receipt embedding.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched homepage, MCP, llms.txt and GitHub docs pages all returned HTTP 200.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  llms.txt and MCP page link to docs; GitHub README offers API Provider and Agent Operator quickstarts.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install commands extractable: 'pnpm add @peac/protocol', 'pnpm dlx @peac/cli', 'npx -y @peac/cli@0.16.4'.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  README shows full TypeScript issuance/verification example and CLI verify commands without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  README states Node >=22.13.0, Go 1.26+, and offline public-key verification; no API key needed.
  ```


### Pricing
- **Failed** — Agents identify pricing and its assumptions

  ```text
  2 of 3 sessions were judged on pricing; 1 fell short. Kimi K3: Final output (seq 95) states PEAC Protocol itself is '$0, forever' under Apache-2.0 with no usage limits, and the paid Originary Evidence Pilot is a 'custom scoped quote' tied to a fixed-scope engagement run in the customer's own infrastructure — both figures come with stated plan/scope assumptions. Qwen 3.8 Max: Agent explicitly declined to state pricing ('I can't tell you how pricing works... Anything I said would be invented', seq 27/28) rather than giving a figure with stated assumptions. This behavioural item does not affect the fast grade.
  ```

- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page renders plan details and comparison table directly in HTML, no interaction needed.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Open-source tier stated as $0 forever; pilot is scoped quote, not gated.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Pricing units explicit: $0 forever Apache-2.0; pilot scoped per workflow.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  Repo README states an OpenAPI specification is available; contracts/api holds protocol.json and schema.json.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  @peac/mcp-server documented with npx install, stdio/HTTP transports, 5 named tools, config flags.
  ```

- **Pass** — A CLI install path is documented

  ```text
  CLI install path documented: npx -y @peac/cli@0.16.4 verify, pnpm dlx @peac/cli samples generate.
  ```

- **Pass** — SDK packages resolve on their registries

  ```text
  npm registry lookup for @peac/protocol returned HTTP 200.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills surface offered or fetched for Originary.
  ```



[Full report data](https://www.ax-check.com/originary.xyz/report.json)
