@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 +15 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +185 -40
- package/dist/cli.js.map +1 -1
- package/package.json +2 -2
- package/skill/SKILL.md +20 -9
- package/skill/references/cli-reference.md +21 -6
- package/skill/references/safety.md +4 -1
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.
|
|
16
|
+
be updated in place in version 0.2.6.
|
|
17
17
|
|
|
18
|
-
Run `x402api
|
|
19
|
-
|
|
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.
|
|
22
|
-
|
|
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":"
|
|
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,
|
|
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: [
|
|
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
|
|
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
|
|
97
|
+
return normalizeWalletPassphrase(await io.readStdin());
|
|
117
98
|
if (passwordFile)
|
|
118
|
-
return
|
|
119
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
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.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
11
|
-
|
|
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.
|
|
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
|
-
|
|
41
|
-
|
|
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.
|
|
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.
|