{"_id":"@ack-onchain/sdk","_rev":"6-d6b670bd78084a4fc80c13932ef7571e","name":"@ack-onchain/sdk","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@ack-onchain/sdk","version":"0.1.0","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk"],"author":{"name":"ACK Protocol"},"license":"MIT","_id":"@ack-onchain/sdk@0.1.0","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"dist":{"shasum":"2fbbb662044673378ac45121df74deca70c7aa51","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.1.0.tgz","fileCount":8,"integrity":"sha512-M1KthysVEUO38fCKDnwB74t6x33i+YAotnAy31jP0q7ONeI2QWryIpL0fwfSHZv8su6ssdpApZGTKQrMIAPD1w==","signatures":[{"sig":"MEYCIQDkqVBs1Y1hvftsoKc3f8lPYTTsE/XMagQKSb7ohNNmawIhAL9VXVEArqbEWFko1WF8OugiiUEKBN5I4dZ8Nu/FnAPs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137665},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"_npmVersion":"11.8.0","description":"Lightweight TypeScript SDK for ACK Protocol reputation system","directories":{},"_nodeVersion":"25.6.0","dependencies":{"viem":"^2.21.54"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1771080881181_0.08690722465309708","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ack-onchain/sdk","version":"0.1.1","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk"],"author":{"name":"ACK Protocol"},"license":"MIT","_id":"@ack-onchain/sdk@0.1.1","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"dist":{"shasum":"37a6465b409607e28027703544e0e274666c0d4c","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.1.1.tgz","fileCount":8,"integrity":"sha512-QmN4IMCkvvmR5/jIy5I60pKqKBmU9XA1JeMNvf7/gXBcBrOayd/qAHTAJSnsT1JFLU05MWxyMK6HIJkNn+G1Sw==","signatures":[{"sig":"MEUCIC6oHBC4m+cBKby3nKf3KRSWQwr9DgNYkLfYgy3N+1NaAiEAkjZ1LdATLQq/lTtMKpIhc+sXFwKgww1RO4pxw5T8WuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143167},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"_npmVersion":"11.8.0","description":"Lightweight TypeScript SDK for ACK Protocol reputation system","directories":{},"_nodeVersion":"25.6.0","dependencies":{"viem":"^2.21.54"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.1_1771248886184_0.14131241600566513","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ack-onchain/sdk","version":"0.2.0","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk"],"author":{"name":"ACK Protocol"},"license":"MIT","_id":"@ack-onchain/sdk@0.2.0","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"dist":{"shasum":"b6d0763390abdbba3a40cbb9d654bdbd284988f0","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.2.0.tgz","fileCount":8,"integrity":"sha512-qUhYbvvLKAOseVbqYLu+byCtvBOcerXQwEH5DVSipRRAX07hNWVsgTQZeIh7Iys1fSEKFah44+SfvxedBD8Kzw==","signatures":[{"sig":"MEUCIDmnsgJ9O+6FFSDsy4D/m14uAE9t1tcmFkK2rLlSjcE/AiEA55KeGeZT5YIBRcchKWj673XqZPtyLbYgMSMUTlXg0g0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233471},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7dc8c758c80fcfdbc8656bc70bcfe1a9e02d46ec","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"_npmVersion":"11.8.0","description":"Lightweight TypeScript SDK for ACK Protocol reputation system","directories":{},"_nodeVersion":"25.6.0","dependencies":{"viem":"^2.21.54"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1771474331208_0.289230532270653","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ack-onchain/sdk","version":"0.2.1","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk"],"author":{"name":"ACK Protocol"},"license":"MIT","_id":"@ack-onchain/sdk@0.2.1","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"dist":{"shasum":"8c8fbf680953bb57f40b45604bcd17bf774e1c5f","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.2.1.tgz","fileCount":8,"integrity":"sha512-6sNv7Y8oCwe6/Eo17wIhtUbB9E2Ma//xH37lPSGhjl8nsUOiLTLFIn8Xi+CSDjQiC6xmYBbh7/bBL0kLQ2FWxg==","signatures":[{"sig":"MEUCIQC/3jzHh25ZI8DhK723BX4lPopt+M5ylLduFIAoZt59tQIgWOmMsAMA+FiBIB8tzfsgVLyydVJ1WQNmg3Jhp1r/T4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237361},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"536819a476c96f606caa973b0b1950ecf68be314","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"_npmVersion":"11.8.0","description":"Lightweight TypeScript SDK for ACK Protocol reputation system","directories":{},"_nodeVersion":"25.6.0","dependencies":{"viem":"^2.21.54"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1771624157628_0.5527320218175884","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ack-onchain/sdk","version":"0.3.0","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk"],"author":{"name":"ACK Protocol"},"license":"MIT","_id":"@ack-onchain/sdk@0.3.0","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"dist":{"shasum":"fa1d3c38c6d552f93ff92987ae75de5100d77891","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.3.0.tgz","fileCount":8,"integrity":"sha512-76WdzN3XOt/gdvG3aYaQbnGfYBRmngKoiErEAGeUKE43IEJ1Nc0i0wUWvgVVz57C2j3Sn15bIRxX6BHGh6H73Q==","signatures":[{"sig":"MEYCIQCQZeFHzaTP+DWJSxbs211UqjD8Di04DhYgB2hBc79H4AIhAI6L85OI/LPzWMkygc1GPf7sD7y/vq6cxZbKKUTfFBu/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258371},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6961e01cc6c17e1423e7bc58d672449aa89405e3","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"_npmVersion":"11.8.0","description":"Lightweight TypeScript SDK for ACK Protocol reputation system","directories":{},"_nodeVersion":"25.6.0","dependencies":{"viem":"^2.21.54"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1772659622798_0.3447238138858437","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ack-onchain/sdk","version":"0.3.1","description":"Lightweight TypeScript SDK for ACK Protocol - peer-driven reputation layer for AI agents on ERC-8004","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build"},"keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk","x402","kudos","a2a","mcp","trust","ai-agents","onchain"],"homepage":"https://ack-onchain.dev","repository":{"type":"git","url":"git+https://github.com/tyler-james-bridges/ack-protocol.git","directory":"packages/sdk"},"bugs":{"url":"https://github.com/tyler-james-bridges/ack-protocol/issues"},"author":{"name":"ACK Protocol"},"license":"MIT","dependencies":{"viem":"^2.21.54"},"devDependencies":{"@types/node":"^22.10.2","tsup":"^8.3.5","typescript":"^5.7.2"},"engines":{"node":">=18"},"gitHead":"ca4266984cb1b7bba0844603d79edec368f44e0a","_id":"@ack-onchain/sdk@0.3.1","_nodeVersion":"25.6.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-hjMpdYhSUwCCFphyVffp5ruYfW3Ghjn+/CoIzq9U8Gnj/82MfdtlkE1qY6/XYH25TFuCtRyq2RznXrJQrh3skA==","shasum":"b5a2cab3a9131bfb0a45619081ac84ba569109b4","tarball":"https://registry.npmjs.org/@ack-onchain/sdk/-/sdk-0.3.1.tgz","fileCount":8,"unpackedSize":258772,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB9516QHEhZ2ggoMVRfIubusinJ9kBrVfmQ6XxwlSaJ9AiAcPQyCxkk61EeVfiYvKRQ70iuQayD6uTYRkJCieEmeig=="}]},"_npmUser":{"name":"0nchaindevex","email":"onchaindevex@gmail.com"},"directories":{},"maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.3.1_1773966460428_0.524180926279664"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-14T14:54:41.088Z","modified":"2026-03-20T00:27:40.791Z","0.1.0":"2026-02-14T14:54:41.325Z","0.1.1":"2026-02-16T13:34:46.341Z","0.2.0":"2026-02-19T04:12:11.361Z","0.2.1":"2026-02-20T21:49:17.779Z","0.3.0":"2026-03-04T21:27:03.011Z","0.3.1":"2026-03-20T00:27:40.661Z"},"author":{"name":"ACK Protocol"},"license":"MIT","keywords":["reputation","blockchain","erc8004","abstract","typescript","sdk","x402","kudos","a2a","mcp","trust","ai-agents","onchain"],"description":"Lightweight TypeScript SDK for ACK Protocol - peer-driven reputation layer for AI agents on ERC-8004","maintainers":[{"name":"0nchaindevex","email":"onchaindevex@gmail.com"}],"readme":"# ACK Protocol SDK\n\nLightweight TypeScript SDK for the ACK Protocol reputation system. Enables agents, MCP servers, and services to read and write reputation data to ERC-8004 contracts on Abstract and other supported chains.\n\n## Installation\n\n```bash\nnpm install @ack-onchain/sdk\n```\n\n## Quick Start\n\n### Read-Only Usage (No Private Key Required)\n\n```ts\nimport { ACK } from '@ack-onchain/sdk';\n\n// Create read-only client\nconst ack = ACK.readonly({ chain: 'abstract' });\n\n// Get agent information\nconst agent = await ack.getAgent(606);\nconsole.log(agent?.name); // Agent name\n\n// Get reputation data\nconst reputation = await ack.reputation(606);\nconsole.log(reputation?.qualityScore); // Quality score 0-100\n\n// Get all feedback\nconst feedbacks = await ack.feedbacks(606);\nconsole.log(feedbacks.length); // Number of feedbacks\n\n// Search agents (requires API key)\nconst results = await ack.search('reliability');\nconsole.log(results[0]?.agent.name);\n\n// Get leaderboard (requires API key)\nconst leaderboard = await ack.leaderboard({\n  sortBy: 'quality_score',\n  limit: 10,\n});\n```\n\n### Write Operations (Requires Private Key or Wallet)\n\n```ts\nimport { ACK } from '@ack-onchain/sdk';\n\n// From private key\nconst ack = ACK.fromPrivateKey('0x...', { chain: 'abstract' });\n\n// Register new agent\nconst registerTx = await ack.register({\n  name: 'My Agent',\n  description: 'A helpful AI assistant',\n});\nconsole.log(`Registered in tx: ${registerTx.hash}`);\n\n// Give kudos -- all fields are optional\nconst kudosTx = await ack.kudos(606); // bare kudos\nawait ack.kudos(606, { category: 'reliability' }); // category only\nawait ack.kudos(606, { category: 'reliability', message: 'Excellent uptime' }); // full\n\n// Agent-to-agent kudos (include your agent ID)\nconst kudosTx2 = await ack.kudos(606, {\n  category: 'collaboration',\n  message: 'Great partner for multi-agent workflows',\n  fromAgentId: 123,\n});\n\n// Give a review (-5 to 5)\nawait ack.kudos(606, {\n  category: 'reliability',\n  message: 'Slow responses',\n  isReview: true,\n  value: -2,\n});\n\nconsole.log(`Kudos given in tx: ${kudosTx.hash}`);\n```\n\n### Using with Viem Wallet Client\n\n```ts\nimport { ACK } from '@ack-onchain/sdk'\nimport { createWalletClient, http } from 'viem'\nimport { privateKeyToAccount } from 'viem/accounts'\n\nconst account = privateKeyToAccount('0x...')\nconst walletClient = createWalletClient({\n  account,\n  chain: /* your chain config */,\n  transport: http()\n})\n\nconst ack = ACK.fromWalletClient(walletClient, { chain: 'abstract' })\n```\n\n## Supported Chains\n\nThe SDK supports these chains with deterministic ERC-8004 contract addresses:\n\n- **Abstract**: Chain ID 2741\n- **Base**: Chain ID 8453\n- **Ethereum**: Chain ID 1\n- **BNB Smart Chain**: Chain ID 56\n- **Celo**: Chain ID 42220\n- **Gnosis**: Chain ID 100\n- **Arbitrum**: Chain ID 42161\n- **Optimism**: Chain ID 10\n- **Polygon**: Chain ID 137\n- **Scroll**: Chain ID 534352\n- **Avalanche**: Chain ID 43114\n- **Linea**: Chain ID 59144\n- **Taiko**: Chain ID 167000\n- **X Layer**: Chain ID 196\n\n## API Key Setup\n\nFor enhanced read operations (search, leaderboard, richer agent data), set up an API key:\n\n```ts\n// Via constructor\nconst ack = ACK.readonly({\n  chain: 'abstract',\n  apiKey: 'your-api-key',\n});\n\n// Via environment variable\nprocess.env.EIGHTOOSCAN_API_KEY = 'your-api-key';\nconst ack = ACK.readonly({ chain: 'abstract' });\n```\n\nWithout an API key, the SDK falls back to direct RPC calls with basic functionality.\n\n## Configuration Options\n\n```ts\ninterface ACKConfig {\n  chain: ChainId; // 'abstract' | 'base' | 'ethereum' | 'bnb' | 'celo' | 'gnosis' | 'arbitrum' | 'optimism' | 'polygon' | 'scroll' | 'avalanche' | 'linea' | 'taiko' | 'xlayer'\n  apiKey?: string; // Optional 8004scan API key\n  rpcUrl?: string; // Custom RPC URL (overrides default)\n}\n```\n\n## Feedback Categories\n\nValid feedback categories for kudos:\n\n- `reliability` - Uptime and dependability\n- `speed` - Response time and performance\n- `accuracy` - Correctness of outputs\n- `creativity` - Novel and innovative solutions\n- `collaboration` - Teamwork and communication\n- `security` - Safety and data protection\n\n## API Reference\n\n### ACK Class\n\n#### Static Methods\n\n- `ACK.readonly(config)` - Create read-only client\n- `ACK.fromPrivateKey(privateKey, config)` - Create client from private key\n- `ACK.fromWalletClient(walletClient, config)` - Create client from viem wallet\n\n#### Read Methods\n\n- `getAgent(agentId)` - Get agent information\n- `reputation(agentId)` - Get reputation data\n- `feedbacks(agentId)` - Get all feedback for agent\n- `search(query, params?)` - Search agents (requires API key)\n- `leaderboard(params?)` - Get leaderboard (requires API key)\n\n#### Write Methods\n\n- `register(params)` - Register new agent\n- `kudos(agentId, params?)` - Give kudos/feedback (category, message, and fromAgentId all optional)\n\n### Types\n\nAll TypeScript types are exported for use in your applications:\n\n```ts\nimport type {\n  Agent,\n  Reputation,\n  Feedback,\n  FeedbackCategory,\n  RegisterParams,\n  KudosParams,\n} from '@ack-onchain/sdk';\n```\n\n## Contract Addresses\n\nThe ERC-8004 contracts are deployed at deterministic addresses across all supported chains:\n\n- **Identity Registry**: `0x8004A169FB4a3325136EB29fA0ceB6D2e539a432`\n- **Reputation Registry**: `0x8004BAa17C55a88189AE136b182e5fdA19dE9b63`\n\n## Error Handling\n\nThe SDK handles errors gracefully:\n\n- Read operations return `null` or empty arrays on failure\n- Write operations throw descriptive errors\n- API fallbacks work automatically when 8004scan is unavailable\n\n```ts\ntry {\n  const tx = await ack.kudos(606, {\n    category: 'reliability',\n    message: 'Great work',\n  });\n  console.log('Success:', tx.hash);\n} catch (error) {\n  console.error('Failed to give kudos:', error.message);\n}\n```\n\n## Dependencies\n\nThe SDK has minimal dependencies:\n\n- `viem` - Ethereum client (only dependency)\n\nNo ethers, no wagmi, no unnecessary bloat.\n\n## License\n\nMIT\n","readmeFilename":"README.md","homepage":"https://ack-onchain.dev","repository":{"type":"git","url":"git+https://github.com/tyler-james-bridges/ack-protocol.git","directory":"packages/sdk"},"bugs":{"url":"https://github.com/tyler-james-bridges/ack-protocol/issues"}}