xytara 3.9.7 → 3.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,8 +14,8 @@ Listed on [Smithery](https://smithery.ai/server/naxytra/xytara-mcp-executor) ·
14
14
 
15
15
  | Hosted surface | URL |
16
16
  | --- | --- |
17
- | Runtime (paid command path, credits, catalog, receipts) | `https://xytara.onrender.com` |
18
- | Pay-per-call MCP server (Streamable HTTP) | `https://xytara-mcp-executor.onrender.com/mcp` |
17
+ | Runtime (paid command path, credits, catalog, receipts) | `https://api.naxytra.com` |
18
+ | Pay-per-call MCP server (Streamable HTTP) | `https://mcp.naxytra.com/mcp` |
19
19
  | Website, agent guide, quickstart | `https://www.naxytra.com` · [/agents](https://www.naxytra.com/agents) · [/quickstart](https://www.naxytra.com/quickstart) |
20
20
 
21
21
  This package ships:
@@ -49,7 +49,7 @@ xytara run --help
49
49
  Quote first, with no wallet material at all:
50
50
 
51
51
  ```bash
52
- xytara-run --url https://xytara.onrender.com --account ACCOUNT_REF \
52
+ xytara-run --url https://api.naxytra.com --account ACCOUNT_REF \
53
53
  --task adapter.mcp.invoke --command mcp.invoke:summarize \
54
54
  --body-json "{\"tool_name\":\"summarize\",\"arguments\":{\"text\":\"Summarize the naxytra first-run path in one sentence.\"}}" \
55
55
  --quote-only --pretty
@@ -105,7 +105,7 @@ challenge; pay it once and the response carries a spend credential. Then call
105
105
  ## Pay-per-call MCP
106
106
 
107
107
  ```
108
- endpoint: https://xytara-mcp-executor.onrender.com/mcp
108
+ endpoint: https://mcp.naxytra.com/mcp
109
109
  tools/list -> free
110
110
  tools/call -> 402 Payment Required with a price
111
111
  -> sign ONE gasless USDC authorization (x402 / EIP-3009)
@@ -175,7 +175,7 @@ the only algorithms in use.
175
175
  ```js
176
176
  const { verifyDeliveryReceipt, hashCanonical, verificationRecipe } = require("xytara");
177
177
 
178
- const keys = (await fetch("https://xytara.onrender.com/.well-known/delivery-receipt-keys").then((r) => r.json())).keys;
178
+ const keys = (await fetch("https://api.naxytra.com/.well-known/delivery-receipt-keys").then((r) => r.json())).keys;
179
179
  const result = verifyDeliveryReceipt(receipt, keys); // { valid, signatures: [{ alg, kid, valid }], ... }
180
180
  const outputMatches = hashCanonical(outputYouReceived) === receipt.delivery.output_sha256;
181
181
  console.log(verificationRecipe("/.well-known/delivery-receipt-keys").steps);
@@ -222,7 +222,7 @@ anchor then commits to `attestation_sha256` = SHA-256 of the JCS form of the who
222
222
  ```js
223
223
  const { verifyAttestation, hashCanonical, attestationRecipe } = require("xytara");
224
224
 
225
- const keys = (await fetch("https://xytara-mcp-executor.onrender.com/.well-known/delivery-receipt-keys").then((r) => r.json())).keys;
225
+ const keys = (await fetch("https://mcp.naxytra.com/.well-known/delivery-receipt-keys").then((r) => r.json())).keys;
226
226
  const check = verifyAttestation(attestation, keys); // { valid, claim_verified, signatures: [{ alg, kid, valid }], ... }
227
227
  const evidenceMatches = hashCanonical({ tool, arguments, output }) === attestation.evidence_sha256;
228
228
  console.log(attestationRecipe("/.well-known/delivery-receipt-keys").steps);
package/RELEASE_NOTES.md CHANGED
@@ -1,12 +1,7 @@
1
- `xytara` 3.9.7 adds sub-cent pricing and closes several ways to pay less than a call's price.
1
+ `xytara` 3.9.8 moves the public endpoints to naxytra.com addresses.
2
2
 
3
- - **Sub-cent prices** — provider offers can be priced from $0.001 to $100.00 in $0.001 steps. The price is held exactly in USDC base units (`price_atomic`, `amount_atomic`; 1 cent = 10000) through the quote, the x402 challenge, credits and the provider ledger; nothing is rounded through cents.
4
- - **x402 per-payment minimum** — one x402 payment for a provider tool is at least `XYTARA_X402_MIN_PER_CALL_ATOMIC` (default 5000 = $0.005), which covers the facilitator's per-settlement fee. The 402, the catalog and the MCP tool text say so, and prepaid credits pay the exact price (at least 1 credit). The provider's share is always computed on its own price.
5
- - **Exact provider ledger** — shares accrue exactly in base units (a $0.001 call at 80% earns $0.0008); existing balances carry over exactly; payouts still move whole cents and keep the remainder. A sub-cent balance blocks removal like any other.
6
- - **Cents rails** — native signed, BOLT, L402, MPP and Stripe checkout refuse a sub-cent amount instead of rounding it, and L402 / BOLT refuse calls an open-network provider runs before issuing any invoice (their fixed sat price is not bound to the quote). Gateway-signed L402 / BOLT payments accrue the quote they are bound to.
7
- - **Paying less than the price, closed** — a stored `quote_id` only pays for the request it priced (otherwise 409 `quote_request_mismatch`), quotes live at most 15 minutes, credits must be whole units and a caller cannot declare fewer than the price of real work (400 `credit_units_below_price`), a provider tool cannot ride a multi-task call (400 `multi_task_provider_call_unsupported`), and testnet USDC never buys work an open-network provider runs or accrues a share.
8
- - **Routing** — a third-party provider that declares `tool_names` serves exactly those tools; a lane-wide third party does not claim named tools on a lane the operator's own provider serves; built-in integration ids never route to a third party; first-party provider ids are reserved for the operator; an offer-priced call runs on the provider that priced it first; when another provider runs it after failover, that provider earns on no more than its own price.
9
- - **Records** — payment records carry `amount_atomic` and `settled_amount_atomic`; ledger cents totals are derived from base units (no drift).
10
- - **Provider names** — an unregistered ENS name reports the payee-name spec's `not registered` detail.
11
- - **MCP executor** — provider tools show their exact price, the x402 per-payment amount when the minimum applies (`pricing.per_call_usd` is what the challenge settles; `offer_price_usd` is the provider's price), and the discovery range only uses amounts the runtime accepts on that network.
12
- - Client package (thin): unchanged.
3
+ - **Runtime** — `https://api.naxytra.com` (was `https://xytara.onrender.com`).
4
+ - **Pay-per-call MCP server** — `https://mcp.naxytra.com/mcp` (was `https://xytara-mcp-executor.onrender.com/mcp`); the server card, `/.well-known/x402`, delivery-receipt keys and the MCP registry entry use the new address.
5
+ - The previous addresses still serve the same service, so existing integrations keep working; new integrations should use the naxytra.com addresses.
6
+ - Client package (thin): the default runtime and MCP addresses are the new ones.
7
+ - No change to pricing, payment, routing or the provider ledger.
package/START_HERE.md CHANGED
@@ -24,13 +24,13 @@ quote -> pay/credits -> execute -> prove
24
24
  ## 2. Hosted endpoints
25
25
 
26
26
  ```text
27
- runtime: https://xytara.onrender.com
27
+ runtime: https://api.naxytra.com
28
28
  POST /x402/commands/execute paid command path (402 challenge -> paid 200)
29
29
  POST /x402/credits/topup buy credits once, spend them per call
30
30
  GET /v1/catalog discover tasks
31
31
  GET /.well-known/delivery-receipt-keys
32
32
  POST /v1/delivery-receipts/verify
33
- mcp: https://xytara-mcp-executor.onrender.com/mcp
33
+ mcp: https://mcp.naxytra.com/mcp
34
34
  website: https://www.naxytra.com (/agents, /quickstart, /v1/first-run-path, /v1/first-run-kit)
35
35
  ```
36
36
 
@@ -54,7 +54,7 @@ xytara first-run --run-quote --account ACCOUNT_REF --pretty
54
54
  which runs:
55
55
 
56
56
  ```bash
57
- xytara-run --url https://xytara.onrender.com --account ACCOUNT_REF --task adapter.mcp.invoke --command mcp.invoke:summarize --body-json "{\"tool_name\":\"summarize\",\"arguments\":{\"text\":\"Summarize the naxytra first-run path in one sentence.\"}}" --quote-only --pretty
57
+ xytara-run --url https://api.naxytra.com --account ACCOUNT_REF --task adapter.mcp.invoke --command mcp.invoke:summarize --body-json "{\"tool_name\":\"summarize\",\"arguments\":{\"text\":\"Summarize the naxytra first-run path in one sentence.\"}}" --quote-only --pretty
58
58
  ```
59
59
 
60
60
  Then execute with a signed x402 payment (see the `CommerceClient` example in README.md) or
@@ -4,7 +4,7 @@
4
4
  const path = require("path");
5
5
  const { spawnSync } = require("child_process");
6
6
 
7
- const DEFAULT_SERVICE_URL = "https://xytara.onrender.com";
7
+ const DEFAULT_SERVICE_URL = "https://api.naxytra.com";
8
8
  const DEFAULT_KIT_URL = "https://www.naxytra.com/v1/first-run-kit";
9
9
  const DEFAULT_TEXT = "Summarize the naxytra first-run path in one sentence.";
10
10
  const ACCOUNT_PLACEHOLDER = "ACCOUNT_REF";
package/bin/xytara.js CHANGED
@@ -24,7 +24,7 @@ function printUsage() {
24
24
  " xytara first-run --execute-with-credits --account ACCOUNT_REF --pretty",
25
25
  " xytara run --help",
26
26
  "",
27
- "The runtime is a hosted service (https://xytara.onrender.com); this package is the client."
27
+ "The runtime is a hosted service (https://api.naxytra.com); this package is the client."
28
28
  ].join("\n"));
29
29
  }
30
30
 
@@ -43,7 +43,7 @@ function printStartHere() {
43
43
  "1. Open https://www.naxytra.com/v1/first-run-path",
44
44
  "2. Open https://www.naxytra.com/v1/first-run-kit for copyable commands.",
45
45
  "3. Quote safely first:",
46
- " xytara-run --url https://xytara.onrender.com --account ACCOUNT_REF --task adapter.mcp.invoke --command mcp.invoke:summarize --body-json \"{\\\"tool_name\\\":\\\"summarize\\\",\\\"arguments\\\":{\\\"text\\\":\\\"Summarize the naxytra first-run path in one sentence.\\\"}}\" --quote-only --pretty",
46
+ " xytara-run --url https://api.naxytra.com --account ACCOUNT_REF --task adapter.mcp.invoke --command mcp.invoke:summarize --body-json \"{\\\"tool_name\\\":\\\"summarize\\\",\\\"arguments\\\":{\\\"text\\\":\\\"Summarize the naxytra first-run path in one sentence.\\\"}}\" --quote-only --pretty",
47
47
  "4. Execute with direct signed payment or credits-first on a funded account.",
48
48
  "5. Hand the result into xoonya for proof review and verification.",
49
49
  "",
package/client.js CHANGED
@@ -27,8 +27,8 @@ const { version } = require("./package.json");
27
27
  // and receipt verification (GET /.well-known/delivery-receipt-keys, POST /v1/delivery-receipts/verify).
28
28
  // `mcp` is the pay-per-call MCP server (Streamable HTTP).
29
29
  const endpoints = Object.freeze({
30
- runtime: "https://xytara.onrender.com",
31
- mcp: "https://xytara-mcp-executor.onrender.com/mcp",
30
+ runtime: "https://api.naxytra.com",
31
+ mcp: "https://mcp.naxytra.com/mcp",
32
32
  website: "https://www.naxytra.com"
33
33
  });
34
34
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xytara",
3
- "version": "3.9.7",
3
+ "version": "3.9.8",
4
4
  "description": "Client for the hosted naxytra runtime: discover a capability, pay per call with x402 (gasless USDC on Base) or credits, get the deliverable and a signed delivery receipt you can verify offline. The runtime is a hosted service; this package is the client.",
5
5
  "main": "client.js",
6
6
  "exports": {
@@ -257,8 +257,8 @@ async function main() {
257
257
  }
258
258
  assert.strictEqual(RECEIPT_VERSION, "naxytra-delivery-receipt/1", "receipt version mismatch");
259
259
  assert.strictEqual(ATTESTATION_VERSION, "naxytra-attestation/1", "attestation version mismatch");
260
- assert.strictEqual(endpoints.runtime, "https://xytara.onrender.com", "runtime endpoint mismatch");
261
- assert.strictEqual(endpoints.mcp, "https://xytara-mcp-executor.onrender.com/mcp", "mcp endpoint mismatch");
260
+ assert.strictEqual(endpoints.runtime, "https://api.naxytra.com", "runtime endpoint mismatch");
261
+ assert.strictEqual(endpoints.mcp, "https://mcp.naxytra.com/mcp", "mcp endpoint mismatch");
262
262
  assert.strictEqual(endpoints.website, "https://www.naxytra.com", "website endpoint mismatch");
263
263
  assert.strictEqual(version, packageJson.version, "version export must come from package.json");
264
264
  assert.strictEqual(require(path.join(PACKAGE_DIR, "client.js")), client, "client entry is a stable singleton");