@x402api/agent-wallet-cli 0.2.4 → 0.2.6

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
@@ -13,13 +13,23 @@ The CLI runs on the buyer or agent host; merchant integrations do not host it
13
13
  or receive its keys. A wallet's funded token balance is spend authority, and
14
14
  `wallet create --maximum-payment-atomic N` can add a per-payment ceiling. The
15
15
  ceiling is not a daily, cumulative, or merchant-specific permission and cannot
16
- be updated in place in version 0.2.4.
16
+ be updated in place in version 0.2.6.
17
17
 
18
- Run `x402api help --json` for the machine-readable command summary. Unlock
19
- material is accepted only from standard input or an owner-only file named by
18
+ Run `x402api wallet setup --json` once on a fresh host. It idempotently creates
19
+ a high-entropy managed unlock file under the private x402api data root; the
20
+ passphrase is never printed and no shell profile is changed. Unlock material
21
+ can instead come from supervised standard input or an owner-only file named by
20
22
  `X402API_WALLET_PASSWORD_FILE`; passphrases are never accepted as command-line
21
- values. Paid response bodies and full payment signatures remain in owner-only
22
- files and are not printed by ordinary JSON output.
23
+ values. A managed file and encrypted keystore on the same host do not protect
24
+ against a compromised same-user process. Paid response bodies and full payment
25
+ signatures remain in owner-only files and are not printed by ordinary JSON
26
+ output.
27
+
28
+ `wallet funding --wallet NAME --asset ASSET --target-balance-atomic N --json`
29
+ returns the exact token deficit and the payer address as both text and a QR
30
+ payload. Send only the named token on the exact network to that payer address,
31
+ not to the token contract/mint or merchant recipient. Supported Base/Solana
32
+ payments do not require buyer-funded ETH/SOL.
23
33
 
24
34
  Install the exact skill shipped with this CLI without overwriting an existing
25
35
  copy:
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiCA,KAAK,EAAE,GAAG;IACR,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAodF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC5B,GACL,OAAO,CAAC,MAAM,CAAC,CAsDjB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAwCA,KAAK,EAAE,GAAG;IACR,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAknBF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC5B,GACL,OAAO,CAAC,MAAM,CAAC,CAsDjB"}
package/dist/cli.js CHANGED
@@ -1,16 +1,18 @@
1
- import { cp, lstat, mkdir, mkdtemp, readFile, rename, rm, } from "node:fs/promises";
1
+ import { cp, lstat, mkdir, mkdtemp, rename, rm, } from "node:fs/promises";
2
2
  import { dirname, join, resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
- import { AgentWalletError, AttemptStore, asAgentWalletError, authorizePayment, backupWallet, createWallet, defaultDataRoot, importWallet, listWallets, readWalletBalance, readWalletMetadata, requestRefillNotification, retireWallet, submitAuthorizedPayment, walletPaths, } from "@x402api/agent-wallet-core";
4
+ import { AgentWalletError, AttemptStore, BASE_USDC_MAINNET_CONTRACT, SOLANA_USDC_MAINNET_MINT, SOLANA_USDT_MAINNET_MINT, SUPPORTED_NETWORKS, TRON_USDT_MAINNET_CONTRACT, asAgentWalletError, authorizePayment, backupWallet, createWallet, defaultDataRoot, importWallet, listWallets, normalizeWalletPassphrase, readWalletBalance, readWalletPassphraseFile, readWalletMetadata, requestRefillNotification, retireWallet, setupWalletUnlock, submitAuthorizedPayment, walletPaths, } from "@x402api/agent-wallet-core";
5
5
  const HELP = {
6
6
  version: 1,
7
7
  binary: "x402api",
8
8
  commands: [
9
+ "wallet setup",
9
10
  "wallet create --name <name> --network <network>",
10
11
  "wallet list",
11
12
  "wallet show --wallet <name>",
12
13
  "wallet address --wallet <name>",
13
- "wallet balance --wallet <name>",
14
+ "wallet balance --wallet <name> [--asset <asset>]",
15
+ "wallet funding --wallet <name> --asset <asset> --target-balance-atomic <amount>",
14
16
  "wallet notify-refill --wallet <name> --subscription-reference <id> --renew-by <UTC> --target-balance-atomic <amount> --reason <renewal|low_balance>",
15
17
  "wallet backup --wallet <name> --output <file>",
16
18
  "wallet import --name <name> --input <file>",
@@ -25,7 +27,11 @@ const HELP = {
25
27
  "pay --wallet <name> --request-envelope <file> --artifact-out <file>",
26
28
  "skill install --output <directory>",
27
29
  ],
28
- passwordSources: ["--password-stdin", "X402API_WALLET_PASSWORD_FILE"],
30
+ passwordSources: [
31
+ "managed wallet setup",
32
+ "--password-stdin",
33
+ "X402API_WALLET_PASSWORD_FILE",
34
+ ],
29
35
  rpcEnvironment: [
30
36
  "X402API_BASE_RPC_URL",
31
37
  "X402API_SOLANA_RPC_URL",
@@ -82,41 +88,16 @@ function rejectUnknown(parsed, allowedValues, allowedFlags = ["json"]) {
82
88
  }
83
89
  }
84
90
  }
85
- async function readPasswordFile(path) {
86
- const absolute = resolve(path);
87
- const stat = await lstat(absolute).catch((error) => {
88
- if (error.code === "ENOENT") {
89
- throw new AgentWalletError("password_required", "wallet password file was not found");
90
- }
91
- throw error;
92
- });
93
- if (!stat.isFile() ||
94
- stat.isSymbolicLink() ||
95
- stat.size < 12 ||
96
- stat.size > 4096 ||
97
- (process.platform !== "win32" && (stat.mode & 0o077) !== 0) ||
98
- (typeof process.getuid === "function" && stat.uid !== process.getuid())) {
99
- throw new AgentWalletError("wallet_storage_unsafe", "wallet password file must be an owner-only regular file");
100
- }
101
- return readFile(absolute, "utf8");
102
- }
103
- function normalizePassphrase(value) {
104
- const normalized = value.replace(/\r?\n$/, "");
105
- if (normalized.includes("\n") || normalized.includes("\r")) {
106
- throw new AgentWalletError("password_required", "wallet passphrase must be one line");
107
- }
108
- return normalized;
109
- }
110
- async function passphrase(parsed, io, environment) {
91
+ async function passphrase(parsed, io, environment, managedPasswordFile) {
111
92
  const passwordFile = environment.X402API_WALLET_PASSWORD_FILE;
112
93
  if (parsed.flags.has("password-stdin") && passwordFile) {
113
94
  throw new AgentWalletError("password_required", "configure exactly one wallet password source");
114
95
  }
115
96
  if (parsed.flags.has("password-stdin"))
116
- return normalizePassphrase(await io.readStdin());
97
+ return normalizeWalletPassphrase(await io.readStdin());
117
98
  if (passwordFile)
118
- return normalizePassphrase(await readPasswordFile(passwordFile));
119
- throw new AgentWalletError("password_required", "use --password-stdin or X402API_WALLET_PASSWORD_FILE");
99
+ return readWalletPassphraseFile(passwordFile);
100
+ return readWalletPassphraseFile(managedPasswordFile);
120
101
  }
121
102
  function rpcConfiguration(environment) {
122
103
  return {
@@ -146,6 +127,81 @@ function publicWallet(metadata) {
146
127
  : { retiredAt: metadata.retiredAt }),
147
128
  };
148
129
  }
130
+ function fundingAssets(network) {
131
+ if (network === "eip155:8453") {
132
+ return [
133
+ {
134
+ asset: BASE_USDC_MAINNET_CONTRACT,
135
+ assetSymbol: "USDC",
136
+ decimals: 6,
137
+ },
138
+ ];
139
+ }
140
+ if (network === "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp") {
141
+ return [
142
+ {
143
+ asset: SOLANA_USDC_MAINNET_MINT,
144
+ assetSymbol: "USDC",
145
+ decimals: 6,
146
+ },
147
+ {
148
+ asset: SOLANA_USDT_MAINNET_MINT,
149
+ assetSymbol: "USDT",
150
+ decimals: 6,
151
+ },
152
+ ];
153
+ }
154
+ return [
155
+ {
156
+ asset: TRON_USDT_MAINNET_CONTRACT,
157
+ assetSymbol: "USDT",
158
+ decimals: 6,
159
+ },
160
+ ];
161
+ }
162
+ function walletFundingActions(metadata) {
163
+ return fundingAssets(metadata.network).map((item) => ({
164
+ ...item,
165
+ balance: {
166
+ argv: [
167
+ "x402api",
168
+ "wallet",
169
+ "balance",
170
+ "--wallet",
171
+ metadata.name,
172
+ "--asset",
173
+ item.asset,
174
+ "--json",
175
+ ],
176
+ },
177
+ funding: {
178
+ argv: [
179
+ "x402api",
180
+ "wallet",
181
+ "funding",
182
+ "--wallet",
183
+ metadata.name,
184
+ "--asset",
185
+ item.asset,
186
+ "--target-balance-atomic",
187
+ "<target-balance-atomic>",
188
+ "--json",
189
+ ],
190
+ },
191
+ }));
192
+ }
193
+ function canonicalAtomic(value, label) {
194
+ if (!/^(?:0|[1-9][0-9]{0,77})$/.test(value)) {
195
+ throw new AgentWalletError("invalid_input", `${label} must be canonical non-negative atomic units`);
196
+ }
197
+ return BigInt(value);
198
+ }
199
+ function decimalAmount(value, decimals = 6) {
200
+ const digits = value.toString().padStart(decimals + 1, "0");
201
+ const whole = digits.slice(0, -decimals);
202
+ const fraction = digits.slice(-decimals).replace(/0+$/, "");
203
+ return fraction.length > 0 ? `${whole}.${fraction}` : whole;
204
+ }
149
205
  async function skillSourceDirectory() {
150
206
  const moduleDirectory = dirname(fileURLToPath(import.meta.url));
151
207
  const candidates = [
@@ -201,6 +257,44 @@ async function dispatch(parsed, io, environment) {
201
257
  };
202
258
  }
203
259
  const paths = walletPaths(defaultDataRoot(environment));
260
+ if (group === "wallet" && action === "setup") {
261
+ rejectUnknown(parsed, [], ["json", "password-stdin"]);
262
+ const passwordFile = environment.X402API_WALLET_PASSWORD_FILE ?? paths.unlock;
263
+ if (parsed.flags.has("password-stdin") && environment.X402API_WALLET_PASSWORD_FILE) {
264
+ throw new AgentWalletError("password_required", "configure exactly one wallet password source");
265
+ }
266
+ const setup = await setupWalletUnlock({
267
+ passwordFile,
268
+ ...(parsed.flags.has("password-stdin")
269
+ ? { passphrase: await io.readStdin() }
270
+ : {}),
271
+ });
272
+ return {
273
+ ...setup,
274
+ dataRoot: paths.root,
275
+ passwordSource: environment.X402API_WALLET_PASSWORD_FILE
276
+ ? "environment_file"
277
+ : "managed_default_file",
278
+ supportedNetworks: SUPPORTED_NETWORKS,
279
+ nextActions: {
280
+ list: { argv: ["x402api", "wallet", "list", "--json"] },
281
+ create: {
282
+ argv: [
283
+ "x402api",
284
+ "wallet",
285
+ "create",
286
+ "--name",
287
+ "<wallet-name>",
288
+ "--network",
289
+ "<exact-network>",
290
+ "--maximum-payment-atomic",
291
+ "<per-payment-policy-cap>",
292
+ "--json",
293
+ ],
294
+ },
295
+ },
296
+ };
297
+ }
204
298
  if (group === "wallet" && action === "create") {
205
299
  rejectUnknown(parsed, ["name", "network", "maximum-payment-atomic"], ["json", "password-stdin"]);
206
300
  const network = required(parsed, "network");
@@ -208,7 +302,7 @@ async function dispatch(parsed, io, environment) {
208
302
  walletsDirectory: paths.wallets,
209
303
  name: required(parsed, "name"),
210
304
  network,
211
- passphrase: await passphrase(parsed, io, environment),
305
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
212
306
  ...(parsed.values.has("maximum-payment-atomic")
213
307
  ? { maximumPaymentAtomic: required(parsed, "maximum-payment-atomic") }
214
308
  : {}),
@@ -217,6 +311,7 @@ async function dispatch(parsed, io, environment) {
217
311
  ...publicWallet(metadata),
218
312
  storage: "local-encrypted-keystore",
219
313
  status: "created_unfunded",
314
+ fundingAssets: walletFundingActions(metadata),
220
315
  };
221
316
  }
222
317
  if (group === "wallet" && action === "list") {
@@ -231,14 +326,64 @@ async function dispatch(parsed, io, environment) {
231
326
  return publicWallet(await readWalletMetadata(paths.wallets, required(parsed, "wallet")));
232
327
  }
233
328
  if (group === "wallet" && action === "balance") {
234
- rejectUnknown(parsed, ["wallet"]);
329
+ rejectUnknown(parsed, ["wallet", "asset"]);
235
330
  const metadata = await readWalletMetadata(paths.wallets, required(parsed, "wallet"));
236
331
  return readWalletBalance({
237
332
  network: metadata.network,
238
333
  address: metadata.address,
239
334
  rpc: rpcConfiguration(environment),
335
+ ...(parsed.values.has("asset")
336
+ ? { asset: required(parsed, "asset") }
337
+ : {}),
240
338
  });
241
339
  }
340
+ if (group === "wallet" && action === "funding") {
341
+ rejectUnknown(parsed, ["wallet", "asset", "target-balance-atomic"]);
342
+ const metadata = await readWalletMetadata(paths.wallets, required(parsed, "wallet"));
343
+ const balance = await readWalletBalance({
344
+ network: metadata.network,
345
+ address: metadata.address,
346
+ rpc: rpcConfiguration(environment),
347
+ asset: required(parsed, "asset"),
348
+ });
349
+ const target = canonicalAtomic(required(parsed, "target-balance-atomic"), "target balance");
350
+ const current = canonicalAtomic(balance.assetAtomic, "current balance");
351
+ const deficit = target > current ? target - current : 0n;
352
+ const launchedSponsoredNetwork = metadata.network !== "tron:mainnet";
353
+ return {
354
+ ...balance,
355
+ status: deficit === 0n ? "funded" : "funding_required",
356
+ assetDecimals: 6,
357
+ targetBalanceAtomic: target.toString(),
358
+ targetBalance: decimalAmount(target),
359
+ deficitAtomic: deficit.toString(),
360
+ deficit: decimalAmount(deficit),
361
+ funding: {
362
+ destination: metadata.address,
363
+ qrPayload: metadata.address,
364
+ network: metadata.network,
365
+ asset: balance.asset,
366
+ assetSymbol: balance.assetSymbol,
367
+ amountAtomic: deficit.toString(),
368
+ amount: decimalAmount(deficit),
369
+ showQr: true,
370
+ showAddressString: true,
371
+ nativeFeeFundingRequiredForSupportedPayments: launchedSponsoredNetwork
372
+ ? false
373
+ : null,
374
+ instruction: deficit === 0n
375
+ ? "The wallet already meets the requested token balance."
376
+ : `Transfer ${decimalAmount(deficit)} ${balance.assetSymbol} on ${metadata.network} to the payer wallet address ${metadata.address}. Send the token to the wallet address, not to the token contract or merchant recipient.`,
377
+ ...(launchedSponsoredNetwork
378
+ ? {
379
+ networkFee: "Do not fund ETH or SOL for supported sponsored x402 payments; x402api supplies the network fee.",
380
+ }
381
+ : {
382
+ releaseNotice: "TRON wallet management is available, but public payment authorization is not launched.",
383
+ }),
384
+ },
385
+ };
386
+ }
242
387
  if (group === "wallet" && action === "notify-refill") {
243
388
  rejectUnknown(parsed, [
244
389
  "wallet",
@@ -254,7 +399,7 @@ async function dispatch(parsed, io, environment) {
254
399
  return requestRefillNotification({
255
400
  walletsDirectory: paths.wallets,
256
401
  wallet: required(parsed, "wallet"),
257
- passphrase: await passphrase(parsed, io, environment),
402
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
258
403
  rpc: rpcConfiguration(environment),
259
404
  notificationUrl,
260
405
  subscriptionReference: required(parsed, "subscription-reference"),
@@ -282,7 +427,7 @@ async function dispatch(parsed, io, environment) {
282
427
  walletsDirectory: paths.wallets,
283
428
  name: required(parsed, "name"),
284
429
  input: required(parsed, "input"),
285
- passphrase: await passphrase(parsed, io, environment),
430
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
286
431
  });
287
432
  return { ...publicWallet(metadata), status: "imported" };
288
433
  }
@@ -296,7 +441,7 @@ async function dispatch(parsed, io, environment) {
296
441
  const metadata = await retireWallet({
297
442
  walletsDirectory: paths.wallets,
298
443
  name: wallet,
299
- passphrase: await passphrase(parsed, io, environment),
444
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
300
445
  confirmation: required(parsed, "confirm"),
301
446
  });
302
447
  return { ...publicWallet(metadata), status: "retired" };
@@ -311,7 +456,7 @@ async function dispatch(parsed, io, environment) {
311
456
  walletsDirectory: paths.wallets,
312
457
  attemptsDirectory: paths.attempts,
313
458
  wallet: required(parsed, "wallet"),
314
- passphrase: await passphrase(parsed, io, environment),
459
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
315
460
  requestEnvelopePath: required(parsed, "request-envelope"),
316
461
  artifactPath: required(parsed, "artifact-out"),
317
462
  rpc: rpcConfiguration(environment),
@@ -354,7 +499,7 @@ async function dispatch(parsed, io, environment) {
354
499
  walletsDirectory: paths.wallets,
355
500
  attemptsDirectory: paths.attempts,
356
501
  wallet: required(parsed, "wallet"),
357
- passphrase: await passphrase(parsed, io, environment),
502
+ passphrase: await passphrase(parsed, io, environment, paths.unlock),
358
503
  requestEnvelopePath,
359
504
  artifactPath: required(parsed, "artifact-out"),
360
505
  rpc: rpcConfiguration(environment),
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x402api/agent-wallet-cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Command-line wallet for autonomous x402 purchases.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,6 +38,6 @@
38
38
  "lint": "tsc --noEmit -p tsconfig.json"
39
39
  },
40
40
  "dependencies": {
41
- "@x402api/agent-wallet-core": "0.2.4"
41
+ "@x402api/agent-wallet-core": "0.2.6"
42
42
  }
43
43
  }
package/skill/SKILL.md CHANGED
@@ -27,25 +27,36 @@ stored. Merchant tools, including the WarpMetal reference integration, may
27
27
  prepare requests and consume artifacts, but they do not host the CLI or receive
28
28
  its private keys.
29
29
 
30
- Do not supply a passphrase on the command line. An operator must arrange
31
- `X402API_WALLET_PASSWORD_FILE` as an owner-only file or supervise
32
- `--password-stdin`. Never read, print, summarize, or paste that passphrase,
33
- seed, private key, encrypted keystore, or complete payment signature.
30
+ Do not supply a passphrase on the command line. On a fresh host, run `x402api
31
+ wallet setup --json`; the CLI creates and automatically uses a high-entropy,
32
+ owner-only managed unlock file without printing it or changing a shell profile.
33
+ An operator may instead arrange `X402API_WALLET_PASSWORD_FILE` as an owner-only
34
+ file or supervise `--password-stdin`. Never read, print, summarize, or paste
35
+ that passphrase, seed, private key, encrypted keystore, or complete payment
36
+ signature. The managed file is an automation boundary, not protection from a
37
+ compromised same-user host.
34
38
 
35
39
  ## Choose or create the wallet
36
40
 
37
41
  1. Determine the exact accepted network from the merchant challenge.
38
- 2. Run `x402api wallet list --json` and reuse a suitable persistent wallet.
42
+ 2. Run `x402api wallet setup --json`, then `x402api wallet list --json`, and
43
+ reuse a suitable persistent wallet. Repeated setup is safe and must not be
44
+ replaced with hand-written password-file or shell-profile commands.
39
45
  3. Create one only if no suitable configured wallet exists. Never substitute
40
46
  an address from another network or create a new wallet merely because an
41
47
  order is a renewal.
42
48
  4. Treat the funded balance as fully spendable by the autonomous agent, subject
43
49
  to any local `maximumPaymentAtomic` per-payment ceiling. That ceiling is not
44
50
  a daily, cumulative, or merchant-specific permission.
45
- 5. Show the public address, exact network, supported asset, sponsored native
46
- fee currency, and requested token funding amount when funding is
47
- insufficient. Never ask the owner to fund ETH/SOL or reveal or import a
48
- personal seed.
51
+ 5. Run the exact asset-aware `wallet funding` argv provided by the merchant
52
+ workflow. Show its current, target, and deficit token amounts, public payer
53
+ address, exact network, asset contract/mint, and QR payload when funding is
54
+ insufficient. Never ask the owner to fund ETH/SOL, send to the token
55
+ contract/merchant recipient, or reveal/import a personal seed.
56
+ 6. For a one-off Base wallet balance or funding check, if the operator has not
57
+ supplied a credential-free Base RPC, set `X402API_BASE_RPC_URL` to the
58
+ official Base Mainnet endpoint `https://mainnet.base.org`. It is rate-limited
59
+ and suitable for interactive setup checks, not sustained production traffic.
49
60
 
50
61
  Keep Base, Solana, and TRON keys and addresses separate. TRON wallet management
51
62
  does not mean TRON payment support: the launch payer must reject TRON as coming
@@ -7,8 +7,13 @@ is present and uses a stable nonzero exit code.
7
7
  ## Environment
8
8
 
9
9
  - `X402API_HOME`: optional local data root.
10
- - `X402API_WALLET_PASSWORD_FILE`: owner-only, single-line passphrase file.
11
- - `X402API_BASE_RPC_URL`: credential-free Base RPC URL.
10
+ - `X402API_WALLET_PASSWORD_FILE`: optional owner-only, single-line passphrase
11
+ file override. Without it, unlocking uses the managed file created by
12
+ `wallet setup`.
13
+ - `X402API_BASE_RPC_URL`: credential-free Base RPC URL. For one-off interactive
14
+ balance and funding checks, Base documents `https://mainnet.base.org` as its
15
+ official Base Mainnet endpoint. It is rate-limited and is not intended for
16
+ sustained production traffic.
12
17
  - `X402API_SOLANA_RPC_URL`: credential-free Solana RPC URL.
13
18
  - `X402API_TRON_RPC_URL`: credential-free TRON RPC URL.
14
19
  - `X402API_NOTIFICATION_URL`: credential-free x402api refill endpoint.
@@ -20,11 +25,13 @@ these URLs.
20
25
  ## Wallet commands
21
26
 
22
27
  ```text
28
+ x402api wallet setup --json
23
29
  x402api wallet create --name NAME --network NETWORK [--maximum-payment-atomic N] --json
24
30
  x402api wallet list --json
25
31
  x402api wallet show --wallet NAME --json
26
32
  x402api wallet address --wallet NAME --json
27
- x402api wallet balance --wallet NAME --json
33
+ x402api wallet balance --wallet NAME [--asset ASSET] --json
34
+ x402api wallet funding --wallet NAME --asset ASSET --target-balance-atomic N --json
28
35
  x402api wallet backup --wallet NAME --output FILE --json
29
36
  x402api wallet import --name NAME --input FILE --json
30
37
  x402api wallet retire --wallet NAME --confirm NAME --json
@@ -34,14 +41,22 @@ x402api wallet sweep --wallet NAME --to ADDRESS --json
34
41
  `--maximum-payment-atomic` is an optional canonical decimal in atomic units for
35
42
  the wallet's supported payment asset. It is enforced on each authorization and
36
43
  returns `payment_limit_exceeded` when the exact amount is larger. It is not a
37
- daily or cumulative budget. Version 0.2.4 sets it only at wallet creation and
44
+ daily or cumulative budget. Version 0.2.6 sets it only at wallet creation and
38
45
  does not provide a policy-update command.
39
46
 
40
- Unlocking commands additionally require `X402API_WALLET_PASSWORD_FILE` or an
41
- operator-supervised `--password-stdin`. Supported V1 networks are
47
+ On a fresh host, `wallet setup` atomically creates one high-entropy managed
48
+ unlock file with owner-only permissions. Repeating setup validates and reuses
49
+ the file; it never overwrites or prints the passphrase. An explicit
50
+ `X402API_WALLET_PASSWORD_FILE` path or operator-supervised `--password-stdin`
51
+ remains available. Supported V1 networks are
42
52
  `eip155:8453`, `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, and
43
53
  `tron:mainnet`.
44
54
 
55
+ For Solana, pass the exact USDC or USDT mint to `balance` and `funding`.
56
+ `wallet funding` reports current, target, and deficit amounts in atomic and
57
+ normal six-decimal token units. Its destination and QR payload are always the
58
+ payer wallet public address. A wrong asset fails closed before an RPC request.
59
+
45
60
  ## Refill notification
46
61
 
47
62
  ```text
@@ -9,7 +9,7 @@ Base, Solana, and TRON.
9
9
 
10
10
  An optional `maximumPaymentAtomic` value adds a local ceiling to each payment.
11
11
  It does not limit aggregate or daily spend, restrict merchants, revoke existing
12
- artifacts, or protect a wallet on a compromised same-user host. Version 0.2.4
12
+ artifacts, or protect a wallet on a compromised same-user host. Version 0.2.6
13
13
  sets this value only when creating a wallet and has no policy-update command.
14
14
 
15
15
  Show the exact network, token contract or mint, public address, and requested
@@ -22,6 +22,9 @@ never fall back to a buyer-funded transaction or require buyer ETH/SOL.
22
22
 
23
23
  ## Secret handling
24
24
 
25
+ - Use `x402api wallet setup --json` for the managed owner-only unlock file. Do
26
+ not recreate it with shell redirection, add it to a shell profile, or read it
27
+ to confirm setup. The returned path and status are safe; its contents are not.
25
28
  - Never ask for a seed phrase or private key.
26
29
  - Never read or display a password file, keystore, backup contents, or complete
27
30
  payment artifact.