@xona-labs/xpay 0.1.27 → 0.1.29

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/CHANGELOG.md CHANGED
@@ -6,6 +6,33 @@ versioning follows [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.1.29] – 2026-06-23
10
+
11
+ ### Changed
12
+ - **`use` now picks the payment network by balance, not by list order.** When a
13
+ resource accepts multiple networks (e.g. Base *and* Solana), xPay reads the
14
+ wallet balance on each and pays from the first option that can cover the cost
15
+ — so a $0 Base wallet automatically falls through to a funded Solana one.
16
+ Previously it always took the first listed option (usually Base) and failed
17
+ if that wallet was empty. Both the catalog and live-402 paths use the new
18
+ picker. Single-network resources are unaffected (no extra balance lookups).
19
+ Falls back to the best-funded option when none can cover the cost outright.
20
+
21
+ ### Added
22
+ - **`Wallet.pickRequirementByBalance()`** — the async, balance-aware selector
23
+ behind the above. `pickRequirement()` (first-match, sync) is retained.
24
+
25
+ ### Added
26
+ - **Bento firewall controls exposed as MCP tools.** Agents can now manage the
27
+ intent firewall directly, not just via the CLI:
28
+ - `xpay_bento_status` — read whether screening is on (and the agent wallet to register).
29
+ - `xpay_bento_enable` — turn it on; returns the agent wallet address to register at app.bentoguard.xyz.
30
+ - `xpay_bento_disable` — turn it off; the escape hatch when the wallet isn't registered and payments are being rejected.
31
+ Enable/disable take effect live on the running guardrail (no restart) and
32
+ persist to the profile. Only available on profile-backed wallets — raw-key
33
+ (`XPAY_SOLANA_SECRET`) mode reports `profileBacked: false`.
34
+ - **`Guardrail.bentoEnabled()` / `setBentoEnabled()`** for runtime toggling.
35
+
9
36
  ## [0.1.27] – 2026-06-23
10
37
 
11
38
  ### Added
package/README.md CHANGED
@@ -155,7 +155,7 @@ That's the whole setup. The generated wallet's **Solana address is printed to
155
155
  stderr on first run** — fund it with USDC and the agent can pay. It persists
156
156
  under `~/.xpay` and is reused on every later boot, so the address is stable.
157
157
 
158
- The host sees seven core tools: `xpay_discover`, `xpay_use`, `xpay_do`, `xpay_transfer`, `xpay_balance`, `xpay_report`, `xpay_guardrail`. If you've linked a Sana key (see below), eight additional `sana_*` tools are also registered automatically.
158
+ The host sees the core tools: `xpay_discover`, `xpay_use`, `xpay_do`, `xpay_transfer`, `xpay_balance`, `xpay_report`, `xpay_guardrail`, plus `xpay_bento_status` / `xpay_bento_enable` / `xpay_bento_disable` to manage the [Bento intent firewall](#guardrail). If you've linked a Sana key (see below), eight additional `sana_*` tools are also registered automatically.
159
159
 
160
160
  **Bring your own wallet instead** — the wallet source order is *existing profile → key env → auto-generate*, so any of these overrides the generated wallet:
161
161
 
@@ -314,7 +314,7 @@ Public RPCs work for development but rate-limit hard. Production deployments sho
314
314
  **v0.1 (current):**
315
315
  - ✅ CLI: init, accounts, balance, discover, pay, transfer, report, guardrail, mcp
316
316
  - ✅ SDK: full parity with CLI; tool exporters for Claude / OpenAI / Gemini
317
- - ✅ MCP server on stdio with 7 core tools
317
+ - ✅ MCP server on stdio with 10 core tools (incl. Bento firewall controls)
318
318
  - ✅ Solana + Base mainnet with disk caching
319
319
  - ✅ Optional Sana agent card integration (`xpay sana link`) — 8 additional `sana_*` tools
320
320
 
package/SKILL.md CHANGED
@@ -45,6 +45,9 @@ the MCP `env`. To require an explicit wallet (no auto-generation), set
45
45
  | `xpay_balance` | The wallet's balance per network, plus its addresses (use this to tell the user where to send funds). |
46
46
  | `xpay_report` | Spending/income report (daily / weekly / monthly). |
47
47
  | `xpay_guardrail` | Read the active spending caps (per-tx, per-day, allowed hosts, approval threshold). |
48
+ | `xpay_bento_status` | Check whether the Bento intent firewall is on (read-only). |
49
+ | `xpay_bento_enable` | Turn the Bento intent firewall on. Returns the agent wallet address to register at app.bentoguard.xyz. |
50
+ | `xpay_bento_disable` | Turn the Bento firewall off — use if the wallet isn't registered and payments are rejected. |
48
51
 
49
52
  ## How payment works
50
53
 
@@ -67,7 +70,10 @@ fails for lack of funds, ask the user to send USDC to the address from
67
70
  `xpay_transfer_confirm` after they approve. Never move funds unprompted.
68
71
  - **Bento intent firewall (optional).** When enabled, every payment is screened
69
72
  for malicious intent (prompt-injection, wallet-drain) before signing. A
70
- `BLOCKED` result means stop.
73
+ `BLOCKED` result means stop. Toggle with `xpay_bento_enable` /
74
+ `xpay_bento_disable`; it requires a one-time wallet registration at
75
+ app.bentoguard.xyz, and until then payments are rejected — disable it to fall
76
+ back to local caps if you don't want to register.
71
77
 
72
78
  ## Recipes
73
79
 
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAgCH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8HpD"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAiCH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6MpD"}
@@ -31,8 +31,9 @@ import { randomInt } from "crypto";
31
31
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
32
32
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
33
33
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
34
- import { createXPay, loadProfile, initProfile } from "../index.js";
34
+ import { createXPay, loadProfile, initProfile, deriveKeysFromMnemonic } from "../index.js";
35
35
  import { profileExists } from "../profile/storage.js";
36
+ import { readProfileConfig, setProfileBento } from "../profile/index.js";
36
37
  import { rawSolanaSigner } from "../signers/raw-solana.js";
37
38
  import { rawEvmSigner } from "../signers/raw-evm.js";
38
39
  import { forClaude } from "../tools/index.js";
@@ -42,7 +43,7 @@ import { guardrailWithApproval } from "./common.js";
42
43
  const pendingTransfers = new Map();
43
44
  const TRANSFER_EXPIRY_MS = 5 * 60 * 1000; // 5 minutes
44
45
  export async function startMcpServer() {
45
- const xpay = await buildXPay();
46
+ const { xpay, profileName } = await buildXPay();
46
47
  const sanaApiKey = await resolveSanaApiKey();
47
48
  const { tools, handlers } = forClaude(xpay, { sanaApiKey });
48
49
  // --- MCP-only: two-step confirmation for transfers ---
@@ -99,6 +100,26 @@ export async function startMcpServer() {
99
100
  required: ["confirmationCode"],
100
101
  },
101
102
  },
103
+ {
104
+ name: "xpay_bento_status",
105
+ description: "Check whether the Bento intent firewall is active. When on, every payment is " +
106
+ "screened for malicious intent (prompt-injection, wallet-drain) before signing. Read-only.",
107
+ inputSchema: { type: "object", properties: {} },
108
+ },
109
+ {
110
+ name: "xpay_bento_enable",
111
+ description: "Turn ON the Bento intent firewall for this agent's wallet. Returns the agent wallet " +
112
+ "address, which must be registered once at app.bentoguard.xyz (logging in with the " +
113
+ "owner wallet) before protection takes effect — until then payments are rejected.",
114
+ inputSchema: { type: "object", properties: {} },
115
+ },
116
+ {
117
+ name: "xpay_bento_disable",
118
+ description: "Turn OFF the Bento intent firewall. Use this if the wallet isn't registered at the " +
119
+ "Bento dashboard and payments are being rejected with 'Agent not found'. Payments then " +
120
+ "fall back to the local spending caps only.",
121
+ inputSchema: { type: "object", properties: {} },
122
+ },
102
123
  ];
103
124
  handlers["xpay_transfer_confirm"] = async (input) => {
104
125
  const code = String(input.confirmationCode ?? "").trim();
@@ -120,6 +141,58 @@ export async function startMcpServer() {
120
141
  });
121
142
  };
122
143
  // --- end MCP-only confirmation ---
144
+ // --- MCP-only: Bento intent firewall controls ---
145
+ // status + enable + disable. Disable is intentionally available so the agent
146
+ // can recover when the wallet isn't registered and payments are rejected.
147
+ const BENTO_DASHBOARD = "https://app.bentoguard.xyz/";
148
+ const agentSolanaAddress = () => {
149
+ try {
150
+ return xpay.wallet.address("solana");
151
+ }
152
+ catch {
153
+ return "";
154
+ }
155
+ };
156
+ handlers["xpay_bento_status"] = async () => {
157
+ const persisted = profileName ? Boolean(readProfileConfig(profileName).bento?.enabled) : false;
158
+ return {
159
+ enabled: xpay.guardrail.bentoEnabled(),
160
+ persisted,
161
+ profileBacked: Boolean(profileName),
162
+ agentWallet: agentSolanaAddress(),
163
+ dashboard: BENTO_DASHBOARD,
164
+ };
165
+ };
166
+ handlers["xpay_bento_enable"] = async () => {
167
+ if (!profileName) {
168
+ return {
169
+ ok: false,
170
+ error: "Bento requires a profile-backed wallet. This server is running with a raw key " +
171
+ "(XPAY_SOLANA_SECRET), so there's no profile to enable it on.",
172
+ };
173
+ }
174
+ setProfileBento(profileName, true); // persist for future boots
175
+ xpay.guardrail.setBentoEnabled(true); // activate for this session
176
+ return {
177
+ ok: true,
178
+ enabled: true,
179
+ agentWallet: agentSolanaAddress(),
180
+ action_required: `Register this agent wallet at ${BENTO_DASHBOARD} (log in with your owner wallet). ` +
181
+ `Until it's registered, payments are rejected with "Agent not found" — call ` +
182
+ `xpay_bento_disable to fall back to local caps if you don't want to register.`,
183
+ };
184
+ };
185
+ handlers["xpay_bento_disable"] = async () => {
186
+ if (profileName)
187
+ setProfileBento(profileName, false); // persist
188
+ xpay.guardrail.setBentoEnabled(false); // deactivate for this session
189
+ return {
190
+ ok: true,
191
+ enabled: false,
192
+ note: "Bento intent screening is off. Payments now rely on the local spending caps only.",
193
+ };
194
+ };
195
+ // --- end Bento controls ---
123
196
  const server = new Server({ name: "xpay", version: "0.1.0" }, { capabilities: { tools: {} } });
124
197
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
125
198
  tools: mcpTools.map((t) => ({
@@ -163,9 +236,13 @@ async function buildXPay() {
163
236
  name: profileName,
164
237
  passphrase: process.env.XPAY_PASSPHRASE ?? (await biometricMcpPassphrase(profileName)),
165
238
  });
239
+ // Expose the agent's own key so a runtime `xpay_bento_enable` can activate
240
+ // protect() without a restart. In-process only; it's the wallet's own key.
241
+ process.env.AGENT_WALLET_PRIVATE_KEY ??= deriveKeysFromMnemonic(profile.mnemonic).solana.secretKeyBase58;
166
242
  // No TTY here — approvals above the guardrail threshold surface as a
167
243
  // system Touch ID dialog when the profile has biometric unlock enabled.
168
- return createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
244
+ const xpay = createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
245
+ return { xpay, profileName };
169
246
  }
170
247
  // Fallback: ephemeral raw signers.
171
248
  const networks = (process.env.XPAY_NETWORKS ?? "solana,base").split(",");
@@ -187,7 +264,9 @@ async function buildXPay() {
187
264
  `Run \`xpay init\`, set XPAY_SOLANA_SECRET / XPAY_EVM_KEY, or unset ` +
188
265
  `XPAY_NO_AUTO_WALLET to auto-generate a wallet.`);
189
266
  }
190
- return createXPay({
267
+ // Raw-key mode: no profile on disk, so bento's profile-gated flag can't be
268
+ // toggled — profileName is null and the bento tools report that.
269
+ const xpay = createXPay({
191
270
  networks,
192
271
  signers,
193
272
  guardrail: {
@@ -196,6 +275,7 @@ async function buildXPay() {
196
275
  allowedHosts: process.env.XPAY_ALLOWED_HOSTS?.split(","),
197
276
  },
198
277
  });
278
+ return { xpay, profileName: null };
199
279
  }
200
280
  /**
201
281
  * Zero-config onboarding: no profile and no key configured, so generate a
@@ -219,7 +299,9 @@ async function autoProvisionXPay(profileName) {
219
299
  `[xpay-mcp] Fund the Solana address with USDC so the agent can pay.\n` +
220
300
  `[xpay-mcp] The recovery phrase lives in ${created.path} — back it up.\n\n`);
221
301
  const profile = await loadProfile({ name: profileName, passphrase });
222
- return createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
302
+ process.env.AGENT_WALLET_PRIVATE_KEY ??= deriveKeysFromMnemonic(profile.mnemonic).solana.secretKeyBase58;
303
+ const xpay = createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
304
+ return { xpay, profileName };
223
305
  }
224
306
  /**
225
307
  * Resolve the Sana API key. Preference:
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,16 @@ export declare class Guardrail {
64
64
  private checkBento;
65
65
  /** Sum of recent spend, in USD, within the last 24h. */
66
66
  recentSpend(): number;
67
+ /** Whether the Bento intent firewall is active on this instance. */
68
+ bentoEnabled(): boolean;
69
+ /**
70
+ * Toggle the Bento firewall on this live instance — lets the MCP
71
+ * `xpay_bento_enable` tool activate screening for the current session
72
+ * without a server restart. Persisting the flag to disk is separate
73
+ * (the caller does that via `setProfileBento`). Requires
74
+ * `AGENT_WALLET_PRIVATE_KEY` in the environment for `protect()` to run.
75
+ */
76
+ setBentoEnabled(enabled: boolean): void;
67
77
  }
68
78
  export declare class GuardrailError extends Error {
69
79
  constructor(message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAOD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,MAAM,GAAE,eAAoB;IAIxC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEzF;;;;;;;OAOG;YACW,UAAU;IAqDxB,wDAAwD;IACxD,WAAW,IAAI,MAAM;CAItB;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAOD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,MAAM,GAAE,eAAoB;IAIxC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEzF;;;;;;;OAOG;YACW,UAAU;IAqDxB,wDAAwD;IACxD,WAAW,IAAI,MAAM;IAKrB,oEAAoE;IACpE,YAAY,IAAI,OAAO;IAIvB;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGxC;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
@@ -120,6 +120,20 @@ export class Guardrail {
120
120
  const dayAgo = Date.now() - 24 * 60 * 60 * 1000;
121
121
  return this.history.filter((h) => h.at >= dayAgo).reduce((s, h) => s + h.usd, 0);
122
122
  }
123
+ /** Whether the Bento intent firewall is active on this instance. */
124
+ bentoEnabled() {
125
+ return Boolean(this.config.bento?.enabled);
126
+ }
127
+ /**
128
+ * Toggle the Bento firewall on this live instance — lets the MCP
129
+ * `xpay_bento_enable` tool activate screening for the current session
130
+ * without a server restart. Persisting the flag to disk is separate
131
+ * (the caller does that via `setProfileBento`). Requires
132
+ * `AGENT_WALLET_PRIVATE_KEY` in the environment for `protect()` to run.
133
+ */
134
+ setBentoEnabled(enabled) {
135
+ this.config.bento = { ...this.config.bento, enabled };
136
+ }
123
137
  }
124
138
  export class GuardrailError extends Error {
125
139
  constructor(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ3D;AAiBD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAcrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAY3D;AAgBD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAcrE"}
package/dist/use/index.js CHANGED
@@ -14,10 +14,14 @@
14
14
  import { extractRequirements, extractSettleEnvelope } from "../x402/extract.js";
15
15
  import { buildSvmPaymentHeader, isSvmNetwork } from "../x402/svm-payment.js";
16
16
  export async function use(args) {
17
- // If we have accepts up front, take the fast path unless the catalog
18
- // entry is missing fields that only a live 402 challenge carries.
19
- if (args.resource.accepts.length > 0 && !needsLiveChallenge(args, args.resource.accepts)) {
20
- return useWithRequirements(args, args.resource.accepts);
17
+ // If we have accepts up front, pick the network we can actually pay on
18
+ // (balance-aware) and take the fast path unless the chosen option is
19
+ // missing fields that only a live 402 challenge carries.
20
+ if (args.resource.accepts.length > 0) {
21
+ const req = await args.wallet.pickRequirementByBalance(args.resource.accepts);
22
+ if (req && !reqNeedsLiveChallenge(args, req)) {
23
+ return useWithRequirements(args, req);
24
+ }
21
25
  }
22
26
  // Otherwise probe the resource for a 402 challenge.
23
27
  return useWithLiveChallenge(args);
@@ -29,9 +33,8 @@ export async function use(args) {
29
33
  * 402 challenge provides. When it's missing, pay via the live flow instead
30
34
  * of failing with "feePayer is required in paymentRequirements.extra".
31
35
  */
32
- function needsLiveChallenge(args, reqs) {
33
- const req = args.wallet.pickRequirement(reqs);
34
- if (!req || !isSvmNetwork(req.network))
36
+ function reqNeedsLiveChallenge(args, req) {
37
+ if (!isSvmNetwork(req.network))
35
38
  return false;
36
39
  const signer = args.wallet.signer(normalizeNetwork(req.network));
37
40
  const usesSvmV2 = typeof signer?.getKitSigner === "function";
@@ -52,11 +55,7 @@ export async function useByUrl(args) {
52
55
  headers: args.headers,
53
56
  });
54
57
  }
55
- async function useWithRequirements(args, reqs) {
56
- const req = args.wallet.pickRequirement(reqs);
57
- if (!req) {
58
- throw new Error(`xpay.use: no compatible payment option. Resource accepts: ${reqs.map((a) => a.network).join(", ")}`);
59
- }
58
+ async function useWithRequirements(args, req) {
60
59
  // Guardrail runs *before* signing — this is the security boundary.
61
60
  await args.guardrail.check({ resource: args.resource, requirement: req });
62
61
  const settled = await settle(args, req, args.resource.x402Version ?? 1);
@@ -78,7 +77,7 @@ async function useWithLiveChallenge(args) {
78
77
  if (reqs.length === 0) {
79
78
  throw new Error(`xpay.use: ${args.resource.resource} returned 402 but no parseable accepts[] in body or headers`);
80
79
  }
81
- const req = args.wallet.pickRequirement(reqs);
80
+ const req = await args.wallet.pickRequirementByBalance(reqs);
82
81
  if (!req) {
83
82
  throw new Error(`xpay.use: ${args.resource.resource} accepts ${reqs.map((r) => r.network).join(", ")} but wallet has no matching signer`);
84
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"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"}
@@ -23,9 +23,16 @@ export interface Wallet {
23
23
  balance(network?: Network): Promise<number>;
24
24
  /**
25
25
  * Pick the best network to satisfy one of the given payment requirements.
26
- * Strategy v0: first match where we have a signer + (eventually) enough balance.
26
+ * Strategy v0: first match where we have a signer (ignores balance).
27
27
  */
28
28
  pickRequirement(reqs: PaymentRequirement[]): PaymentRequirement | undefined;
29
+ /**
30
+ * Balance-aware picker. Among requirements we have a signer for, prefer the
31
+ * first (in listed order) whose wallet balance covers the cost — so a $0
32
+ * Base wallet falls through to a funded Solana one. Falls back to the
33
+ * highest-balance candidate when none can cover the cost outright.
34
+ */
35
+ pickRequirementByBalance(reqs: PaymentRequirement[]): Promise<PaymentRequirement | undefined>;
29
36
  }
30
37
  export declare function createWallet(opts: WalletOptions): Wallet;
31
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gEAAgE;IAChE,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,sDAAsD;IACtD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,GAAG,SAAS,CAAC;CAC7E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA4CxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gEAAgE;IAChE,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,sDAAsD;IACtD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC5E;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CAC/F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAuExD"}
@@ -14,6 +14,36 @@ export function createWallet(opts) {
14
14
  throw new Error(`No signer configured for network "${network}"`);
15
15
  return s;
16
16
  }
17
+ /** Normalize an EIP-155 / Solana-CAIP network string to a configured slug. */
18
+ function matchNetwork(raw) {
19
+ if (signers[raw])
20
+ return raw;
21
+ // Solana CAIP — `solana:<genesis-hash>` (mainnet/devnet/testnet) → "solana".
22
+ if ((raw === "solana" || raw.startsWith("solana:") || raw.startsWith("solana-")) && signers["solana"]) {
23
+ return "solana";
24
+ }
25
+ if (raw === "eip155:8453" && signers["base"])
26
+ return "base";
27
+ if (raw === "eip155:1" && signers["ethereum"])
28
+ return "ethereum";
29
+ if (raw === "eip155:42161" && signers["arbitrum"])
30
+ return "arbitrum";
31
+ if (raw === "eip155:10" && signers["optimism"])
32
+ return "optimism";
33
+ return undefined;
34
+ }
35
+ /** USDC balance for a network slug; 0 when the signer can't report it. */
36
+ async function balanceOf(network) {
37
+ const s = signers[network];
38
+ if (!s || typeof s.balance !== "function")
39
+ return 0;
40
+ try {
41
+ return await s.balance();
42
+ }
43
+ catch {
44
+ return 0;
45
+ }
46
+ }
17
47
  return {
18
48
  networks,
19
49
  address(network = networks[0]) {
@@ -21,40 +51,33 @@ export function createWallet(opts) {
21
51
  },
22
52
  signer,
23
53
  has: (network) => Boolean(signers[network]),
24
- async balance(network = networks[0]) {
25
- // v0: signers may expose a `balance()` method; fall back to 0 if not.
26
- const s = signers[network];
27
- if (!s)
28
- return 0;
29
- if (typeof s.balance === "function")
30
- return s.balance();
31
- return 0;
32
- },
54
+ balance: (network = networks[0]) => balanceOf(network),
33
55
  pickRequirement(reqs) {
34
- // Normalize EIP-155 strings ("eip155:8453") to our network slugs.
35
- const matchNetwork = (raw) => {
36
- if (signers[raw])
37
- return raw;
38
- // Solana CAIP — `solana:<genesis-hash>` (mainnet/devnet/testnet) → "solana".
39
- if ((raw === "solana" || raw.startsWith("solana:") || raw.startsWith("solana-")) && signers["solana"]) {
40
- return "solana";
41
- }
42
- if (raw === "eip155:8453" && signers["base"])
43
- return "base";
44
- if (raw === "eip155:1" && signers["ethereum"])
45
- return "ethereum";
46
- if (raw === "eip155:42161" && signers["arbitrum"])
47
- return "arbitrum";
48
- if (raw === "eip155:10" && signers["optimism"])
49
- return "optimism";
50
- return undefined;
51
- };
52
56
  for (const req of reqs) {
53
57
  if (matchNetwork(req.network))
54
58
  return req;
55
59
  }
56
60
  return undefined;
57
61
  },
62
+ async pickRequirementByBalance(reqs) {
63
+ // Keep only options we can actually sign for, preserving listed order.
64
+ const candidates = reqs.filter((r) => matchNetwork(r.network));
65
+ if (candidates.length <= 1)
66
+ return candidates[0];
67
+ // Read balances for each candidate's network in parallel. Cost compare
68
+ // assumes USDC (6 decimals) — the asset for virtually all x402 calls.
69
+ const scored = await Promise.all(candidates.map(async (req) => {
70
+ const net = matchNetwork(req.network);
71
+ const bal = await balanceOf(net);
72
+ const need = req.amount ? Number(req.amount) / 1_000_000 : 0;
73
+ return { req, bal, need };
74
+ }));
75
+ // First (in listed order) that can cover the cost; else best-funded.
76
+ const affordable = scored.find((c) => c.bal > 0 && c.bal >= c.need);
77
+ if (affordable)
78
+ return affordable.req;
79
+ return scored.reduce((a, b) => (b.bal > a.bal ? b : a)).req;
80
+ },
58
81
  };
59
82
  }
60
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,SAAS,MAAM,CAAC,OAAgB;QAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,MAAM;QACN,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;YACjC,sEAAsE;YACtE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAA6D,CAAC;YACvF,IAAI,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACjB,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU;gBAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YACxD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,eAAe,CAAC,IAAI;YAClB,kEAAkE;YAClE,MAAM,YAAY,GAAG,CAAC,GAAW,EAAuB,EAAE;gBACxD,IAAI,OAAO,CAAC,GAAG,CAAC;oBAAE,OAAO,GAAG,CAAC;gBAC7B,6EAA6E;gBAC7E,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtG,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,IAAI,GAAG,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;oBAAE,OAAO,MAAM,CAAC;gBAC5D,IAAI,GAAG,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;oBAAE,OAAO,UAAU,CAAC;gBACjE,IAAI,GAAG,KAAK,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;oBAAE,OAAO,UAAU,CAAC;gBACrE,IAAI,GAAG,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;oBAAE,OAAO,UAAU,CAAC;gBAClE,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,OAAO,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xona-labs/xpay",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "description": "Discovery and usage layer for agentic commerce — multi-network wallet, x402 payments, 20k+ services via PayAI and other catalogs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",