{"_id":"@dexterai/x402-solana","_rev":"5-00b264798ba7c38dfe377b93454a13c7","name":"@dexterai/x402-solana","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@dexterai/x402-solana","version":"0.1.0","keywords":["x402","solana","payments","dexter","web3"],"author":{"name":"Dexter"},"license":"MIT","_id":"@dexterai/x402-solana@0.1.0","maintainers":[{"name":"nrsander","email":"nrsander@gmail.com"}],"homepage":"https://github.com/BranchManager69/dexter-x402-sdk#readme","bugs":{"url":"https://github.com/BranchManager69/dexter-x402-sdk/issues"},"dist":{"shasum":"845905233c3d8b04e068047506ee9dff0f27cbbc","tarball":"https://registry.npmjs.org/@dexterai/x402-solana/-/x402-solana-0.1.0.tgz","fileCount":17,"integrity":"sha512-Azue+zlZXvDYW3bFJXBc+5SKWYcmvhgs7BxJ8i/J3fvy1ov/7TUyUSoSgHSxL1DSih1Gao4fY7THvlc9zUJlCg==","signatures":[{"sig":"MEUCIQDxUsgpYR3eskTPntxgySwKorXWw2+eKIsGQga1NAuMmwIgDFOaiHvOUSGfRf0XsJ3sEANimUFJKckcgcP3sumUXbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180027},"type":"module","engines":{"node":">=18"},"exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"}},"gitHead":"050a449b0c2a96eb65eb2c36c4f75f96f92e26f2","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nrsander","email":"nrsander@gmail.com"},"repository":{"url":"git+https://github.com/BranchManager69/dexter-x402-sdk.git","type":"git"},"_npmVersion":"10.9.3","description":"Dexter x402 v2 SDK for Solana payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.9"},"_hasShrinkwrap":false,"devDependencies":{"bs58":"^6.0.0","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"@solana/wallet-adapter-base":"^0.9.0"},"peerDependenciesMeta":{"@solana/wallet-adapter-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/x402-solana_0.1.0_1766796728108_0.16927244448709167","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been renamed to @dexterai/x402 which now supports Solana, Base, and all EVM chains"},"0.1.1":{"name":"@dexterai/x402-solana","version":"0.1.1","keywords":["x402","solana","payments","dexter","web3"],"author":{"name":"Dexter"},"license":"MIT","_id":"@dexterai/x402-solana@0.1.1","maintainers":[{"name":"nrsander","email":"nrsander@gmail.com"}],"homepage":"https://github.com/BranchManager69/dexter-x402-sdk#readme","bugs":{"url":"https://github.com/BranchManager69/dexter-x402-sdk/issues"},"dist":{"shasum":"c519b4582eeae7e0fe5998f62f6e14cbaac7037c","tarball":"https://registry.npmjs.org/@dexterai/x402-solana/-/x402-solana-0.1.1.tgz","fileCount":17,"integrity":"sha512-H0Sccl9nQ/sVn4ghDUOsHunfSQbm2hduwPyqv/gh5sJVGbitFyMYRHRC2bKjxCHIo76aSbVciISBSRHl4X7zbA==","signatures":[{"sig":"MEQCIHQETItTd4VeTSQTtnkZf2ff6tfILyhA9IA3+Dc5QtaHAiAWbGh9hXs3gcOZG2I+sH2kwnSf0AvgVqkAELPzw9JUjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179241},"type":"module","engines":{"node":">=18"},"exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"}},"gitHead":"36db84f1f60eb2029bd7f2f51de9a3acc0195eac","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","release":"npm version patch && npm publish --access public","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"nrsander","email":"nrsander@gmail.com"},"repository":{"url":"git+https://github.com/BranchManager69/dexter-x402-sdk.git","type":"git"},"_npmVersion":"10.9.3","description":"Dexter x402 v2 SDK for Solana payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.9"},"_hasShrinkwrap":false,"devDependencies":{"bs58":"^6.0.0","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"@solana/wallet-adapter-base":"^0.9.0"},"peerDependenciesMeta":{"@solana/wallet-adapter-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/x402-solana_0.1.1_1766797217911_0.10997072025454746","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been renamed to @dexterai/x402 which now supports Solana, Base, and all EVM chains"},"0.1.2":{"name":"@dexterai/x402-solana","version":"0.1.2","keywords":["x402","solana","payments","dexter","web3"],"author":{"name":"Dexter"},"license":"MIT","_id":"@dexterai/x402-solana@0.1.2","maintainers":[{"name":"nrsander","email":"nrsander@gmail.com"}],"homepage":"https://github.com/BranchManager69/dexter-x402-sdk#readme","bugs":{"url":"https://github.com/BranchManager69/dexter-x402-sdk/issues"},"dist":{"shasum":"5cde634ad6b8e583f5aa439757762fe998dd7e08","tarball":"https://registry.npmjs.org/@dexterai/x402-solana/-/x402-solana-0.1.2.tgz","fileCount":17,"integrity":"sha512-ekm9yh1tnxIzpecSI7GosHe4UFcdAK31U1Q5DQM8XHw/mqHxtalKtpHmWD+BO9t35D/fKLYWiwNG9+m5KekN5A==","signatures":[{"sig":"MEQCIBUsjmzkSk2bDtBVxF67FpL13AhYv/0XeT+M/eMdjQ4OAiBGKr2/vfcv+01TnsmKo4y68LdKcy7pNWqhuJO2ZXk9VA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179353},"type":"module","engines":{"node":">=18"},"exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"}},"gitHead":"0f01427a9e7e4c6d2943fc7ffa6dd91fcbd6f6dd","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","release":"npm version patch && npm publish --access public","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"nrsander","email":"nrsander@gmail.com"},"repository":{"url":"git+https://github.com/BranchManager69/dexter-x402-sdk.git","type":"git"},"_npmVersion":"10.9.3","description":"Dexter x402 v2 SDK for Solana payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.9"},"_hasShrinkwrap":false,"devDependencies":{"bs58":"^6.0.0","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"@solana/wallet-adapter-base":"^0.9.0"},"peerDependenciesMeta":{"@solana/wallet-adapter-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/x402-solana_0.1.2_1766797653921_0.2622022808303133","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been renamed to @dexterai/x402 which now supports Solana, Base, and all EVM chains"},"0.2.0":{"name":"@dexterai/x402-solana","version":"0.2.0","keywords":["x402","solana","payments","dexter","web3"],"author":{"name":"Dexter"},"license":"MIT","_id":"@dexterai/x402-solana@0.2.0","maintainers":[{"name":"nrsander","email":"nrsander@gmail.com"}],"homepage":"https://github.com/BranchManager69/dexter-x402-sdk#readme","bugs":{"url":"https://github.com/BranchManager69/dexter-x402-sdk/issues"},"dist":{"shasum":"439c23da39803db5e90a56376ab0443a68740363","tarball":"https://registry.npmjs.org/@dexterai/x402-solana/-/x402-solana-0.2.0.tgz","fileCount":27,"integrity":"sha512-yqB2avX5USdDAvWKp9anBRNPVfDxXuervXFAR/NhV5rX5RPqaG7tAHG9+rkILZwVLtQ0aJ8p31u1MZc9sBMZPw==","signatures":[{"sig":"MEYCIQCa2iM34vqL5qJWpbdLl4SZPK2ym2z52D6Ue8NdP186WgIhAIN+i+VXpOpoj1oNl11nf89StnB8lNzx6G8v237TQ6kk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280329},"type":"module","engines":{"node":">=18"},"exports":{"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"}},"gitHead":"40278e741d92196dd2ba2b60b141cb307c9e8dbc","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","release":"npm version patch && npm publish --access public","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"nrsander","email":"nrsander@gmail.com"},"repository":{"url":"git+https://github.com/BranchManager69/dexter-x402-sdk.git","type":"git"},"_npmVersion":"10.9.3","description":"Dexter x402 v2 SDK for Solana payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.9"},"_hasShrinkwrap":false,"devDependencies":{"bs58":"^6.0.0","tsup":"^8.3.5","react":"^18.0.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","@solana/wallet-adapter-base":"^0.9.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/wallet-adapter-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/x402-solana_0.2.0_1766799938562_0.3101087140760146","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been renamed to @dexterai/x402 which now supports Solana, Base, and all EVM chains"}},"time":{"created":"2025-12-27T00:52:07.989Z","modified":"2025-12-27T02:48:14.811Z","0.1.0":"2025-12-27T00:52:08.255Z","0.1.1":"2025-12-27T01:00:18.081Z","0.1.2":"2025-12-27T01:07:34.056Z","0.2.0":"2025-12-27T01:45:38.723Z"},"bugs":{"url":"https://github.com/BranchManager69/dexter-x402-sdk/issues"},"author":{"name":"Dexter"},"license":"MIT","homepage":"https://github.com/BranchManager69/dexter-x402-sdk#readme","keywords":["x402","solana","payments","dexter","web3"],"repository":{"url":"git+https://github.com/BranchManager69/dexter-x402-sdk.git","type":"git"},"description":"Dexter x402 v2 SDK for Solana payments","maintainers":[{"name":"nrsander","email":"nrsander@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"./assets/dexter-wordmark.svg\" alt=\"Dexter\" width=\"360\">\n</p>\n\n# @dexterai/x402-solana\n\n<p align=\"center\">\n  <a href=\"https://nodejs.org/en/download\"><img src=\"https://img.shields.io/badge/node-%3E=18-green.svg\" alt=\"Node >= 18\"></a>\n  <a href=\"https://www.npmjs.com/package/@dexterai/x402-solana\"><img src=\"https://img.shields.io/npm/v/@dexterai/x402-solana.svg\" alt=\"npm version\"></a>\n  <a href=\"https://x402.dexter.cash\"><img src=\"https://img.shields.io/badge/facilitator-x402.dexter.cash-orange.svg\" alt=\"x402 Facilitator\"></a>\n</p>\n\nOfficial SDK for integrating with Dexter's x402 v2 Solana payment protocol. Provides client-side auto-402 handling and server-side helpers for generating payment requirements and verifying settlements through the Dexter facilitator.\n\n---\n\n## Highlights\n\n- **Zero-config client** – wrap your `fetch` calls; the SDK auto-handles 402 responses, signs transactions via wallet adapter, and retries with payment proof.\n- **React hook** – `useX402Payment` with balance tracking, wallet status, and transaction URLs.\n- **Server helpers** – generate correct `PAYMENT-REQUIRED` headers and verify/settle payments through the Dexter facilitator in one line.\n- **v2-native** – uses `PAYMENT-REQUIRED` and `PAYMENT-SIGNATURE` headers. If you want v1, use a different SDK.\n- **Solana-native** – builds proper `TransferChecked` transactions with ComputeBudget instructions that comply with Dexter's sponsored-fee policy.\n- **Dual ESM/CJS** – ships both module formats with full TypeScript definitions.\n\n---\n\n## Quick Start\n\n### Install\n\n```bash\nnpm install @dexterai/x402-solana @solana/web3.js @solana/spl-token\n```\n\n### Client (Browser/Node)\n\n```typescript\nimport { createX402Client } from '@dexterai/x402-solana/client';\n\nconst client = createX402Client({\n  wallet,  // wallet adapter with signTransaction\n  network: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n  verbose: true,\n});\n\n// Auto-handles 402s, signs payment, retries\nconst res = await client.fetch('https://api.dexter.cash/api/shield/create', {\n  method: 'POST',\n  body: JSON.stringify(payload),\n});\n```\n\n### Server (Express/Next.js)\n\n```typescript\nimport { createX402Server } from '@dexterai/x402-solana/server';\n\nconst server = createX402Server({\n  facilitatorUrl: 'https://x402.dexter.cash',\n  network: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n  payTo: 'YourWalletAddress...',\n  asset: { mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', decimals: 6 },\n});\n\n// Generate 402 response\nconst requirements = server.buildRequirements({\n  amountAtomic: '50000',  // 0.05 USDC\n  resourceUrl: '/api/protected',\n});\n\nres.setHeader('PAYMENT-REQUIRED', btoa(JSON.stringify(requirements)));\nres.status(402).json({ error: 'Payment required' });\n```\n\n### React\n\n```tsx\nimport { useX402Payment } from '@dexterai/x402-solana/react';\nimport { useWallet } from '@solana/wallet-adapter-react';\n\nfunction PayButton() {\n  const wallet = useWallet();\n  const {\n    fetch,\n    isLoading,\n    balance,\n    transactionUrl,\n    isWalletConnected,\n  } = useX402Payment({ wallet });\n\n  const handlePay = async () => {\n    const response = await fetch('https://api.example.com/paid-endpoint');\n    const data = await response.json();\n    console.log('Paid!', data);\n  };\n\n  if (!isWalletConnected) return <p>Connect wallet first</p>;\n\n  return (\n    <div>\n      <p>Balance: ${balance?.toFixed(2) ?? '...'} USDC</p>\n      <button onClick={handlePay} disabled={isLoading}>\n        {isLoading ? 'Paying...' : 'Pay'}\n      </button>\n      {transactionUrl && <a href={transactionUrl}>View Transaction</a>}\n    </div>\n  );\n}\n```\n\n---\n\n## API Surface\n\n### Client\n\n| Method | Description |\n|--------|-------------|\n| `createX402Client(config)` | Returns a client with a wrapped `fetch` that auto-handles 402 flows |\n\n**Config options:**\n- `wallet` – Solana wallet adapter with `publicKey` and `signTransaction`\n- `network` – CAIP-2 network ID (e.g. `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`)\n- `rpcUrl` – optional custom RPC endpoint\n- `maxAmountAtomic` – optional payment cap in atomic units\n- `fetch` – optional custom fetch implementation\n- `verbose` – optional logging flag\n\n### Server\n\n| Method | Description |\n|--------|-------------|\n| `createX402Server(config)` | Returns helpers for building requirements and verifying payments |\n| `.buildRequirements(opts)` | Generates a valid `PaymentRequired` payload |\n| `.encodeRequirements(req)` | Base64-encodes for the `PAYMENT-REQUIRED` header |\n| `.verifyPayment(header)` | Validates payment signature via facilitator |\n| `.settlePayment(header)` | Confirms settlement via facilitator, returns tx signature |\n\n### React\n\n| Export | Description |\n|--------|-------------|\n| `useX402Payment(config)` | React hook with payment state management |\n\n**Hook returns:**\n- `fetch` – wrapped fetch that handles x402 v2 payments\n- `isLoading` – payment in progress\n- `status` – `'idle'` | `'pending'` | `'success'` | `'error'`\n- `error` – last error\n- `transactionId` – tx signature after success\n- `transactionUrl` – Orb Markets link to view tx\n- `balance` – USDC balance in human units (e.g., `12.50`)\n- `isWalletConnected` – wallet ready\n- `refreshBalance()` – manually refresh balance\n- `reset()` – reset state to idle\n\n---\n\n## Development\n\n```bash\nnpm run build      # Build ESM + CJS to dist/\nnpm run dev        # Watch mode\nnpm run typecheck  # TypeScript type checking\nnpm test           # Run tests\n```\n\n---\n\n## Resources\n\n- [x402 v2 Migration Guide](https://docs.cdp.coinbase.com/x402/migration-guide)\n- [Seller Onboarding](https://dexter.cash/onboard)\n- [Facilitator Metrics](https://dexter.cash/facilitator)\n\n---\n\n## License\n\nMIT – see [LICENSE](./LICENSE) for details.\n","readmeFilename":"README.md"}