{"_id":"@asterpay-io/solana","name":"@asterpay-io/solana","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@asterpay-io/solana","version":"1.0.0","description":"AsterPay Solana integration - USDC payments on Solana for AI agents and DePIN","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch","test":"vitest run","lint":"eslint src/","clean":"rm -rf dist"},"keywords":["asterpay","solana","usdc","spl-token","depin","payments","ai-agents","x402","crypto"],"author":{"name":"AsterPay","email":"dev@asterpay.io"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/asterpay/asterpay-solana.git"},"homepage":"https://asterpay.io","dependencies":{"@solana/spl-token":"^0.4.0","@solana/web3.js":"^1.95.0"},"devDependencies":{"@types/bs58":"^4.0.4","@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.3.0","vitest":"^1.0.0"},"peerDependencies":{"@asterpay/x402":"^1.0.0"},"peerDependenciesMeta":{"@asterpay/x402":{"optional":true}},"engines":{"node":">=18.0.0"},"gitHead":"16c374093d4c191458b7c81a2e4de4b2cdfda7ef","_id":"@asterpay-io/solana@1.0.0","bugs":{"url":"https://github.com/asterpay/asterpay-solana/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/kYih2kgXYn+CXuuswP7npKEbuJ3u1yYMxwegEsIfkln3qNRR69OWbUruUeJCgiqoO4Vx+U3xR1a/dZX/z461Q==","shasum":"a19437ee8db5b3c99058382f07c99c3706b21598","tarball":"https://registry.npmjs.org/@asterpay-io/solana/-/solana-1.0.0.tgz","fileCount":7,"unpackedSize":68771,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAMXasydNo9mmR241iNNZSn4CFUNl6FIqbNqAA5lb0SLAiA3SP+jRiJr2qRoOuCwEyH3H15tpxwNrVdnAMgcI0F13g=="}]},"_npmUser":{"name":"asterpay","email":"petteri@asterpay.io"},"directories":{},"maintainers":[{"name":"asterpay","email":"petteri@asterpay.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/solana_1.0.0_1769532228218_0.7882949423733296"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-27T16:43:48.118Z","1.0.0":"2026-01-27T16:43:48.368Z","modified":"2026-01-27T16:43:48.638Z"},"maintainers":[{"name":"asterpay","email":"petteri@asterpay.io"}],"description":"AsterPay Solana integration - USDC payments on Solana for AI agents and DePIN","homepage":"https://asterpay.io","keywords":["asterpay","solana","usdc","spl-token","depin","payments","ai-agents","x402","crypto"],"repository":{"type":"git","url":"git+https://github.com/asterpay/asterpay-solana.git"},"author":{"name":"AsterPay","email":"dev@asterpay.io"},"bugs":{"url":"https://github.com/asterpay/asterpay-solana/issues"},"license":"MIT","readme":"# @asterpay/solana\r\n\r\n> Solana USDC payments for AI agents and DePIN infrastructure\r\n\r\n[![npm](https://img.shields.io/npm/v/@asterpay/solana)](https://www.npmjs.com/package/@asterpay/solana)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue)](https://www.typescriptlang.org/)\r\n\r\n## Overview\r\n\r\n`@asterpay/solana` provides USDC payment capabilities on Solana:\r\n\r\n- **Fast transfers** - Sub-second finality\r\n- **Low fees** - ~$0.00025 per transaction\r\n- **DePIN support** - Batch payouts for node operators\r\n- **AI agent ready** - Programmatic payments\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @asterpay/solana\r\n# or\r\nyarn add @asterpay/solana\r\n```\r\n\r\n## Quick Start\r\n\r\n### Basic USDC Transfer\r\n\r\n```typescript\r\nimport { SolanaWallet, SolanaPaymentClient } from '@asterpay/solana';\r\n\r\n// Create wallet\r\nconst wallet = new SolanaWallet({\r\n  privateKey: process.env.SOLANA_PRIVATE_KEY!,\r\n  network: 'mainnet-beta'\r\n});\r\n\r\n// Create payment client\r\nconst client = new SolanaPaymentClient(wallet);\r\n\r\n// Send USDC\r\nconst result = await client.sendUSDC({\r\n  recipient: 'RecipientPublicKey...',\r\n  amount: 10.00,\r\n  memo: 'Payment for API access'\r\n});\r\n\r\nconsole.log(`TX: ${result.signature}`);\r\nconsole.log(`Explorer: ${result.explorerUrl}`);\r\n```\r\n\r\n### DePIN Batch Payouts\r\n\r\n```typescript\r\nimport { SolanaWallet, DePINPayoutClient } from '@asterpay/solana';\r\n\r\nconst wallet = new SolanaWallet({\r\n  privateKey: process.env.SOLANA_KEY!,\r\n  network: 'mainnet-beta'\r\n});\r\n\r\nconst payout = new DePINPayoutClient(wallet);\r\n\r\n// Pay multiple node operators\r\nconst operators = [\r\n  { address: 'operator1...', amount: 5.50, id: 'node-001' },\r\n  { address: 'operator2...', amount: 3.25, id: 'node-002' },\r\n  { address: 'operator3...', amount: 8.00, id: 'node-003' },\r\n  // ... up to thousands of recipients\r\n];\r\n\r\nconst result = await payout.batchPayout(operators, {\r\n  concurrency: 10,      // Parallel transactions\r\n  retryFailed: true,    // Retry failures\r\n  maxRetries: 3         // Max retry attempts\r\n});\r\n\r\nconsole.log(`Paid: ${result.successful}/${result.total}`);\r\nconsole.log(`Total: $${result.totalPaid}`);\r\nconsole.log(payout.generatePayoutReport(result));\r\n```\r\n\r\n### Check Balance\r\n\r\n```typescript\r\nconst wallet = new SolanaWallet({\r\n  privateKey: process.env.SOLANA_KEY!,\r\n  network: 'mainnet-beta'\r\n});\r\n\r\nconst balance = await wallet.getBalance();\r\nconsole.log(`SOL: ${balance.sol}`);\r\nconsole.log(`USDC: ${balance.usdc}`);\r\n```\r\n\r\n## Networks\r\n\r\n| Network | Use Case | USDC Address |\r\n|---------|----------|--------------|\r\n| `mainnet-beta` | Production | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |\r\n| `devnet` | Development | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |\r\n| `testnet` | Testing | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |\r\n\r\n## DePIN Use Cases\r\n\r\n### Node Operator Rewards\r\n\r\n```typescript\r\n// Daily rewards distribution\r\nconst rewards = await fetchDailyRewards(); // Your reward calculation\r\nconst payout = new DePINPayoutClient(wallet);\r\n\r\nconst result = await payout.batchPayout(rewards, {\r\n  concurrency: 20,  // Higher concurrency for speed\r\n});\r\n\r\n// Generate report for records\r\nconst report = payout.generatePayoutReport(result);\r\nawait savePayoutReport(report);\r\n```\r\n\r\n### Epoch-Based Payouts\r\n\r\n```typescript\r\n// Pay rewards at end of epoch\r\nasync function processEpochRewards(epochNumber: number) {\r\n  const operators = await getEpochRewards(epochNumber);\r\n  \r\n  // Validate before payout\r\n  const { valid, invalid } = await payout.validateRecipients(operators);\r\n  \r\n  if (invalid.length > 0) {\r\n    console.warn(`${invalid.length} invalid recipients skipped`);\r\n  }\r\n  \r\n  // Process valid recipients\r\n  const result = await payout.batchPayout(valid);\r\n  \r\n  return {\r\n    epoch: epochNumber,\r\n    ...result\r\n  };\r\n}\r\n```\r\n\r\n## Fee Estimates\r\n\r\n| Operation | Est. Fee (SOL) | Est. Fee (USD) |\r\n|-----------|----------------|----------------|\r\n| Single transfer | 0.000005 | $0.0005 |\r\n| With token account creation | 0.002 | $0.20 |\r\n| Batch (1000 recipients) | ~1.0 | ~$100 |\r\n\r\n## API Reference\r\n\r\n### `SolanaWallet`\r\n\r\n```typescript\r\nnew SolanaWallet({\r\n  privateKey: string | Uint8Array,  // Base58 or byte array\r\n  network?: 'mainnet-beta' | 'devnet' | 'testnet',\r\n  rpcUrl?: string,  // Custom RPC endpoint\r\n  name?: string     // Wallet identifier\r\n})\r\n```\r\n\r\n### `SolanaPaymentClient`\r\n\r\n```typescript\r\nconst client = new SolanaPaymentClient(wallet);\r\n\r\nawait client.sendUSDC({\r\n  recipient: string,    // Recipient address\r\n  amount: number,       // Amount in USD\r\n  memo?: string,        // Optional memo\r\n  priorityFee?: number  // Priority fee (micro-lamports)\r\n});\r\n```\r\n\r\n### `DePINPayoutClient`\r\n\r\n```typescript\r\nconst payout = new DePINPayoutClient(wallet);\r\n\r\nawait payout.batchPayout(recipients, {\r\n  concurrency?: number,        // Parallel transactions (default: 5)\r\n  retryFailed?: boolean,       // Retry failures (default: true)\r\n  maxRetries?: number,         // Max retries (default: 3)\r\n  retryDelay?: number,         // Delay between retries (ms)\r\n  createTokenAccounts?: boolean // Create accounts if missing\r\n});\r\n```\r\n\r\n## Security\r\n\r\n1. **Never expose private keys** in code\r\n2. **Use environment variables** for keys\r\n3. **Test on devnet** before mainnet\r\n4. **Set transaction limits** for automated systems\r\n\r\n## Links\r\n\r\n- **Website**: [asterpay.io](https://asterpay.io)\r\n- **Demo**: [demo.asterpay.io](https://demo.asterpay.io)\r\n- **Docs**: [asterpay.io/docs](https://asterpay.io/docs)\r\n- **Solana USDC**: [circle.com/usdc](https://www.circle.com/en/usdc)\r\n\r\n## License\r\n\r\nMIT License - see [LICENSE](LICENSE)\r\n","readmeFilename":"README.md","_rev":"1-ffffc5ec870d5b847382e7eb6d1cc464"}