@pocketagent/paw 1.0.3 → 1.0.4

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
@@ -65,6 +65,9 @@ We're launching on Solana because:
65
65
  - **Total Portfolio View**: See combined value of SOL + tokens in USD
66
66
  - **Multi-Token Support**: Trade any SPL token by mint address
67
67
  - **Transaction History**: Track all agent activities
68
+ - **QR Code Display**: Generate QR codes for easy mobile funding
69
+ - **Wallet Import/Export**: Backup and migrate wallets easily
70
+ - **Multi-Send**: Send to multiple addresses in one transaction
68
71
 
69
72
  ### šŸŽÆ Meme Trading Ready
70
73
  - **Configurable Slippage**: Set high slippage for volatile tokens
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,cAAc,SA2BvB,CAAC"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SAkCvB,CAAC"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addressCommand = void 0;
4
4
  const commander_1 = require("commander");
5
5
  const manager_1 = require("../../core/wallet/manager");
6
+ const qrcode = require('qrcode-terminal');
6
7
  exports.addressCommand = new commander_1.Command('address')
7
8
  .description('šŸ“Ÿ Show wallet address')
8
9
  .argument('[agent-id]', 'Agent identifier')
9
10
  .option('--agent-id <id>', 'Agent identifier (alternative)')
11
+ .option('--qr', 'Display address as QR code')
10
12
  .action(async (agentIdArg, options) => {
11
13
  try {
12
14
  // Support both positional and flag syntax
@@ -22,6 +24,10 @@ exports.addressCommand = new commander_1.Command('address')
22
24
  console.log('\nšŸ“Ÿ PAW - Wallet Address');
23
25
  console.log('Agent ID:', agentId);
24
26
  console.log('Address: ', walletInfo.address);
27
+ if (options.qr) {
28
+ console.log('\nšŸ“± Scan QR Code:\n');
29
+ qrcode.generate(walletInfo.address, { small: true });
30
+ }
25
31
  console.log('');
26
32
  }
27
33
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAE7C,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,uBAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE7B,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,uBAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -147,7 +147,7 @@ exports.dashboardCommand = new commander_1.Command('dashboard')
147
147
  content += '\n';
148
148
  // Agent info
149
149
  content += `{green-fg}AGENT:{/green-fg} ${agentId}\n`;
150
- content += `{green-fg}ADDR:{/green-fg} ${walletInfo.address.slice(0, 20)}...\n`;
150
+ content += `{green-fg}ADDR:{/green-fg} ${walletInfo.address}\n`;
151
151
  content += `{green-fg}NET:{/green-fg} ${network.toUpperCase()}\n`;
152
152
  content += '\n';
153
153
  content += '───────────────────────────────────────────────────────────\n';
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const exportCommand: Command;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SA6DtB,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.exportCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const manager_1 = require("../../core/wallet/manager");
42
+ const bs58_1 = __importDefault(require("bs58"));
43
+ const readline = __importStar(require("readline"));
44
+ exports.exportCommand = new commander_1.Command('export')
45
+ .description('šŸ“Ÿ Export wallet private key')
46
+ .argument('<agent-id>', 'Agent identifier')
47
+ .option('--confirm <agent-id>', 'Skip confirmation prompt (for automation)')
48
+ .action(async (agentId, options) => {
49
+ try {
50
+ // Security warning
51
+ console.log('\nāš ļø WARNING: SENSITIVE DATA EXPORT');
52
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
53
+ console.log('This will display your wallet private key in PLAINTEXT!');
54
+ console.log('Anyone with this information can STEAL YOUR FUNDS!');
55
+ console.log('Only export in a secure, private location.');
56
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
57
+ // Confirmation
58
+ if (!options.confirm || options.confirm !== agentId) {
59
+ // Interactive confirmation
60
+ const rl = readline.createInterface({
61
+ input: process.stdin,
62
+ output: process.stdout,
63
+ });
64
+ const answer = await new Promise((resolve) => {
65
+ rl.question(`Type '${agentId}' to confirm export: `, resolve);
66
+ });
67
+ rl.close();
68
+ if (answer !== agentId) {
69
+ console.log('\nāŒ Export cancelled - confirmation did not match\n');
70
+ process.exit(1);
71
+ }
72
+ }
73
+ // Load keypair
74
+ const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
75
+ console.log('\nšŸ“Ÿ PAW - Wallet Export');
76
+ console.log('Agent ID:', agentId);
77
+ console.log('');
78
+ // Export as base58 encoded private key
79
+ const privateKeyBase58 = bs58_1.default.encode(keypair.secretKey);
80
+ console.log('šŸ”‘ Private Key (Base58):');
81
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
82
+ console.log(privateKeyBase58);
83
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
84
+ console.log('\nāš ļø Keep this secret and secure!');
85
+ console.log('āš ļø Never share it with anyone!');
86
+ console.log('šŸ’” Import this into Phantom, Solflare, or any Solana wallet');
87
+ console.log('');
88
+ // Clear keypair from memory
89
+ keypair.secretKey.fill(0);
90
+ }
91
+ catch (error) {
92
+ console.error('\nāŒ Error:', error.message);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,gDAAwB;AACxB,mDAAqC;AAExB,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAErE,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACpD,2BAA2B;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACnD,EAAE,CAAC,QAAQ,CAAC,SAAS,OAAO,uBAAuB,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAE3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,4BAA4B;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const importCommand: Command;
3
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAiEtB,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.importCommand = void 0;
7
+ const commander_1 = require("commander");
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const encryption_1 = require("../../core/storage/encryption");
10
+ const filesystem_1 = require("../../core/storage/filesystem");
11
+ const bs58_1 = __importDefault(require("bs58"));
12
+ exports.importCommand = new commander_1.Command('import')
13
+ .description('šŸ“Ÿ Import existing wallet from private key')
14
+ .argument('<agent-id>', 'Agent identifier for the imported wallet')
15
+ .requiredOption('--private-key <key>', 'Base58 encoded private key')
16
+ .option('--network <network>', 'Network to use (devnet, mainnet-beta, testnet)', 'mainnet-beta')
17
+ .action(async (agentId, options) => {
18
+ try {
19
+ // Check if wallet already exists
20
+ if (await filesystem_1.FileSystemStorage.exists(agentId)) {
21
+ console.error(`\nāŒ Error: Wallet for agent "${agentId}" already exists`);
22
+ console.log('\nUse a different agent ID or delete the existing wallet first.');
23
+ console.log('');
24
+ process.exit(1);
25
+ }
26
+ console.log('\nšŸ“Ÿ PAW - Import Wallet');
27
+ console.log('Agent ID:', agentId);
28
+ console.log('Network: ', options.network);
29
+ console.log('');
30
+ // Decode private key from base58
31
+ let keypair;
32
+ try {
33
+ const privateKeyBytes = bs58_1.default.decode(options.privateKey);
34
+ keypair = web3_js_1.Keypair.fromSecretKey(privateKeyBytes);
35
+ }
36
+ catch (error) {
37
+ console.error('āŒ Error: Invalid private key');
38
+ console.log(`\nDetails: ${error.message}`);
39
+ console.log('');
40
+ process.exit(1);
41
+ }
42
+ // Generate passphrase for encryption
43
+ const passphrase = encryption_1.EncryptionService.generatePassphrase();
44
+ // Encrypt keypair
45
+ const encryptedKeypair = encryption_1.EncryptionService.encrypt(keypair, passphrase);
46
+ // Save encrypted keypair to disk
47
+ await filesystem_1.FileSystemStorage.saveKeypair(agentId, encryptedKeypair);
48
+ // Save passphrase (encrypted with machine-specific key)
49
+ await filesystem_1.FileSystemStorage.savePassphrase(agentId, passphrase);
50
+ // Save config
51
+ await filesystem_1.FileSystemStorage.saveConfig(agentId, {
52
+ agentId,
53
+ publicKey: keypair.publicKey.toBase58(),
54
+ createdAt: new Date().toISOString(),
55
+ network: options.network,
56
+ });
57
+ console.log('āœ… Wallet imported successfully!\n');
58
+ console.log('Agent ID:', agentId);
59
+ console.log('Address: ', keypair.publicKey.toBase58());
60
+ console.log('Network: ', options.network);
61
+ console.log('');
62
+ // Clear keypair from memory
63
+ encryption_1.EncryptionService.clearKeypair(keypair);
64
+ }
65
+ catch (error) {
66
+ console.error('\nāŒ Error:', error.message);
67
+ process.exit(1);
68
+ }
69
+ });
70
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const multiSendCommand: Command;
3
+ //# sourceMappingURL=multi-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/multi-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,gBAAgB,SAiHzB,CAAC"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiSendCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const manager_1 = require("../../core/wallet/manager");
6
+ const solana_1 = require("../../utils/solana");
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ exports.multiSendCommand = new commander_1.Command('multi-send')
9
+ .description('šŸ“Ÿ Send SOL to multiple addresses')
10
+ .argument('<agent-id>', 'Agent identifier')
11
+ .requiredOption('--addresses <addresses>', 'Comma-separated list of recipient addresses')
12
+ .requiredOption('--amounts <amounts>', 'Comma-separated list of amounts (in SOL)')
13
+ .option('--network <network>', 'Network to use (devnet, mainnet-beta, testnet)', 'mainnet-beta')
14
+ .action(async (agentId, options) => {
15
+ try {
16
+ console.log('\nšŸ“Ÿ PAW - Multi-Send');
17
+ console.log('Agent ID:', agentId);
18
+ console.log('Network: ', options.network);
19
+ console.log('');
20
+ // Parse addresses and amounts
21
+ const addresses = options.addresses.split(',').map((addr) => addr.trim());
22
+ const amounts = options.amounts.split(',').map((amt) => parseFloat(amt.trim()));
23
+ // Validate
24
+ if (addresses.length !== amounts.length) {
25
+ console.error('āŒ Error: Number of addresses must match number of amounts');
26
+ console.log(`\nAddresses: ${addresses.length}, Amounts: ${amounts.length}`);
27
+ console.log('');
28
+ process.exit(1);
29
+ }
30
+ if (addresses.length === 0) {
31
+ console.error('āŒ Error: At least one recipient required');
32
+ console.log('');
33
+ process.exit(1);
34
+ }
35
+ // Validate addresses
36
+ const recipients = [];
37
+ for (let i = 0; i < addresses.length; i++) {
38
+ try {
39
+ recipients.push(new web3_js_1.PublicKey(addresses[i]));
40
+ }
41
+ catch (error) {
42
+ console.error(`āŒ Error: Invalid address at position ${i + 1}: ${addresses[i]}`);
43
+ console.log('');
44
+ process.exit(1);
45
+ }
46
+ }
47
+ // Calculate total
48
+ const totalAmount = amounts.reduce((sum, amt) => sum + amt, 0);
49
+ const totalLamports = Math.floor(totalAmount * web3_js_1.LAMPORTS_PER_SOL);
50
+ console.log('šŸ“‹ Transfer Summary:');
51
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
52
+ for (let i = 0; i < addresses.length; i++) {
53
+ console.log(`${i + 1}. ${addresses[i]}`);
54
+ console.log(` Amount: ${amounts[i]} SOL`);
55
+ }
56
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
57
+ console.log(`Total: ${totalAmount} SOL (${recipients.length} recipients)`);
58
+ console.log('');
59
+ // Load keypair
60
+ const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
61
+ // Check balance
62
+ const connection = solana_1.SolanaClient.getConnection(options.network);
63
+ const balance = await connection.getBalance(keypair.publicKey);
64
+ const balanceSOL = balance / web3_js_1.LAMPORTS_PER_SOL;
65
+ // Estimate fees (5000 lamports per transfer + base fee)
66
+ const estimatedFees = (recipients.length * 5000 + 5000) / web3_js_1.LAMPORTS_PER_SOL;
67
+ const totalNeeded = totalAmount + estimatedFees;
68
+ if (balanceSOL < totalNeeded) {
69
+ console.error(`āŒ Error: Insufficient balance`);
70
+ console.log(`\nRequired: ${totalNeeded.toFixed(6)} SOL (${totalAmount} + ~${estimatedFees.toFixed(6)} fees)`);
71
+ console.log(`Available: ${balanceSOL.toFixed(6)} SOL`);
72
+ console.log('');
73
+ process.exit(1);
74
+ }
75
+ console.log('šŸ’° Balance: ', balanceSOL.toFixed(6), 'SOL');
76
+ console.log('šŸ’ø Estimated fees: ~', estimatedFees.toFixed(6), 'SOL');
77
+ console.log('');
78
+ // Build transaction with multiple transfers
79
+ const transaction = new web3_js_1.Transaction();
80
+ for (let i = 0; i < recipients.length; i++) {
81
+ const lamports = Math.floor(amounts[i] * web3_js_1.LAMPORTS_PER_SOL);
82
+ transaction.add(web3_js_1.SystemProgram.transfer({
83
+ fromPubkey: keypair.publicKey,
84
+ toPubkey: recipients[i],
85
+ lamports,
86
+ }));
87
+ }
88
+ console.log('šŸ“¤ Sending transactions...');
89
+ // Send transaction
90
+ const signature = await connection.sendTransaction(transaction, [keypair]);
91
+ console.log('ā³ Confirming...');
92
+ // Confirm transaction
93
+ await connection.confirmTransaction(signature);
94
+ console.log('\nāœ… Multi-send completed!');
95
+ console.log('Signature:', signature);
96
+ console.log('Explorer: https://explorer.solana.com/tx/' + signature);
97
+ console.log('');
98
+ }
99
+ catch (error) {
100
+ console.error('\nāŒ Error:', error.message);
101
+ process.exit(1);
102
+ }
103
+ });
104
+ //# sourceMappingURL=multi-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-send.js","sourceRoot":"","sources":["../../../src/cli/commands/multi-send.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAkEpB,CAAC"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,WAAW,SAkHpB,CAAC"}
@@ -7,12 +7,14 @@ const engine_1 = require("../../core/signer/engine");
7
7
  const solana_1 = require("../../utils/solana");
8
8
  const filesystem_1 = require("../../core/storage/filesystem");
9
9
  const web3_js_1 = require("@solana/web3.js");
10
+ const spl_token_1 = require("@solana/spl-token");
10
11
  exports.sendCommand = new commander_1.Command('send')
11
- .description('šŸ“Ÿ Send SOL to another address')
12
+ .description('šŸ“Ÿ Send SOL or SPL tokens to another address')
12
13
  .argument('[agent-id]', 'Agent identifier')
13
14
  .option('--agent-id <id>', 'Agent identifier (alternative)')
14
15
  .requiredOption('--to <address>', 'Recipient address')
15
- .requiredOption('--amount <amount>', 'Amount in SOL')
16
+ .requiredOption('--amount <amount>', 'Amount to send')
17
+ .option('--token <mint>', 'SPL token mint address (omit for SOL)')
16
18
  .option('--network <network>', 'Network to use (overrides config)')
17
19
  .action(async (agentIdArg, options) => {
18
20
  try {
@@ -31,24 +33,48 @@ exports.sendCommand = new commander_1.Command('send')
31
33
  const config = await filesystem_1.FileSystemStorage.loadConfig(agentId);
32
34
  network = config.network || 'mainnet-beta';
33
35
  }
36
+ const isSPLToken = !!options.token;
34
37
  console.log('\nšŸ“Ÿ PAW - Send Transaction');
35
38
  console.log('Agent ID:', agentId);
36
39
  console.log('To: ', options.to);
37
- console.log('Amount: ', options.amount, 'SOL');
40
+ console.log('Amount: ', options.amount, isSPLToken ? 'tokens' : 'SOL');
41
+ if (isSPLToken) {
42
+ console.log('Token: ', options.token);
43
+ }
38
44
  console.log('Network: ', network);
39
45
  // Load keypair
40
46
  const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
41
47
  // Get connection
42
48
  const connection = solana_1.SolanaClient.getConnection(network);
43
- // Create transfer instruction
44
- const lamports = Math.floor(parseFloat(options.amount) * web3_js_1.LAMPORTS_PER_SOL);
45
- const transferInstruction = web3_js_1.SystemProgram.transfer({
46
- fromPubkey: keypair.publicKey,
47
- toPubkey: new web3_js_1.PublicKey(options.to),
48
- lamports,
49
- });
50
- // Create transaction
51
- const transaction = new web3_js_1.Transaction().add(transferInstruction);
49
+ let transaction;
50
+ if (isSPLToken) {
51
+ // SPL Token Transfer
52
+ console.log('\nPreparing SPL token transfer...');
53
+ const mintPubkey = new web3_js_1.PublicKey(options.token);
54
+ const recipientPubkey = new web3_js_1.PublicKey(options.to);
55
+ // Get mint info to determine decimals
56
+ const mintInfo = await (0, spl_token_1.getMint)(connection, mintPubkey);
57
+ const decimals = mintInfo.decimals;
58
+ const amount = Math.floor(parseFloat(options.amount) * Math.pow(10, decimals));
59
+ console.log('Token decimals:', decimals);
60
+ // Get or create associated token accounts
61
+ console.log('Getting token accounts...');
62
+ const sourceAccount = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, keypair, mintPubkey, keypair.publicKey);
63
+ const destinationAccount = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, keypair, mintPubkey, recipientPubkey);
64
+ // Create transfer instruction
65
+ const transferInstruction = (0, spl_token_1.createTransferInstruction)(sourceAccount.address, destinationAccount.address, keypair.publicKey, amount);
66
+ transaction = new web3_js_1.Transaction().add(transferInstruction);
67
+ }
68
+ else {
69
+ // SOL Transfer
70
+ const lamports = Math.floor(parseFloat(options.amount) * web3_js_1.LAMPORTS_PER_SOL);
71
+ const transferInstruction = web3_js_1.SystemProgram.transfer({
72
+ fromPubkey: keypair.publicKey,
73
+ toPubkey: new web3_js_1.PublicKey(options.to),
74
+ lamports,
75
+ });
76
+ transaction = new web3_js_1.Transaction().add(transferInstruction);
77
+ }
52
78
  // Sign and send
53
79
  console.log('\nSigning transaction...');
54
80
  const signature = await engine_1.SignerEngine.signAndSend(transaction, keypair, connection);
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,qDAAwD;AACxD,+CAAkD;AAClD,8DAAkE;AAClE,6CAMyB;AAEZ,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,gCAAgC,CAAC;KAC7C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KACrD,cAAc,CAAC,mBAAmB,EAAE,eAAe,CAAC;KACpD,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kDAAkD;QAClD,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,8BAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElC,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7D,iBAAiB;QACjB,MAAM,UAAU,GAAG,qBAAY,CAAC,aAAa,CAAC,OAAkB,CAAC,CAAC;QAElE,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,0BAAgB,CAAC,CAAC;QAC3E,MAAM,mBAAmB,GAAG,uBAAa,CAAC,QAAQ,CAAC;YACjD,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,QAAQ,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE/D,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,qBAAY,CAAC,WAAW,CAC9C,WAAW,EACX,OAAO,EACP,UAAU,CACX,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,4CAA4C,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -11,6 +11,9 @@ const history_1 = require("./commands/history");
11
11
  const config_1 = require("./commands/config");
12
12
  const tokens_1 = require("./commands/tokens");
13
13
  const dashboard_1 = require("./commands/dashboard");
14
+ const export_1 = require("./commands/export");
15
+ const import_1 = require("./commands/import");
16
+ const multi_send_1 = require("./commands/multi-send");
14
17
  const program = new commander_1.Command();
15
18
  program
16
19
  .name('paw')
@@ -18,14 +21,17 @@ program
18
21
  .version('0.1.0');
19
22
  // Register commands
20
23
  program.addCommand(init_1.initCommand);
24
+ program.addCommand(import_1.importCommand);
21
25
  program.addCommand(dashboard_1.dashboardCommand);
22
26
  program.addCommand(config_1.configCommand);
23
27
  program.addCommand(address_1.addressCommand);
24
28
  program.addCommand(balance_1.balanceCommand);
25
29
  program.addCommand(tokens_1.tokensCommand);
26
30
  program.addCommand(send_1.sendCommand);
31
+ program.addCommand(multi_send_1.multiSendCommand);
27
32
  program.addCommand(swap_1.swapCommand);
28
33
  program.addCommand(history_1.historyCommand);
34
+ program.addCommand(export_1.exportCommand);
29
35
  // Parse arguments
30
36
  program.parse();
31
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,gDAAoD;AACpD,gDAAoD;AACpD,0CAA8C;AAC9C,0CAA8C;AAC9C,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,oDAAwD;AAExD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AAEnC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,gDAAoD;AACpD,gDAAoD;AACpD,0CAA8C;AAC9C,0CAA8C;AAC9C,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,oDAAwD;AACxD,8CAAkD;AAClD,8CAAkD;AAClD,sDAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,6BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAElC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pocketagent/paw",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "PocketAgent Wallet - agentic wallet for AI agents on Solana šŸ“Ÿ",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -56,18 +56,21 @@
56
56
  "packageManager": "yarn@4.5.2",
57
57
  "dependencies": {
58
58
  "@jup-ag/referral-sdk": "^0.3.0",
59
+ "@solana/spl-token": "^0.4.14",
59
60
  "@solana/web3.js": "^1.98.4",
60
61
  "blessed": "^0.1.81",
61
62
  "blessed-contrib": "^4.11.0",
62
63
  "bs58": "^6.0.0",
63
64
  "chalk": "^5.6.2",
64
65
  "cli-table3": "^0.6.5",
65
- "commander": "^14.0.3"
66
+ "commander": "^14.0.3",
67
+ "qrcode-terminal": "^0.12.0"
66
68
  },
67
69
  "devDependencies": {
68
70
  "@types/blessed": "^0",
69
71
  "@types/jest": "^30.0.0",
70
72
  "@types/node": "^25.3.0",
73
+ "@types/qrcode-terminal": "^0",
71
74
  "@typescript-eslint/eslint-plugin": "^8.56.0",
72
75
  "@typescript-eslint/parser": "^8.56.0",
73
76
  "eslint": "^10.0.0",
package/skills/.gitkeep DELETED
File without changes
@@ -1,406 +0,0 @@
1
- ---
2
- name: pocketagent-wallet
3
- description: >-
4
- Lightning-fast autonomous wallet for AI agents on Solana. Use for wallet creation,
5
- crypto transactions, token swaps, DeFi trading, Jupiter DEX, meme coin trading,
6
- Solana payments, autonomous trading bots, portfolio management, and agentic wallets.
7
- license: MIT
8
- metadata:
9
- author: PocketAgent Team
10
- version: "1.0.3"
11
- category: wallet
12
- ---
13
-
14
- # šŸ“Ÿ PAW Skills for AI Agents
15
-
16
- **PocketAgent Wallet (PAW)** - Lightning-fast autonomous wallet for AI agents on Solana
17
-
18
- ## What is PAW?
19
-
20
- PAW is a high-performance agentic wallet designed for AI agents to execute crypto operations at Telegram bot speed. Built with Helius RPC for maximum throughput.
21
-
22
- Key capabilities:
23
- - Create and manage wallets programmatically
24
- - Sign transactions automatically (no human approval needed)
25
- - Execute swaps in milliseconds via Jupiter DEX
26
- - Hold SOL and any SPL token
27
- - Real-time balance and transaction tracking
28
-
29
- ## Quick Command Reference
30
-
31
- ### Essential Commands
32
-
33
- ```bash
34
- # Create wallet (defaults to mainnet-beta for real trading)
35
- paw init <agent-id>
36
-
37
- # Or specify network:
38
- # paw init <agent-id> --network devnet # For testing with free SOL
39
- # paw init <agent-id> --network mainnet-beta # For real trading (default)
40
-
41
- # Get address
42
- paw address <agent-id>
43
-
44
- # Check total portfolio (SOL + tokens in USD)
45
- paw balance <agent-id>
46
-
47
- # List all tokens
48
- paw tokens <agent-id>
49
-
50
- # Send SOL
51
- paw send <agent-id> --to <address> --amount <sol-amount>
52
-
53
- # Swap tokens (Jupiter DEX)
54
- paw swap <agent-id> --from <token> --to <token> --amount <amount>
55
-
56
- # View transaction history
57
- paw history <agent-id>
58
-
59
- # Configure wallet settings
60
- paw config <agent-id> --network <devnet|mainnet-beta|testnet>
61
- paw config <agent-id> --slippage <bps>
62
- paw config <agent-id> --priority-fee <lamports>
63
- paw config <agent-id> --show
64
- ```
65
-
66
- ## AI Agent Workflow Examples
67
-
68
- ### Example 1: Check Balance Before Action
69
-
70
- ```bash
71
- # Get balance
72
- paw balance trading-bot-001
73
-
74
- # Output shows total portfolio:
75
- # šŸ’° Total Portfolio:
76
- # ~1.649990 SOL
77
- # ~138.68 USD
78
- ```
79
-
80
- ### Example 2: Fast Token Swap
81
-
82
- ```bash
83
- # Swap 0.1 SOL to USDC on mainnet
84
- paw swap trading-bot-001 --from SOL --to USDC --amount 0.1 --network mainnet-beta
85
-
86
- # Executes in <2 seconds using Jupiter aggregator
87
- ```
88
-
89
- ### Example 3: Send Payment
90
-
91
- ```bash
92
- # Send 0.5 SOL to another agent
93
- paw send agent-alice --to DJcVfT6dienfSbudJzZ82WN4EkVPgVaT18oBK971Yi2c --amount 0.5
94
-
95
- # Or send to another agent by ID (if you know their address)
96
- paw send agent-alice --to <address> --amount 0.5
97
- ```
98
-
99
- ### Example 4: Monitor Transactions
100
-
101
- ```bash
102
- # Check last 10 transactions
103
- paw history trading-bot-001 --limit 10
104
-
105
- # Shows table with:
106
- # - Transaction signature
107
- # - Type (send/receive)
108
- # - Amount
109
- # - Status (success/failed)
110
- # - Timestamp
111
- ```
112
-
113
- ### Example 5: Multi-Agent Setup
114
-
115
- ```bash
116
- # Create multiple agents
117
- paw init agent-alice
118
- paw init agent-bob
119
- paw init trading-bot-001
120
-
121
- # Each agent has independent wallet and config
122
- # Stored in ~/.paw/agents/<agent-id>/
123
- ```
124
-
125
- ## Decision-Making Script for AI Agents
126
-
127
- ```bash
128
- #!/bin/bash
129
- # Autonomous trading agent
130
-
131
- AGENT="trading-bot-001"
132
-
133
- # 1. Check portfolio
134
- BALANCE=$(paw balance $AGENT)
135
-
136
- # 2. Get transaction history
137
- HISTORY=$(paw history $AGENT --limit 5)
138
-
139
- # 3. Make decision based on balance
140
- # If balance > 1 SOL, swap some to USDC
141
- paw swap $AGENT --from SOL --to USDC --amount 0.5
142
-
143
- # 4. Verify transaction
144
- paw history $AGENT --limit 1
145
- ```
146
-
147
- ## Performance Features
148
-
149
- ### Lightning Fast Execution
150
- - **Helius RPC**: Premium RPC endpoints for mainnet and devnet
151
- - **Connection Pooling**: Reuses connections for speed
152
- - **Jupiter DEX**: Best price aggregation across all Solana DEXs
153
- - **Real-time Prices**: Live SOL price from CoinGecko
154
-
155
- ### Speed Comparison
156
- - Balance check: ~200ms
157
- - Token swap: ~1-2 seconds
158
- - Send transaction: ~500ms
159
- - History fetch: ~300ms
160
-
161
- Similar to Telegram trading bots - fast enough for real-time trading!
162
-
163
- ## Network Configuration
164
-
165
- ```bash
166
- # Set network (persists in config)
167
- paw config <agent-id> --network mainnet-beta
168
-
169
- # Set default slippage for all swaps (in basis points)
170
- paw config <agent-id> --slippage 1000 # 10% for meme coins
171
-
172
- # Set default priority fee for faster execution
173
- paw config <agent-id> --priority-fee 100000 # 100k lamports
174
-
175
- # Set multiple settings at once
176
- paw config <agent-id> --network mainnet-beta --slippage 1000 --priority-fee 100000
177
-
178
- # View current configuration
179
- paw config <agent-id> --show
180
-
181
- # Networks:
182
- # - devnet: Free testing (use faucet for SOL)
183
- # - mainnet-beta: Real money, production
184
- # - testnet: Testing network
185
-
186
- # Override config for single command
187
- paw balance <agent-id> --network mainnet-beta
188
- paw swap <agent-id> --from SOL --to USDC --amount 0.1 --slippage 500
189
- ```
190
-
191
- ## Common Token Addresses
192
-
193
- ```bash
194
- # Mainnet tokens
195
- SOL: Native token (use "SOL")
196
- USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
197
- USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
198
- BONK: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
199
-
200
- # Use token symbol or mint address
201
- paw swap bot-1 --from SOL --to USDC --amount 0.1
202
- ```
203
-
204
- ## Security Model
205
-
206
- ### Double Encryption (Safe Inside a Safe)
207
- 1. **Layer 1**: Wallet keypair encrypted with AES-256-GCM + passphrase
208
- 2. **Layer 2**: Passphrase encrypted with machine-specific key
209
-
210
- ### Machine-Specific Key
211
- Generated from:
212
- - Hostname + Username + OS + Architecture + Home directory
213
- - Wallet files are useless if stolen (only work on your machine)
214
-
215
- ### Memory Safety
216
- - Keypairs loaded only when needed
217
- - Cleared from memory immediately after use
218
- - No plaintext secrets on disk
219
-
220
- ## Getting Started on Devnet (Testing)
221
-
222
- ```bash
223
- # 1. Create wallet on devnet for testing
224
- paw init my-first-agent --network devnet
225
-
226
- # 2. Get address
227
- ADDRESS=$(paw address my-first-agent | grep "Address:" | awk '{print $2}')
228
-
229
- # 3. Get free devnet SOL
230
- solana airdrop 2 $ADDRESS --url devnet
231
-
232
- # 4. Check balance
233
- paw balance my-first-agent
234
-
235
- # 5. Test send
236
- paw send my-first-agent --to <another-address> --amount 0.1
237
-
238
- # 6. Check history
239
- paw history my-first-agent
240
- ```
241
-
242
- ## Use Cases for AI Agents
243
-
244
- 1. **High-Frequency Trading Bot**: Execute trades based on price signals
245
- 2. **Meme Coin Trading**: Snipe launches, scalp pumps, automated take-profit
246
- 3. **Portfolio Manager**: Rebalance assets automatically
247
- 4. **Payment Processor**: Handle recurring payments
248
- 5. **Arbitrage Bot**: Cross-DEX arbitrage opportunities
249
- 6. **Yield Optimizer**: Move funds to highest yield protocols
250
- 7. **Market Maker**: Provide liquidity and earn fees
251
- 8. **DCA Bot**: Dollar-cost averaging strategy
252
-
253
- ## Meme Trading Capabilities
254
-
255
- PAW is built for fast, autonomous meme coin trading:
256
-
257
- ### Quick Meme Trading Commands
258
-
259
- ```bash
260
- # Buy meme coin with custom slippage
261
- paw swap bot --from SOL --to <MEME_MINT> --amount 0.5 --slippage 1000
262
-
263
- # Sell meme coin fast with priority fee
264
- paw swap bot --from <MEME_MINT> --to SOL --amount 1000000 --slippage 1000 --priority-fee 100000
265
-
266
- # Trade popular meme coins by symbol
267
- paw swap bot --from SOL --to BONK --amount 0.5 --slippage 500
268
- ```
269
-
270
- ### Slippage Settings for Meme Coins
271
-
272
- ```bash
273
- --slippage 50 # 0.5% - Stable tokens
274
- --slippage 100 # 1% - Normal trading
275
- --slippage 500 # 5% - Meme coins (volatile)
276
- --slippage 1000 # 10% - High volatility / low liquidity
277
- --slippage 5000 # 50% - New launches / extreme volatility
278
- ```
279
-
280
- ### Priority Fees for Speed
281
-
282
- ```bash
283
- --priority-fee 10000 # Normal speed
284
- --priority-fee 50000 # Fast
285
- --priority-fee 100000 # Very fast (meme launches)
286
- --priority-fee 500000 # Ultra fast (competitive sniping)
287
- ```
288
-
289
- ### Example: Sniper Bot
290
-
291
- ```bash
292
- #!/bin/bash
293
- # Snipe new token launch
294
-
295
- AGENT="sniper-bot"
296
- TARGET="<NEW_MEME_MINT>"
297
-
298
- # Fast execution with high priority
299
- paw swap $AGENT \
300
- --from SOL \
301
- --to $TARGET \
302
- --amount 0.5 \
303
- --slippage 2000 \
304
- --priority-fee 500000
305
-
306
- # Verify purchase
307
- paw tokens $AGENT | grep $TARGET
308
- ```
309
-
310
- ### Example: Take Profit Bot
311
-
312
- ```bash
313
- #!/bin/bash
314
- # Sell when target hit
315
-
316
- AGENT="profit-bot"
317
- MEME="<MEME_MINT>"
318
-
319
- # Sell 50% of holdings
320
- paw swap $AGENT \
321
- --from $MEME \
322
- --to SOL \
323
- --amount 500000 \
324
- --slippage 1000 \
325
- --priority-fee 100000
326
- ```
327
-
328
- ### Popular Meme Coins
329
-
330
- ```bash
331
- BONK: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
332
- WIF: EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm
333
- POPCAT: 7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr
334
-
335
- # Use symbol or mint address
336
- paw swap bot --from SOL --to BONK --amount 0.5
337
- ```
338
-
339
- ### Why PAW is Fast for Meme Trading
340
-
341
- - **Helius RPC**: Premium endpoints for fastest execution
342
- - **Jupiter DEX**: Aggregates ALL Solana DEXs for best prices
343
- - **Auto Priority Fees**: Transactions land faster during congestion
344
- - **<2 Second Swaps**: Fast enough to snipe launches and catch pumps
345
- - **No Human Approval**: Fully autonomous execution
346
-
347
- For detailed meme trading strategies, see: `docs/MEME_TRADING_GUIDE.md`
348
-
349
- ## Command Output Format
350
-
351
- All commands output clean, parseable text:
352
-
353
- ```bash
354
- # Balance output
355
- šŸ“Ÿ PAW - Balance
356
- Agent ID: trading-bot-001
357
- Address: HWd4qkpz5r7c9zSFSUGy2MkkvwuvFd3tqiMkCLiMyb4D
358
- Network: devnet
359
-
360
- šŸ’° Total Portfolio:
361
- ~1.649990 SOL
362
- ~138.68 USD
363
-
364
- # Easy to parse with grep/awk for automation
365
- ```
366
-
367
- ## Error Handling
368
-
369
- PAW provides clear error messages:
370
-
371
- ```bash
372
- # Insufficient balance
373
- āŒ Error: Insufficient balance. Required: 1.5 SOL, Available: 0.5 SOL
374
-
375
- # Invalid address
376
- āŒ Error: Invalid recipient address
377
-
378
- # Network issues
379
- āŒ Error: Failed to connect to Solana network
380
- ```
381
-
382
- ## Tips for AI Agents
383
-
384
- 1. **Always check balance before transactions**
385
- 2. **Use --network flag to override config when needed**
386
- 3. **Monitor transaction history to verify operations**
387
- 4. **Start on devnet for testing, move to mainnet when ready**
388
- 5. **Use tokens command to see all assets**
389
- 6. **Set network in config to avoid repeating --network flag**
390
-
391
- ## File Locations
392
-
393
- ```bash
394
- # Wallet data
395
- ~/.paw/agents/<agent-id>/wallet.enc
396
- ~/.paw/agents/<agent-id>/passphrase.enc
397
- ~/.paw/agents/<agent-id>/config.json
398
-
399
- # All encrypted except config.json
400
- ```
401
-
402
- ---
403
-
404
- **Built for speed, security, and autonomy** šŸ“Ÿ
405
-
406
- For issues or questions: https://github.com/pocketagent/paw