{"_id":"@br1j/lattice-sdk","name":"@br1j/lattice-sdk","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@br1j/lattice-sdk","version":"0.1.0","description":"JavaScript/TypeScript SDK for Lattice AI blockchain platform","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"build":"tsc && rollup -c","build:types":"tsc --emitDeclarationOnly","test":"jest","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","format":"prettier --write \"src/**/*.{ts,js,json}\"","prepublishOnly":"npm run build","release":"npm run build && npm publish --access public"},"keywords":["lattice","blockchain","ai","dag","web3","machine-learning","distributed-computing","cryptocurrency"],"author":{"name":"Lattice Team","email":"developers@lattice.ai"},"license":"MIT","homepage":"https://github.com/SaulBuilds/lattice-v3","repository":{"type":"git","url":"git+https://github.com/SaulBuilds/lattice-v3.git","directory":"sdk/javascript"},"bugs":{"url":"https://github.com/SaulBuilds/lattice-v3/issues"},"engines":{"node":">=16.0.0"},"dependencies":{"axios":"^1.6.0","ethers":"^6.9.0","events":"^3.3.0","ws":"^8.14.0"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.2.0","@rollup/plugin-typescript":"^11.1.0","@types/jest":"^29.5.0","@types/node":"^20.10.0","@types/ws":"^8.5.0","@typescript-eslint/eslint-plugin":"^6.14.0","@typescript-eslint/parser":"^6.14.0","eslint":"^8.55.0","jest":"^29.7.0","prettier":"^3.1.0","rollup":"^4.6.0","ts-jest":"^29.1.0","typescript":"^5.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@br1j/lattice-sdk@0.1.0","gitHead":"7fcfb820dceced60d4c20d5ec539fb1012af69f6","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-A2E3kbyCFBt9dUg+E/Rf7R9e2+kxjuhs/7BdA7szbGJ6SnRTxo6qT01H3ns6I3geCw8WZ4/j8R3cZM4rz3WTwQ==","shasum":"b83e3ed4a2036a06ef46424d121c46a79b10c26b","tarball":"https://registry.npmjs.org/@br1j/lattice-sdk/-/lattice-sdk-0.1.0.tgz","fileCount":17,"unpackedSize":42349,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD0TCkwKcPOaHPWRyNS/CGObqyapUCVVMMWpLGjLQ3viAIgd88lfN2AcbalVvIKzxifRNXyrFKc3lEiwJ2ajapOlYA="}]},"_npmUser":{"name":"br1j","email":"saulweiloveman@gmail.com"},"directories":{},"maintainers":[{"name":"br1j","email":"saulweiloveman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lattice-sdk_0.1.0_1760495297601_0.13297774680605468"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-15T02:28:17.542Z","0.1.0":"2025-10-15T02:28:17.801Z","modified":"2025-10-15T02:28:18.101Z"},"maintainers":[{"name":"br1j","email":"saulweiloveman@gmail.com"}],"description":"JavaScript/TypeScript SDK for Lattice AI blockchain platform","homepage":"https://github.com/SaulBuilds/lattice-v3","keywords":["lattice","blockchain","ai","dag","web3","machine-learning","distributed-computing","cryptocurrency"],"repository":{"type":"git","url":"git+https://github.com/SaulBuilds/lattice-v3.git","directory":"sdk/javascript"},"author":{"name":"Lattice Team","email":"developers@lattice.ai"},"bugs":{"url":"https://github.com/SaulBuilds/lattice-v3/issues"},"license":"MIT","readme":"# Lattice JavaScript/TypeScript SDK\n\nThe official JavaScript/TypeScript SDK for the Lattice AI blockchain platform. This SDK provides a comprehensive interface for interacting with Lattice nodes, deploying AI models, managing accounts, and executing transactions.\n\n## Installation\n\n```bash\nnpm install @br1j/lattice-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { LatticeSDK } from '@br1j/lattice-sdk';\n\n// Initialize the SDK\nconst sdk = new LatticeSDK({\n  nodeUrl: 'https://rpc.br1j.xyz',  // Lattice V3 Testnet\n  chainId: 1337,\n});\n\n// Connect to a wallet\nawait sdk.account.connectWallet();\n\n// Get account balance\nconst balance = await sdk.account.getBalance();\nconsole.log(`Balance: ${balance} LAT`);\n\n// Deploy a model\nconst modelId = await sdk.models.deploy({\n  name: 'My AI Model',\n  description: 'A simple classification model',\n  ipfsHash: 'QmYourModelHash',\n  framework: 'pytorch',\n  version: '1.0.0',\n});\n\nconsole.log(`Model deployed with ID: ${modelId}`);\n```\n\n## Features\n\n### 🔗 Node Connectivity\n- Connect to Lattice nodes via RPC/WebSocket\n- Real-time event listening\n- Automatic reconnection handling\n\n### 🤖 AI Model Management\n- Deploy models to the blockchain\n- Execute model inference\n- Model versioning and metadata\n- IPFS integration for model storage\n\n### 💰 Account Management\n- Wallet integration (MetaMask, WalletConnect)\n- Account creation and import\n- Balance queries\n- Transaction signing\n\n### 🔄 Transaction Management\n- Send transactions\n- Smart contract interaction\n- Gas estimation\n- Transaction status tracking\n\n### 📊 DAG Explorer\n- Query block DAG structure\n- Get block information\n- Explore transaction history\n- Real-time chain updates\n\n## API Reference\n\n### LatticeSDK\n\nMain SDK class that provides access to all functionality.\n\n```typescript\nconst sdk = new LatticeSDK({\n  nodeUrl: string,\n  chainId?: number,\n  timeout?: number,\n  retries?: number,\n});\n```\n\n### Models\n\nModel deployment and management.\n\n```typescript\n// Deploy a new model\nawait sdk.models.deploy({\n  name: string,\n  description: string,\n  ipfsHash: string,\n  framework: 'pytorch' | 'tensorflow' | 'onnx',\n  version: string,\n  accessType: 'public' | 'private',\n  price?: string,\n});\n\n// Execute model inference\nconst result = await sdk.models.execute(modelId, {\n  inputs: any[],\n  outputFormat: 'json' | 'binary',\n});\n\n// Get model information\nconst modelInfo = await sdk.models.getInfo(modelId);\n```\n\n### Accounts\n\nAccount and wallet management.\n\n```typescript\n// Connect wallet\nawait sdk.account.connectWallet();\n\n// Create new account\nconst account = await sdk.account.create();\n\n// Get balance\nconst balance = await sdk.account.getBalance(address?);\n\n// Send transaction\nconst txHash = await sdk.account.sendTransaction({\n  to: string,\n  value: string,\n  data?: string,\n  gasLimit?: number,\n});\n```\n\n### Contracts\n\nSmart contract interaction.\n\n```typescript\n// Deploy contract\nconst contractAddress = await sdk.contracts.deploy({\n  bytecode: string,\n  abi: any[],\n  constructorArgs?: any[],\n});\n\n// Call contract method\nconst result = await sdk.contracts.call({\n  address: string,\n  abi: any[],\n  method: string,\n  args: any[],\n});\n\n// Send contract transaction\nconst txHash = await sdk.contracts.send({\n  address: string,\n  abi: any[],\n  method: string,\n  args: any[],\n  value?: string,\n});\n```\n\n## Advanced Usage\n\n### Event Listening\n\n```typescript\n// Listen for new blocks\nsdk.on('block', (block) => {\n  console.log(`New block: ${block.hash}`);\n});\n\n// Listen for model deployments\nsdk.on('modelDeployed', (event) => {\n  console.log(`Model deployed: ${event.modelId}`);\n});\n\n// Listen for transactions\nsdk.on('transaction', (tx) => {\n  console.log(`Transaction: ${tx.hash}`);\n});\n```\n\n### Custom Providers\n\n```typescript\nimport { ethers } from 'ethers';\n\n// Use custom provider\nconst provider = new ethers.providers.WebSocketProvider('ws://localhost:8546');\nconst sdk = new LatticeSDK({\n  provider,\n  chainId: 1337,\n});\n```\n\n### Batch Operations\n\n```typescript\n// Batch multiple model executions\nconst results = await sdk.models.batchExecute([\n  { modelId: 'model1', inputs: [1, 2, 3] },\n  { modelId: 'model2', inputs: [4, 5, 6] },\n]);\n```\n\n## Configuration\n\n### Environment Variables\n\n```bash\nLATTICE_NODE_URL=https://rpc.br1j.xyz  # Lattice V3 Testnet\nLATTICE_CHAIN_ID=1337\nLATTICE_TIMEOUT=30000\nLATTICE_RETRIES=3\n```\n\n### TypeScript Configuration\n\n```json\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2018\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"node\",\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"declaration\": true\n  }\n}\n```\n\n## Error Handling\n\n```typescript\nimport { LatticeError, ModelNotFoundError, InsufficientFundsError } from '@br1j/lattice-sdk';\n\ntry {\n  await sdk.models.execute('invalid-model-id', { inputs: [] });\n} catch (error) {\n  if (error instanceof ModelNotFoundError) {\n    console.log('Model not found');\n  } else if (error instanceof InsufficientFundsError) {\n    console.log('Insufficient funds for execution');\n  } else if (error instanceof LatticeError) {\n    console.log('Lattice SDK error:', error.message);\n  } else {\n    console.log('Unknown error:', error);\n  }\n}\n```\n\n## Testing\n\n```bash\nnpm test              # Run all tests\nnpm run test:unit     # Run unit tests\nnpm run test:integration  # Run integration tests\nnpm run test:coverage # Run with coverage\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Run the test suite\n6. Submit a pull request\n\n## License\n\nApache-2.0 License. See [LICENSE](../../LICENSE) for details.\n\n## Support\n\n- 📖 [Documentation](https://github.com/SaulBuilds/lattice-v3)\n- 🐛 [Issue Tracker](https://github.com/SaulBuilds/lattice-v3/issues)\n- 🌐 [Testnet RPC](https://rpc.br1j.xyz)\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for version history and updates.","readmeFilename":"README.md","_rev":"1-61daa8e5ae18ab0c424d637e527a19c2"}