{"_id":"@0gfoundation/0g-agenticid-sdk","_rev":"7-7001b719a9d13de98eb7b4cb75b8c3d6","name":"@0gfoundation/0g-agenticid-sdk","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.0","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.0","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"dist":{"shasum":"c8873dd9af059479fbe26dee778de0cf4abbc5cd","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.0.tgz","fileCount":74,"integrity":"sha512-ALvuv5srfdRlMxbrBSPsLdhvAjxgrdhKURSG6lhplZFJseAhwCVusAwdhXcbKNg3FEvTAKYxlKU1oqkkfuPgyw==","signatures":[{"sig":"MEUCIQDTlfpMt4LsQ2XaoK8gi+ltVvYBRzDm0lucH9B5ddMMeQIgPOVA+6zSjlXkDR++dRsauDfyiQDQvIusOfGTy414vgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":617095},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"3cd1f160e21e60336024685e688f23b70d9050ab","scripts":{"build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.0_1786440675851_0.874237529507107","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.1","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.1","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"dist":{"shasum":"bd5df24272f31d91a1de5ba2bbf0242b55553e0c","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.1.tgz","fileCount":73,"integrity":"sha512-JqHXod9iYeZXQ5o7n5Yu+QMP5s5p0ZIAH4Gykm5yXCEPzyPWO8//UbW27ztxKKdyZordx4H4sYR7pgZDiAowmg==","signatures":[{"sig":"MEUCIQDgdYjdVSKx3r0OCqdBzkDAhXRJ480xE73j4+nOpJ1ZEQIgbl5oDY8pBdczFmD12ZtZcreNCvCFiuYvF/S1E5QrQJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591498},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"e3ce15afec142477fe7c502063fb4ae84e793a40","scripts":{"build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.1_1786444933522_0.365432616316248","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.2","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.2","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"bin":{"0g-agenticid":"dist/cli/main.js"},"dist":{"shasum":"4ed1d5171dcfbf5d0195bece4ac5ff4cc816eeb6","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.2.tgz","fileCount":124,"integrity":"sha512-IUD2dZCxTIF2uDZrmaYbsTLl87QDeIdaiZYb5pFPny80vGuGUzGRDJQXa2lJx1mTx60Z6eX1rUhbXwPPxpV2og==","signatures":[{"sig":"MEUCIQCivGxv+ZvLUbX12dByNWvnCJPG1rZvqala3FkE72FHbgIgU/JuyYl+ZXd7zvf/i8MisRKtCdzWkGWMl0QOoHJV8mU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":721636},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"b8f4845388d3385bf0d57229c484f5089315c92b","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.2_1786686434999_0.7702579931441491","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.3","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.3","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"bin":{"0g-agenticid":"dist/cli/main.js"},"dist":{"shasum":"d50e194beb07ba158b410e8a1bf79c484d1a8eb8","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.3.tgz","fileCount":149,"integrity":"sha512-eCd6/JaSj8hA10C7csTFafq8Gammw6Sxp4QZ+bXar4nIY2P7baZtZj4OSLu34sNuQlssKUGaSwT0VDeN4xErVA==","signatures":[{"sig":"MEUCIB9FJ8rwbqWLthkspZhOV8KCAjOMlE+6QRiAa6boL3HwAiEAls+uj0gxFygmRaw4D45EznkxjSZY66jkFl+/B/yZTVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCAXlWZ+jKWwB7Sz5Un/1fMVfbr5jXt2ZHR1WADORWnowIhALuLd10fVhmv1nphvQc+r30ORYq+FSP3O2EdsPxv0od9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1262786},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"abf2cfd32c7d064f982f7d8c555f70dfd5fd6f85","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.3_1788776020779_0.4740108565003365","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.4","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.4","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"bin":{"0g-agenticid":"dist/cli/main.js"},"dist":{"shasum":"8f450045b41a3a8fbefb623e7c09c3a50dfa19cb","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.4.tgz","fileCount":149,"integrity":"sha512-LXIrSeCELRwXsK6bd7j4AQuJw3QFJQWsB2JIIPyIr4jJyYLQPDPFNCN4X85pf7UOKHvl3TvD6DlKjW7Z5haEaA==","signatures":[{"sig":"MEYCIQCsMB+Qf13yk0Fy2q5czyFEZwGFxsl0FSjcQnCKL5JmRQIhAJSithmFCIhMOFdoY2Oq9dGXbXn3G8WKVVloGXSj/0kt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDeLrmZmlj7HCnuicbYQNtAPaalqVLurA21RrQfuhSN1AIgO0C2Jl08p/e6nLrLza9s2Kzuo1iRlOrr6hXj/oLUmv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1267336},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"24f25465e0a8d3110e2f573cb7549aab1d884194","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.4_1789024891353_0.6028674290278073","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@0gfoundation/0g-agenticid-sdk","version":"0.1.5","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"license":"MIT","_id":"@0gfoundation/0g-agenticid-sdk@0.1.5","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"bin":{"0g-agenticid":"dist/cli/main.js"},"dist":{"shasum":"7ac50b6003fc95dea40222ea9e3a5ef3fc7b175d","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.5.tgz","fileCount":149,"integrity":"sha512-X+Yadlvgb41TY0BQaTm597YPEXr1qPcQyTRAtDzdLmIvKsafRJzXU8mzZlUxXICcNQYPaOwEYgFJDCsLaaJ9DA==","signatures":[{"sig":"MEQCICzalvhMcWQ9bZ9yOe5P37YPnyjfSAAGx1N5xsGRC15VAiACDYzWy7TlnTVZ20xnA2gnQ9wNHOzivq2ttlE6FNEJxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCGNq9QkzuXjs9EV3W/teESzh3eRndOyuAAo+pEsokdhwIgPYz7IsqU2in0nNRGzAwP+mjlGfqPNXibip6NJa7htXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309016},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"881fef505c075bdfd2e077fbee17edfe551ba274","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/0g-agenticid-sdk_0.1.5_1789388025882_0.3152363738260031","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"_id":"@0gfoundation/0g-agenticid-sdk@0.1.6","bin":{"0g-agenticid":"dist/cli/main.js"},"bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"dist":{"shasum":"ec7029b8f2a725c351a7eca8782c6b049309defe","tarball":"https://registry.npmjs.org/@0gfoundation/0g-agenticid-sdk/-/0g-agenticid-sdk-0.1.6.tgz","fileCount":149,"integrity":"sha512-ZQCvAIpv/9AF8Bg6WjBr9ptz6f/BPN6fVLiuZV83MZ+db/lVHnuTD763HiMKnnAJD6lx8j6TCfvlWBFl/dpcUQ==","signatures":[{"sig":"MEUCIQCRIkajj4mmLusMXP2lz1q11iLiLYYEfyE3FvsW11tYywIgHQa+lu+uWrkifUArJ6T4rjdSFvBbs2vLAC574nBRs3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDgshIwu7TP2Xv+Vf/WBCeHLtxYZqQZTOzZdkgsQou3EAIhALfX7CcjUKaOPcBlPsQ5Mw86C00dC32PtMoUhtM6L4Ny"}],"unpackedSize":1371668},"main":"dist/index.js","name":"@0gfoundation/0g-agenticid-sdk","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./seal":{"types":"./dist/seal.d.ts","default":"./dist/seal.js"}},"gitHead":"40194fe11e06648126f0012393ac34d91d8ef9de","license":"MIT","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc","clean":"rm -rf dist","test:kav":"npm run build && node scripts/serveproof-kav.cjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"version":"0.1.6","_npmUser":{"name":"wilbertwu","email":"wei@0g.ai"},"homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"10.8.2","description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","directories":{},"maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"_nodeVersion":"20.20.2","dependencies":{"viem":"^2.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/0g-agenticid-sdk_0.1.6_1789556856305_0.6523455652050749"}}},"time":{"created":"2026-08-11T09:31:15.620Z","modified":"2026-09-16T11:07:36.585Z","0.1.0":"2026-08-11T09:31:16.049Z","0.1.1":"2026-08-11T10:42:13.671Z","0.1.2":"2026-08-14T05:47:15.148Z","0.1.3":"2026-09-07T10:13:40.875Z","0.1.4":"2026-09-10T07:21:31.474Z","0.1.5":"2026-09-14T12:13:45.987Z","0.1.6":"2026-09-16T11:07:36.403Z"},"bugs":{"url":"https://github.com/0gfoundation/0g-agentic-id/issues"},"license":"MIT","homepage":"https://github.com/0gfoundation/0g-agentic-id/tree/main/sdk/typescript#readme","keywords":["0g","agenticid","agent","identity","tee","blockchain","ethereum","viem"],"repository":{"url":"git+https://github.com/0gfoundation/0g-agentic-id.git","type":"git","directory":"sdk/typescript"},"description":"TypeScript SDK for the 0G AgenticID protocol — register, manage, and interact with on-chain AI agent identities","maintainers":[{"name":"overi","email":"ibrahim.over@0g.ai"},{"name":"0g-jiahao","email":"jiahao@0g.ai"},{"name":"0g-will","email":"will.riches@0g.ai"},{"name":"0g-xie","email":"xie@0g.ai"},{"name":"ymh357","email":"minghao.yu@0g.ai"},{"name":"wilbertwu","email":"wei@0g.ai"},{"name":"0g-peterzhang","email":"peter@0g.ai"}],"readme":"# @0gfoundation/0g-agenticid-sdk\n\n[![npm](https://img.shields.io/npm/v/@0gfoundation/0g-agenticid-sdk.svg)](https://www.npmjs.com/package/@0gfoundation/0g-agenticid-sdk) [![license: MIT](https://img.shields.io/npm/l/@0gfoundation/0g-agenticid-sdk.svg)](./LICENSE)\n\nTypeScript SDK for **0G AgenticID** — deploy, call, and build on-chain reputation for autonomous AI agents. Built on [viem](https://viem.sh).\n\n```bash\nnpm install @0gfoundation/0g-agenticid-sdk viem\n```\n\n**What do you want to do?**\n\n- **Deploy & run your own agent** → [Quickstart](#quickstart)\n- **Call another agent, leave reputation** → [`ag.reputation`](#agreputation--serve-proof--feedback)\n- **Independently verify a serve-proof** → [serve-proof primitives](./GUIDE.md#advanced) (in the guide)\n\n> This README is the **interface reference** — signatures and shapes. The **[Guide](./GUIDE.md)** explains the reasoning behind each call; the [repo](https://github.com/0gfoundation/0g-agentic-id) has protocol docs + source.\n\n## The API at a glance\n\nOne entry point, two namespaces + top-level ops.\n\n| Surface | What |\n|---|---|\n| `ag.agent` | agent lifecycle (deploy / clone / transfer), reads (owner, agentSeal, iData…), agent-seal gas top-up |\n| `ag.reputation` | capture a TEE-signed serve-proof, verify it, submit/read on-chain feedback |\n| `ag.ack()` / `ag.ackStatus()` | acknowledge the TEE trust-root component set (attestor + kms + sandbox-provider) |\n| `ag.deposit()` / `ag.getBalance()` | fund / read the prepaid sandbox balance (pay-as-you-go runtime) |\n| `ag.getBalanceDetail()` / `ag.requestRefund()` / `ag.withdrawRefund()` | full 3-value account view; withdraw prepaid funds (time-locked two-step) |\n\nBackends (AgenticID / the canonical ERC-8004 ReputationRegistry + VerifiedFeedbackRegistry / TappRegistry / SandboxServing contracts + the attestor's HTTP endpoints) are hidden behind the facade — you don't decide which call is on-chain and which is HTTP.\n\n## Quickstart\n\n```ts\nimport { AgenticID } from '@0gfoundation/0g-agenticid-sdk';\n\nconst ag = await AgenticID.fromAttestor('https://agenticid.0g.ai', {\n  account: process.env.PRIVATE_KEY as `0x${string}`,   // omit for read-only\n});\n```\n\n`fromAttestor` reads the attestor's `GET /config` and fills all contract addresses, RPC, and appIds — the URL alone pins the environment (0G AgenticID is ERC-8004 identity + reputation, plus ERC-7857 sealed intelligent data). Manual construction (`new AgenticID({ addresses, … })`), `overrides`, custom `walletClient`, and the full config shape are covered in the [setup guide](./GUIDE.md#setup).\n\n**What you pass grows with what you do:**\n\n| You want to… | Pass |\n|---|---|\n| read the chain (owner, balance, agent data) | `addresses` only (RPC has a built-in default) |\n| write to the chain (deploy, transfer, feedback) | `+ account` |\n| manage containers / see deploy status | `+ attestorUrl` |\n\nBindings used in the snippets below:\n\n```ts\nconst agentId = 33n;          // ERC-7857 tokenId (ERC-721-compatible)\nconst owner = '0xAaAa...';    // the address that owns the agent\nconst buyer = '0xBbBb...';    // the address leaving feedback (attribution is msg.sender)\n```\n\n## `ag.agent` — lifecycle + reads\n\n> `iData` is the encrypted content minted for an agent (persona, framework binding). `deploy` assembles it from `name`/`description`/`inference` via `defaultIData()`; pass your own `iData` for full control ([details in the guide](./GUIDE.md#the-runtime-image-framework-and-idata-shapes)).\n\n```ts\nimport { parseEther } from 'viem';\n\n// deploy — signs the deploy + sandbox-create envelopes, POSTs them to the attestor\nconst params = {\n  name: 'Sage',\n  description: 'a helpful agent',\n  framework: 'openclaw',                                 // a name from GET /config's frameworks[]; SDK resolves its sealed image\n  inference: { provider: '0g-compute', model: 'claude-sonnet-5' },   // optional (see listModels())\n  sandbox: { apiKey: process.env.AGENT_API_KEY },        // sealedImage optional — pass only to pin a specific image\n};\n\n// deploy/clone are ASYNC (submit → mint → provision). `wait` picks how far to block:\n//   omit → accepted · 'minted' → +agentId · 'running' → +url\nconst { sealId, agentSealAddr, agentId } = await ag.agent.deploy(params, { wait: 'minted' });\nconst { url } = await ag.agent.deploy(params, { wait: 'running' });\nawait ag.agent.deploy({ ...params, sandbox: undefined }, { wait: 'minted' });   // mint-only, no container\n\n// or fire-and-forget:\nconst dep = await ag.agent.deploy(params);              // → { sealId, agentSealAddr }\nconst id  = await ag.agent.waitForMint(dep.sealId);     // → 34n; throws on phase=failed or timeout\n\n// clone — source owner mints a copy for another owner (attestor re-keys the sealed data)\nconst cl = await ag.agent.clone({ sourceAgentId: agentId, targetOwner: newOwner }, { wait: 'minted' });\n// → { sealId, agentSealAddr, agentId }\n\n// clone, contract mode (issue #133 marketplace fork) — the BUYER (connected\n// wallet == targetOwner) signs an intent binding the policy context, and the\n// source owner's on-chain ICloneAuthorizer decides:\nconst fork = await ag.agent.clone(\n  { sourceAgentId, targetOwner: buyer, authorization: { authData: purchaseReceipt } },\n  { wait: 'minted' },\n);\n// authorization.authorizer is optional — read live via cloneAuthorizerOf when\n// omitted. See the GUIDE's marketplace-fork walkthrough.\n\n// transfer — ERC-7857 (old container reaped async by the indexer; don't gate on phase right after)\nawait ag.agent.transferFrom(owner, newOwner, agentId);       // → \"0x…\"\nawait ag.agent.safeTransferFrom(owner, newOwner, agentId);   // → \"0x…\"\n\n// reads\nawait ag.agent.ownerOf(agentId);            // → \"0x…\"\nawait ag.agent.getAgentSeal(agentId);       // → \"0x…\"   the agent's on-chain signing key (address)\nawait ag.agent.getSealId(agentId);          // → \"0x…\"   bytes32 seal id (== deploy's sealId)\nawait ag.agent.getAgentIdBySealId(sealId);  // → 33n     reverse lookup\nawait ag.agent.isSealIdBound(sealId);       // → true\nawait ag.agent.intelligentDatasOf(agentId); // → [{ dataDescription /* JSON string */, dataHash }, …]\nawait ag.agent.sealedKeysOf(agentId);       // → [\"0x04…\", …]   one sealed key per iData entry\nawait ag.agent.balanceOf(owner);            // → 5n      agents owned by `owner`\n\n// agent-seal gas — the agent's own on-chain-write budget\nawait ag.agent.topUpAgentSeal(await ag.agent.getAgentSeal(agentId), parseEther('0.01'));   // → \"0x…\"\n\n// runtime lifecycle (owner-signed; on-chain identity preserved)\nawait ag.agent.stop(sealId, sandboxId);\nawait ag.agent.start(sealId, sandboxId);      // resume a STOPPED container\nawait ag.agent.start(sealId, { apiKey });     // FIRST provision of a mint-only agent\nawait ag.agent.reset(sealId, { framework, apiKey });   // recreate an EXISTING container\nawait ag.agent.retry(sealId, { apiKey });     // resume a 'failed' deploy (do NOT redeploy — that orphans the mint)\nawait ag.agent.listDeployments();             // public listing; owner/sandboxId/lastProvisionError come back null\nawait ag.agent.listMyDeployments();           // owner-signed; full detail\n// row → { agentId, sealId, phase, sandboxId, url, owner, name, createdAt, lastProvisionError }\n// phase: 'deploying' | 'running' | 'stopped' | 'offline' | 'failed'\n```\n\nThe [lifecycle guide](./GUIDE.md#agagent--lifecycle--reads) covers async phases, transfer teardown, mint-only vs first-provision, `apiKey` handling, and failure reasons.\n\n**Three IDs, same agent:**\n\n| Identifier | What it is | Used by |\n|---|---|---|\n| `agentId` (bigint) | ERC-7857 tokenId (ERC-721-compatible) | reads, transfer, clone, runtimeCosts |\n| `sealId` (bytes32) | seal-binding hash; the attestor's deployment key | stop/start/reset/retry, waitForMint |\n| `agentSeal` (address) | the agent's own wallet | topUpAgentSeal, serve-proof signer checks |\n\nConvert freely: `getSealId` / `getAgentIdBySealId` / `getAgentSeal`.\n\n## `ag.reputation` — serve-proof + feedback\n\nThe sealed proxy stamps `X-Agent-Proof` on the agent's **`/api/*` services** (its outward, attributable surface) — not on the owner↔agent chat/UI routes (signing an owner-authenticated channel would be self-dealt reputation). `capture` reads that header; on-chain attribution stays `msg.sender`, and each proof is bound to a single `submitter` (the only address allowed to redeem it). Feedback is **stored in the official canonical ERC-8004 Reputation Registry** (every 8004 reader sees it natively); the local VerifiedFeedbackRegistry records which entries were proof-backed — `giveFeedback` bundles the two calls. The [reputation guide](./GUIDE.md#agreputation--serve-proof--feedback) explains why.\n\n```ts\nimport { keccak256, toBytes } from 'viem';\n\n// 1. call one of the agent's signed /api/* services and capture the proof (public handle needs no wallet)\nconst agent = await ag.agent.connect(agentId);\nconst { response, proof } = await agent.fetchWithProof('/api/summarize', {\n  method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ q: 'hi' }),\n});\n// proof → { agentId, submitter, timestamp, deadline, taskHash, dataHashes, frameworkHash, signature } | null\n// low-level escape hatch: ag.reputation.capture(() => fetch(…))\n\n// 2. verify before spending gas\nawait ag.reputation.verifyProof(proof);\n// → { ok, signerMatches, notExpired, dataOnChain, reasons }\n\n// 3. submit feedback — canonical 8004 write (attribution = msg.sender) + TEE\n//    verification mark, bundled. On 7702-enabled environments (a feedbackBatcher\n//    is advertised) both land in ONE atomic type-4 tx; otherwise two sequential\n//    txs. An owner CANNOT attest feedback on their own agent (the verified\n//    registry rejects it).\nconst fb = await ag.reputation.giveFeedback({ agentId, value: 5n, serveProof: proof });\n// → { feedbackTx (mined), attestTx (pending — wait it), feedbackIndex }\nawait ag.reputation.waitForTransaction(fb.attestTx);\n// optional params: valueDecimals / tag1 / tag2 / endpoint / feedbackURI / feedbackHash\n// escape hatch: attestFeedback(agentId, idx, proof) marks an entry submitted separately\n\n// canonical reads (raw 8004 feedback — permissionless, verified or not)\nawait ag.reputation.getLastIndex(agentId, buyer);          // → 2n\nawait ag.reputation.readFeedback(agentId, buyer, idx);     // → { value, valueDecimals, tag1, tag2, isRevoked }\nawait ag.reputation.getSummary({ agentId });               // → { count, summaryValue, summaryValueDecimals }\nawait ag.reputation.readAllFeedback({ agentId });          // filters: clientAddresses / tags / includeRevoked\nawait ag.reputation.getClients(agentId);                   // → [\"0x…\", …]\nawait ag.reputation.getResponseCount(agentId, buyer, idx, [owner]);   // → 1n\n\n// verified reads (TEE marks — intersect these with the canonical entries)\nawait ag.reputation.isVerified(agentId, buyer, idx);       // → true\nawait ag.reputation.getVerifiedSummary({ agentId });       // proof-backed entries only\nawait ag.reputation.getVerifiedClients(agentId);           // clients with ≥1 verified entry\nawait ag.reputation.getVerifiedIndexes(agentId, buyer);    // → [1n, …]\nawait ag.reputation.getServeData(agentId, buyer, idx);     // → { dataHashes, frameworkHash }\n// task-receipt opening: pass `task` (method/uri/body hashes/status of the rated\n// interaction) to giveFeedback and the contract verifies it against the proof's\n// taskHash, recording the URI as the entry's TEE-verified endpoint:\nawait ag.reputation.getVerifiedEndpoint(agentId, buyer, idx);            // → \"/hello\" (\"\" if unrevealed)\nawait ag.reputation.getVerifiedSummaryForEndpoint(agentId, '/hello');    // per-interface verified aggregate\n\n// owner responds to an entry; the client who left it can revoke\nawait ag.reputation.appendResponse({ agentId, clientAddress: buyer, feedbackIndex: idx, responseURI: 'ipfs://…', responseHash: keccak256(toBytes('thanks')) });\nawait ag.reputation.revokeFeedback(agentId, idx);          // → \"0x…\"\n```\n\n## Top-level ops\n\nTwo distinct balances: **`ag.deposit()`** funds the prepaid sandbox balance (compute runtime, pay-as-you-go), **`ag.agent.topUpAgentSeal()`** funds the agentSeal's own gas (the agent's on-chain activity). The [top-level-ops guide](./GUIDE.md#top-level-ops-not-scoped-to-one-agent) explains both in full.\n\n```ts\nimport { parseEther } from 'viem';\n\n// trust-root acknowledgment (TappRegistry — spans attestor + kms + sandbox-provider)\nawait ag.ackStatus(owner);   // → { allAcked, missing }\nawait ag.components(owner);  // → per-component detail\nconst ackTx = await ag.ack();   // → \"0x…\", or null if nothing was missing\nif (ackTx) await ag.waitForTransaction(ackTx);\n\n// prepaid sandbox balance (SandboxServing)\nawait ag.getBalance();                                  // → wei\nconst depositTx = await ag.deposit({ amountWei: parseEther('0.5') });\nawait ag.waitForTransaction(depositTx);\n```\n\n`deploy()`/`clone()` **preflight** both prerequisites (all components acked + balance ≥ 0.1 OG). Bare writes (`ack`/`deposit`/`topUpAgentSeal`) return before mining — `await ag.waitForTransaction(tx)` before reading state back; `giveFeedback` mines the canonical write internally and returns a pending `attestTx` to wait on (more in the [guide](./GUIDE.md#top-level-ops-not-scoped-to-one-agent)).\n\n## iData & framework\n\nYou don't pass a sealed image — the SDK resolves it from your `framework` via `GET /config`'s `frameworks[]` (each `{ name, image? }`). `iData` is an array of `{ role, plaintext, extra }`; `deploy` builds a `framework` + `persona` entry by default. The [iData guide](./GUIDE.md#the-runtime-image-framework-and-idata-shapes) has the shapes and rules (WYSIWYS, persona is a one-shot seed, what the attestor validates).\n\n```ts\nawait ag.agent.listModels();   // → ['claude-opus-4-8', …]   the 0G router's live catalog\n```\n\n## Cost\n\n```ts\nawait ag.agent.estimateCosts();          // pricing + cost/min (+ your balance/runway if account set)\nawait ag.agent.runtimeCosts(agentId);    // + that agent's evolution-gas balance\n// → { prepaidBalanceWei, sealGasWei,\n//     pricing: { pricePerCPUPerMin, pricePerMemGBPerMin, createFee },\n//     costPerMinWei, estimatedRunwayMinutes }\n// Pass { cpu, memGb } if the container spec differs.\n```\n\n## Interacting with a running agent\n\n`ag.agent.client(agentId)` resolves the URL on chain — one handle for every caller; owner ops (`chat`/`chatStream`/`logs`) are present only when `ag` holds the owner key.\n\n```ts\nconst { hello, verification } = await ag.agent.sayHi(agentUrl);\n// hello → { agent, owner, public_url, message, services, routes }\n//   services: { path, method, description?, input_example? }   — proof-signed /api/* endpoints\n//   routes:   { prefix, kind?, auth?, signed, description? }    — framework prefixes (e.g. chat at /v1/)\n\nconst agent = await ag.agent.client(agentId);   // agentId OR agentUrl — the SDK fills in the other half\nagent.routes; agent.services;\n\nif (agent.chat) {          // present only with an owner key + a declared chat route\n  const { choices } = await agent.chat([{ role: 'user', content: 'hi' }], { model: 'openclaw' });\n}\nif (agent.chatStream) {    // streaming variant — yields content deltas\n  for await (const delta of agent.chatStream(msgs, { model: 'openclaw' })) process.stdout.write(delta);\n}\nconst r = await agent.fetch('/v1/models');                            // attaches the bearer if the route asks\nconst { response, proof } = await agent.fetchWithProof('/api/summarize', { method: 'POST', body });\nif (agent.logs) await agent.logs({ tail: 200 });                      // owner-only: the agent's own process log\n\n// Long tasks: when /hello declares a kind \"responses\" route, chat/chatStream\n// already ride it — the turn is owned by a server-side task id, survives\n// dropped connections (auto-resume by sequence number), and can be\n// re-attached or stopped by id:\nlet taskId = '';\nfor await (const d of agent.chatStream!(msgs, { onTask: (id) => (taskId = id) })) process.stdout.write(d);\nawait agent.task!(taskId);                        // poll {status, output_text}\nfor await (const d of agent.followTask!(taskId)) process.stdout.write(d);  // re-attach: replay + live\nawait agent.cancelTask!(taskId);                  // stop the turn\n\n// opinionated shortcuts over client():\nconst auth = await ag.agent.authenticate(agentId);   // mints the owner token up front (needs a wallet)\nconst pub  = await ag.agent.connect(agentId);        // explicit PUBLIC handle (never attaches a token)\n```\n\n`model` is the framework's own selector, not an LLM name (the LLM is fixed at deploy) — openclaw wants `\"openclaw\"`. The [interaction guide](./GUIDE.md#interacting-with-a-running-agent-no-console-needed) covers capability signalling, openclaw's token lifecycle, and the failure/`retry` flow.\n\n## More\n\n- **[Agents as owners (nested agents)](./GUIDE.md#agents-as-owners-nested-agents)** — an in-container agent runs this SDK as itself over the sign socket (`sealAccount()`), never holding a raw key.\n- **[Addresses](./GUIDE.md#addresses)** — a deployment artifact, not baked into the SDK; `fromAttestor` fills them. Exported constants: `ZERO_G_TESTNET` / `ZERO_G_MAINNET` / `RPC_URL` / `CHAIN_ID` / `RECEIPT_WAIT`.\n- **[Advanced](./GUIDE.md#advanced)** — raw ABIs + serve-proof primitives (`buildServeProofMessageHash`, `signServeProof`, `verifyServeProofSignature`) and the canonical digest spec.\n- **[CLI](./GUIDE.md#cli-0g-agenticid)** `npx 0g-agenticid` — interactive shell (deploy/use agents, chat with Esc-interruptible turns); `doctor` / `status <agent>` / `list` subcommands with `--json` for scripts.\n\n## Notes\n\n- **Serve-proof binding** — attribution is `msg.sender` at submission; each proof also names a `submitter` (the redeemer). Treat proofs as sensitive regardless of transport.\n- **0G receipt timing** — `waitForTransaction` is tuned for 0G (120s + retries); if it times out the tx likely still landed — confirm by reading state.\n- **On-chain types** — `value`/`summaryValue` are `int128`, `feedbackIndex` is `uint64` (all bigint).\n","readmeFilename":"README.md"}