{"_id":"@arcadiasol/game-sdk","_rev":"2-487e893a7b55bc7f2f7d0c52362943e6","name":"@arcadiasol/game-sdk","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@arcadiasol/game-sdk","version":"1.0.0","keywords":["arcadia","game-sdk","web3","solana","wallet","payments","gaming"],"author":{"name":"Arcadia"},"license":"MIT","_id":"@arcadiasol/game-sdk@1.0.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":"f896408bc70ca46b0208b475dabe6bc3831babde","tarball":"https://registry.npmjs.org/@arcadiasol/game-sdk/-/game-sdk-1.0.0.tgz","fileCount":24,"integrity":"sha512-rwgWCNGot7a4Fw2+xe+Leund0emfz+p8IWIm18UyN1CDVqgktew8aemeQYYsCUec3prQElwcq09lrgBHFp37MQ==","signatures":[{"sig":"MEQCIF3GzyXuTT5iN/dT5qpTn5BalGfVIWO15ksccfOJ87GdAiA+0w1SvBNgRXwCvg4Bgdt/z7XohxW+VM4AyR2KoltQLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138652},"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":"4046825f6683c5607467c907653896a1a097b922","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":"20.17.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/game-sdk_1.0.0_1766211916300_0.541344497330839","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@arcadiasol/game-sdk","version":"1.1.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/game-sdk@1.1.0","gitHead":"188ecbc353a449ec6b9feac1f23eb6b6899de181","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-woFKvFKtNUgJDPYfUEg9TdAYu/Re/jjqg3LB/QXEnEtpPsn7mbCAsoCNVFQ2QW9dAiSmP3EuaFlYcakroCBBnw==","shasum":"652fdc6cd63f268898c7725a36b4e2fdf39110ff","tarball":"https://registry.npmjs.org/@arcadiasol/game-sdk/-/game-sdk-1.1.0.tgz","fileCount":26,"unpackedSize":180551,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDuufNNfMi/iNVqkWDE8Of8IRjt3kfjvsJRC3Kz7lB3LAiEA7NP03VJeLtJbPMV4YzoJrO4MXHW2tzyjw96lQDy1hBk="}]},"_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/game-sdk_1.1.0_1768105182408_0.4846703968220136"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-20T06:25:16.188Z","modified":"2026-01-11T04:19:42.781Z","1.0.0":"2025-12-20T06:25:16.437Z","1.1.0":"2026-01-11T04:19:42.581Z"},"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/game-sdk\r\n```\r\n\r\n### CDN\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@arcadiasol/game-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/game-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/game-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## 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#### `payment.purchaseItem(itemId, amount, token, txSignature?)`\r\n\r\nPurchase in-game item. `txSignature` 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"}