{"_id":"@arcadiasol/sdk","_rev":"2-59e9dd31e3c9241f15e70267e46d4b50","name":"@arcadiasol/sdk","dist-tags":{"latest":"1.2.0"},"versions":{"1.1.0":{"name":"@arcadiasol/sdk","version":"1.1.0","keywords":["arcadia","game-sdk","web3","solana","wallet","payments","gaming"],"author":{"name":"Arcadia"},"license":"MIT","_id":"@arcadiasol/sdk@1.1.0","maintainers":[{"name":"belacosaur","email":"calebjmartin@hotmail.com"}],"homepage":"https://github.com/arcadia/game-sdk#readme","bugs":{"url":"https://github.com/arcadia/game-sdk/issues"},"dist":{"shasum":"f78ec50118cf9094405e3b3fcd4df860ab684a10","tarball":"https://registry.npmjs.org/@arcadiasol/sdk/-/sdk-1.1.0.tgz","fileCount":26,"integrity":"sha512-drgOffM7+CZpjVmEK1ftebaq0rDPdV4DoO1wknusAk12w3jZH0qeF6xqnfAlqjN+P/RjqXa2rzha7NFruhcZlQ==","signatures":[{"sig":"MEYCIQDYQRrdrQbNBJPCAGXq8WNSSqFdwQiuopHymknU9z/BIAIhAIoss3yEOwZdgCzdt+pysHALbBM4RgU8yFe4OMAviXAB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180526},"main":"dist/esm/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/arcadia-game-sdk.js","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"188ecbc353a449ec6b9feac1f23eb6b6899de181","scripts":{"lint":"eslint src --ext .ts","build":"rollup -c","build:prod":"rollup -c --environment NODE_ENV:production","type-check":"tsc --noEmit","build:watch":"rollup -c -w"},"_npmUser":{"name":"belacosaur","email":"calebjmartin@hotmail.com"},"repository":{"url":"git+https://github.com/arcadia/game-sdk.git","type":"git"},"_npmVersion":"10.8.3","description":"Arcadia Game SDK for wallet integration and payment processing in Web3 games","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","rollup":"^4.21.0","typescript":"^5.9.3","@types/node":"^20.19.27","@rollup/plugin-terser":"^0.4.1","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.0","@typescript-eslint/parser":"^6.19.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1768105442344_0.7141771998687072","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arcadiasol/sdk","version":"1.2.0","description":"Arcadia Game SDK for wallet integration and payment processing in Web3 games","main":"dist/esm/index.js","module":"dist/esm/index.js","browser":"dist/umd/arcadia-game-sdk.js","types":"dist/esm/index.d.ts","engines":{"node":">=20.0.0","npm":">=9.0.0"},"scripts":{"build":"rollup -c","build:watch":"rollup -c -w","build:prod":"rollup -c --environment NODE_ENV:production","type-check":"tsc --noEmit","lint":"eslint src --ext .ts"},"keywords":["arcadia","game-sdk","web3","solana","wallet","payments","gaming"],"author":{"name":"Arcadia"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/arcadia/game-sdk.git"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-terser":"^0.4.1","@rollup/plugin-typescript":"^12.1.0","@types/node":"^20.19.27","@typescript-eslint/eslint-plugin":"^6.19.0","@typescript-eslint/parser":"^6.19.0","eslint":"^8.56.0","rollup":"^4.21.0","typescript":"^5.9.3"},"_id":"@arcadiasol/sdk@1.2.0","gitHead":"ad223426fe58b798f93be4a0a11eb5f9617a3f33","bugs":{"url":"https://github.com/arcadia/game-sdk/issues"},"homepage":"https://github.com/arcadia/game-sdk#readme","_nodeVersion":"24.12.0","_npmVersion":"10.8.3","dist":{"integrity":"sha512-tq2OEVAPCvXVNFL1zkKaF/uVYD4IuhKdOmuOCL2UEiSkKFZ9hjVT1SgDn58wlG4I6AZ9ehHXViGiJ4lJx1m8JA==","shasum":"ba1178d69d9e4e6c9ba3eaa8a28ed93b6bdf9248","tarball":"https://registry.npmjs.org/@arcadiasol/sdk/-/sdk-1.2.0.tgz","fileCount":26,"unpackedSize":189650,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCIFvOIN0TBIzi4wsevAQwH5NrlpdEzPWBhqsN06SlIdvIAh9CcpnBBIfYJ3Hp15+awDVO/9poqx8DkXrBbpqtw2R5"}]},"_npmUser":{"name":"belacosaur","email":"calebjmartin@hotmail.com"},"directories":{},"maintainers":[{"name":"belacosaur","email":"calebjmartin@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.2.0_1768140276972_0.35745010330042004"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-11T04:24:02.250Z","modified":"2026-01-11T14:04:37.352Z","1.1.0":"2026-01-11T04:24:02.530Z","1.2.0":"2026-01-11T14:04:37.121Z"},"bugs":{"url":"https://github.com/arcadia/game-sdk/issues"},"author":{"name":"Arcadia"},"license":"MIT","homepage":"https://github.com/arcadia/game-sdk#readme","keywords":["arcadia","game-sdk","web3","solana","wallet","payments","gaming"],"repository":{"type":"git","url":"git+https://github.com/arcadia/game-sdk.git"},"description":"Arcadia Game SDK for wallet integration and payment processing in Web3 games","maintainers":[{"name":"belacosaur","email":"calebjmartin@hotmail.com"}],"readme":"# Arcadia Game SDK\r\n\r\nSDK for integrating Arcadia wallet and payment features into Web3 games.\r\n\r\n## Features\r\n\r\n- ✅ **Wallet Integration** - Get wallet address, check connection status\r\n- ✅ **Payment Processing** - Pay-to-play and in-game purchases\r\n- ✅ **Iframe Support** - Works seamlessly in Arcadia iframes\r\n- ✅ **Non-Iframe Support** - Works with direct API calls for native apps\r\n- ✅ **Stats Tracking** - Track playtime and online status (non-iframe mode)\r\n\r\n## Installation\r\n\r\n### NPM\r\n\r\n```bash\r\nnpm install @arcadiasol/sdk\r\n```\r\n\r\n### CDN\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@arcadiasol/sdk@latest/dist/umd/arcadia-game-sdk.js\"></script>\r\n```\r\n\r\n## Quick Start\r\n\r\n### Iframe Mode (Web Games)\r\n\r\n```typescript\r\nimport ArcadiaSDK from '@arcadiasol/sdk';\r\n\r\nconst arcadia = new ArcadiaSDK({\r\n  gameId: 'your-game-id',\r\n});\r\n\r\nawait arcadia.init();\r\n\r\n// Get wallet address\r\nconst walletAddress = await arcadia.getWalletAddress();\r\n\r\n// Pay to play\r\nconst result = await arcadia.payment.payToPlay(0.1, 'SOL');\r\n```\r\n\r\n### Non-Iframe Mode (Native Apps / External Games)\r\n\r\n```typescript\r\nimport ArcadiaSDK from '@arcadiasol/sdk';\r\n\r\nconst arcadia = new ArcadiaSDK({\r\n  gameId: 'your-game-id',\r\n  apiBaseURL: 'https://arcadia.com', // Required for non-iframe\r\n  authToken: 'your-auth-token', // Optional: if you have auth token\r\n  walletAddress: 'your-wallet-address', // Optional: if you know wallet address\r\n});\r\n\r\nawait arcadia.init();\r\n\r\n// Get wallet address\r\nconst walletAddress = await arcadia.getWalletAddress();\r\n\r\n// Track playtime\r\nawait arcadia.stats.updatePlaytime(1.5, 'playing');\r\n\r\n// Update online status\r\nawait arcadia.stats.updateOnlineStatus(true);\r\n\r\n// Pay to play (requires transaction signature)\r\n// Note: You must sign the transaction yourself in non-iframe mode\r\nconst txSignature = await signTransaction(...); // Your signing logic\r\nconst result = await arcadia.payment.payToPlay(0.1, 'SOL', txSignature);\r\n```\r\n\r\n### React Native Example\r\n\r\n```typescript\r\nimport ArcadiaSDK from '@arcadiasol/sdk';\r\n\r\n// Initialize SDK for React Native\r\nconst arcadia = new ArcadiaSDK({\r\n  gameId: 'your-game-id',\r\n  apiBaseURL: 'https://arcadia.com', // Required\r\n  authToken: await getAuthToken(), // From your auth system\r\n  walletAddress: await getWalletAddress(), // From your wallet SDK\r\n});\r\n\r\nawait arcadia.init();\r\n\r\n// Use SDK methods (same as non-iframe mode)\r\nconst walletAddress = await arcadia.getWalletAddress();\r\nawait arcadia.stats.updatePlaytime(1.5, 'playing');\r\nawait arcadia.stats.updateOnlineStatus(true);\r\n\r\n// Payments require you to sign transactions first\r\nconst transaction = await buildTransaction(...);\r\nconst txSignature = await signTransaction(transaction);\r\nconst result = await arcadia.payment.payToPlay(0.1, 'SOL', txSignature);\r\n```\r\n\r\n## API Reference\r\n\r\n### Constructor\r\n\r\n```typescript\r\nnew ArcadiaSDK(config: SDKConfig)\r\n```\r\n\r\n**Config Options:**\r\n- `gameId` (string, required) - Your game identifier\r\n- `parentOrigin` (string, optional) - Parent window origin for iframe security\r\n- `timeout` (number, optional) - Request timeout in milliseconds (default: 30000)\r\n- `apiBaseURL` (string, optional) - Base URL for API calls (required for non-iframe)\r\n- `authToken` (string, optional) - Pre-authenticated token (non-iframe mode)\r\n- `walletAddress` (string, optional) - Wallet address (non-iframe mode)\r\n\r\n### Methods\r\n\r\n#### `init(): Promise<void>`\r\n\r\nInitialize SDK. Must be called after creating SDK instance.\r\n\r\n#### `getWalletAddress(): Promise<string | null>`\r\n\r\nGet connected wallet address. Returns `null` if not connected.\r\n\r\n#### `isWalletConnected(): Promise<boolean>`\r\n\r\nCheck if wallet is connected.\r\n\r\n#### `onWalletChange(callback: Function): void`\r\n\r\nListen for wallet connection changes.\r\n\r\n#### `payment.payToPlay(amount, token, txSignature?)`\r\n\r\nPay to play. `txSignature` required for non-iframe mode.\r\n\r\n**Parameters:**\r\n- `amount` (number) - Payment amount\r\n- `token` (string) - Token type: 'SOL', 'USDC', or custom token symbol/mint address\r\n- `txSignature` (string, optional) - Transaction signature (required for non-iframe mode)\r\n\r\n#### `payment.purchaseItem(itemId, amount, token, txSignature?)`\r\n\r\nPurchase in-game item. `txSignature` required for non-iframe mode.\r\n\r\n**Parameters:**\r\n- `itemId` (string) - Item identifier\r\n- `amount` (number) - Payment amount\r\n- `token` (string) - Token type: 'SOL', 'USDC', or custom token symbol/mint address\r\n- `txSignature` (string, optional) - Transaction signature (required for non-iframe mode)\r\n\r\n#### `stats.updatePlaytime(hours, status?)`\r\n\r\nUpdate playtime (non-iframe mode only).\r\n\r\n#### `stats.updateOnlineStatus(isOnline)`\r\n\r\nUpdate online status (non-iframe mode only).\r\n\r\n## Environment Detection\r\n\r\nThe SDK automatically detects if it's running in an iframe:\r\n\r\n- **Iframe Mode**: Uses `postMessage` for communication\r\n- **Non-Iframe Mode**: Uses REST API calls (requires `apiBaseURL`)\r\n\r\n## Examples\r\n\r\nSee `/examples` directory for complete examples.\r\n\r\n## Documentation\r\n\r\nFull documentation: https://docs.arcadia.com/sdk\r\n","readmeFilename":"README.md"}