{"_id":"@dragonchain-inc/prime-sdk","_rev":"6-21e857eb1636bccc1d88f0bbf35b72e4","name":"@dragonchain-inc/prime-sdk","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.2":{"name":"@dragonchain-inc/prime-sdk","version":"1.0.2","keywords":["dragonchain","blockchain","sdk","api","typescript","nodejs"],"author":{"name":"Dragonchain"},"license":"Apache-2.0","_id":"@dragonchain-inc/prime-sdk@1.0.2","maintainers":[{"name":"dragonchain-service-user","email":"developer@dragonchain.com"},{"name":"andrew_dc","email":"andrew@dragonchain.com"}],"dist":{"shasum":"b381f04525a4db743c5b83d27564a143a5efb35a","tarball":"https://registry.npmjs.org/@dragonchain-inc/prime-sdk/-/prime-sdk-1.0.2.tgz","fileCount":18,"integrity":"sha512-ynoSFi1gyg2jrcot6AM1tOFsDLp3ZUVhQu07RgV7DEt50TXvaUkGe1jaQRbkDuis7XdXJcsrJ/2xQTUZunpjfw==","signatures":[{"sig":"MEQCIDIyrkbBKyXV3oRHKaL/aYPivuKOtRprC58IaibRqAjYAiA66UeWDB6FtfHsJw8Kivrzphe2bk/zn2n0P6cVx7/gTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135561},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsup","clean":"rm -rf dist coverage","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts --fix","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"andrew_dc","email":"andrew@dragonchain.com"},"repository":{"url":"https://git.dragonchain.com/dragonchain/dragonchain-node-sdk","type":"git"},"_npmVersion":"10.9.2","description":"Official Dragonchain SDK for Node.js and TypeScript","directories":{},"_nodeVersion":"22.17.0","dependencies":{"js-yaml":"^4.1.0","@dragonchain-inc/prime-sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.3","@types/jest":"^29.5.12","@types/node":"^20.11.30","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.3.1","@typescript-eslint/eslint-plugin":"^7.3.1"},"_npmOperationalInternal":{"tmp":"tmp/prime-sdk_1.0.2_1762361364733_0.3028375596156181","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dragonchain-inc/prime-sdk","version":"1.0.3","description":"Official Dragonchain Prime SDK for Node.js and TypeScript","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","clean":"rm -rf dist coverage","prepublishOnly":"npm run clean && npm run build && npm test"},"keywords":["dragonchain","blockchain","sdk","api","typescript","nodejs"],"author":{"name":"Dragonchain"},"license":"Apache-2.0","repository":{"type":"git","url":"https://git.dragonchain.com/dragonchain/dragonchain-prime-node-sdk"},"engines":{"node":">=16.0.0"},"dependencies":{"js-yaml":"^4.1.0"},"devDependencies":{"@types/jest":"^29.5.12","@types/js-yaml":"^4.0.9","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","jest":"^29.7.0","prettier":"^3.2.5","ts-jest":"^29.1.2","tsup":"^8.5.0","typescript":"^5.4.3"},"_id":"@dragonchain-inc/prime-sdk@1.0.3","gitHead":"98ab2e05a75541639281fdbfa4a198e8152b272d","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-1zYmcbUu0xUYWedj/KtK4oLY7D3ZbDDyJe/+B3mYtmk6+jJh4qv76vpnHepFMCyC1dctERQe7TfKkjSHy0r27w==","shasum":"86809ebf30b8c8198711b980661f3dca3f0ddc62","tarball":"https://registry.npmjs.org/@dragonchain-inc/prime-sdk/-/prime-sdk-1.0.3.tgz","fileCount":18,"unpackedSize":134826,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGqIA1ocply50s2L5cK9aAx2ozlXZ4bbBYbQI45b26cpAiEAoHSBxMXU3hZrqQxh0xbwAoCyA142o4WU3WFOsVCxmXc="}]},"_npmUser":{"name":"andrew_dc","email":"andrew@dragonchain.com"},"directories":{},"maintainers":[{"name":"dragonchain-service-user","email":"developer@dragonchain.com"},{"name":"andrew_dc","email":"andrew@dragonchain.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prime-sdk_1.0.3_1762875316828_0.7963222135646602"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-05T16:22:54.794Z","modified":"2025-11-11T15:35:17.307Z","1.0.0":"2025-11-05T16:22:55.068Z","1.0.1":"2025-11-05T16:38:50.586Z","1.0.2":"2025-11-05T16:49:24.920Z","1.0.3":"2025-11-11T15:35:17.062Z"},"author":{"name":"Dragonchain"},"license":"Apache-2.0","keywords":["dragonchain","blockchain","sdk","api","typescript","nodejs"],"repository":{"type":"git","url":"https://git.dragonchain.com/dragonchain/dragonchain-prime-node-sdk"},"description":"Official Dragonchain Prime SDK for Node.js and TypeScript","maintainers":[{"name":"dragonchain-service-user","email":"developer@dragonchain.com"},{"name":"andrew_dc","email":"andrew@dragonchain.com"}],"readme":"# Dragonchain Node.js SDK\n\nOfficial Node.js and TypeScript SDK for interacting with Dragonchain blockchain nodes.\n\n## Features\n\n- 🔒 **HMAC-SHA256 Authentication** - Secure request signing\n- 📦 **Full TypeScript Support** - Complete type definitions included\n- 🌐 **Dual Package** - Works with both ESM and CommonJS\n- ✅ **Comprehensive Testing** - Thoroughly tested with Jest\n- 🎯 **Modern Best Practices** - Built with latest Node.js standards\n\n## Installation\n\n```bash\nnpm install @dragonchain-inc/prime-sdk\n```\n\nOr with yarn:\n\n```bash\nyarn add @dragonchain-inc/prime-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { DragonchainSDK } from '@dragonchain-inc/prime-sdk';\n\n// Initialize the SDK\nconst sdk = new DragonchainSDK(\n  'your-public-id',\n  'your-auth-key-id',\n  'your-auth-key',\n  'https://your-dragonchain-endpoint.com'\n);\n\n// Check system health\nawait sdk.system.health();\n\n// Get system status\nconst status = await sdk.system.status();\nconsole.log(`Chain ID: ${status.id}, Level: ${status.level}`);\n\n// Create a transaction\nconst txnResponse = await sdk.transaction.create({\n  txn_type: 'my-transaction-type',\n  payload: JSON.stringify({ message: 'Hello Dragonchain' }),\n  tag: 'example-tag',\n});\nconsole.log(`Created transaction: ${txnResponse.transaction_id}`);\n```\n\n## Using Configuration Files\n\nThe SDK supports loading credentials from YAML configuration files:\n\n```yaml\ndefault: my-chain-id\nchains:\n  - name: my-chain\n    publicId: my-chain-id\n    authKeyId: my-auth-key-id\n    authKey: my-auth-key\n    endpoint: https://mychain.dragonchain.com\n```\n\n```typescript\nimport { DragonchainSDK } from '@dragonchain-inc/prime-sdk';\nimport { loadConfig, getDefaultChain } from '@dragonchain-inc/prime-sdk';\n\n// Load config from file\nconst config = loadConfig('~/.dragonchain/credentials.yaml');\nconst chain = getDefaultChain(config);\n\nif (chain) {\n  const sdk = new DragonchainSDK(\n    chain.publicId,\n    chain.authKeyId,\n    chain.authKey,\n    chain.endpoint\n  );\n}\n```\n\n## API Reference\n\n### System\n\n```typescript\n// Check system health\nawait sdk.system.health();\n\n// Get system status\nconst status = await sdk.system.status();\n```\n\n### Transactions\n\n```typescript\n// Create a transaction\nconst response = await sdk.transaction.create({\n  txn_type: 'my-type',\n  payload: JSON.stringify({ data: 'example' }),\n  tag: 'optional-tag',\n});\n\n// Create multiple transactions\nconst bulkResponse = await sdk.transaction.createBulk({\n  transactions: [\n    { txn_type: 'type1', payload: 'data1' },\n    { txn_type: 'type2', payload: 'data2' },\n  ],\n});\n\n// Get a transaction by ID\nconst txn = await sdk.transaction.get('transaction-id');\n\n// List all transactions\nconst txns = await sdk.transaction.list();\n```\n\n### Transaction Types\n\n```typescript\n// Create a transaction type\nawait sdk.transactionType.create({\n  txn_type: 'my-new-type',\n});\n\n// Get a transaction type\nconst txnType = await sdk.transactionType.get('my-type');\n\n// List all transaction types\nconst types = await sdk.transactionType.list();\n\n// Delete a transaction type\nawait sdk.transactionType.delete('my-type');\n```\n\n### Blocks\n\n```typescript\n// Get a block by ID\nconst block = await sdk.block.get('block-id');\n```\n\n## TypeScript Support\n\nThis SDK is written in TypeScript and includes complete type definitions:\n\n```typescript\nimport {\n  DragonchainSDK,\n  TransactionCreateRequest,\n  TransactionCreateResponse,\n  SystemStatus,\n} from '@dragonchain-inc/prime-sdk';\n\nconst sdk = new DragonchainSDK(\n  publicId,\n  authKeyId,\n  authKey,\n  baseURL\n);\n\n// Full type safety\nconst request: TransactionCreateRequest = {\n  txn_type: 'my-type',\n  payload: JSON.stringify({ foo: 'bar' }),\n};\n\nconst response: TransactionCreateResponse = await sdk.transaction.create(request);\n```\n\n## Authentication\n\nThe SDK uses HMAC-SHA256 authentication with the following components:\n\n1. **Public ID** - Your Dragonchain public identifier\n2. **Auth Key ID** - Your authentication key identifier\n3. **Auth Key** - Your secret authentication key\n4. **Endpoint** - The base URL of your Dragonchain node\n\nEach request is signed with:\n- `Authorization` header: `DC1-HMAC-SHA256 {authKeyId}:{signature}`\n- `Dragonchain` header: Your public ID\n- `Timestamp` header: Unix timestamp of the request\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Build the package\nnpm run build\n\n# Lint the code\nnpm run lint\n\n# Format the code\nnpm run format\n```\n\n## Requirements\n\n- Node.js >= 16.0.0\n- TypeScript >= 5.0.0 (for TypeScript projects)\n\n## License\n\nApache-2.0\n\n## Support\n\nFor issues and questions, please visit:\n- Repository: https://git.dragonchain.com/dragonchain/dragonchain-node-sdk\n- Documentation: https://dragonchain-core-docs.dragonchain.com\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n","readmeFilename":"README.md"}