{"_id":"@zkproofport-ai/sdk","_rev":"26-17bc55a4b3510d8d48859b5c33ef5e13","name":"@zkproofport-ai/sdk","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@zkproofport-ai/sdk","version":"0.1.0","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.0","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"23db6fae651782beaeb428127388869200c92c7d","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.0.tgz","fileCount":58,"integrity":"sha512-aKEK8Q3FfWt+19WESB7OqsY6SpIwCmjeRL2Qr44cB9aveVWJAJ8XIhnHgtWDbcATqEpeWoBmdR/FplDrUq9kYQ==","signatures":[{"sig":"MEQCIClxIYjt5RJdil3J91V6vQgAcuZVSWAXy+7agIompMG/AiBwXPts3wssfhsS+ENhEIuF3b1GVExEzRi3sPNi4ZzI+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118357},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4039a96408e1384fdc4a5c30a2850216a7326a98","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1772702198520_0.5788291585275658","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@zkproofport-ai/sdk","version":"0.1.1","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.1","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"1fba75a57c4e9f55a105f596d4fd4044ac3e322f","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.1.tgz","fileCount":66,"integrity":"sha512-Qh1uwkSNauDJZC3r9/tRQefhnMk6ot/vIevPo/zFdDPzdIJprwGcSn+OsgtbIClKD5mh5doe9XjFzJJSJFeguA==","signatures":[{"sig":"MEQCIFZDdc2DUB4+RPg8XxsQNObzjJEzvqoiXIyEydaazFrsAiALgO67JEcQ4otSxjtufR55I9Jrd3P9Mc87JGUJpn4wSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140851},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"831115c5a91d34ca069333be1f8ab74adc51a4d1","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.1_1772717923108_0.8284839400380941","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@zkproofport-ai/sdk","version":"0.1.2","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.2","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"c03018ceb5c24a6f54cc66e44c5565ca1e70c38c","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.2.tgz","fileCount":66,"integrity":"sha512-1al8FO4dqqMi01KckEJ16OGb4tCp+Fqvl8mbzczVyu4gqg7wa4z/w6L5OrLBYVc3vjoHX5piwIgPaSx+vfcwSw==","signatures":[{"sig":"MEQCIBjGKmi4uAhn704V0dD1LMYdVrxfEUA6QWnfr8+b8jzuAiBM0ShsPJ+s46psrR9L8PiWBu5V0sINyXe3lNXzajnLfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147434},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6f92cc20ae781cd8ca8a80669ba6c28c12412cb5","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.2_1773125926464_0.569779735809401","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@zkproofport-ai/sdk","version":"0.1.3","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.3","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"3451ca0aef5eeb6fbd670ed31153a328c8f7c196","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.3.tgz","fileCount":70,"integrity":"sha512-YhkIaUmdRNCfxB6bJE3nH0rz4obXbMYey6zIetD2HUT6zXj0vO6fIZuooWQkYR8KauXe022XuQMNQp+N90lA1Q==","signatures":[{"sig":"MEYCIQC93k821WCR76QW3lj9M2qvS9V2u4WXNclsr2FFCzZBzgIhANqJbsv1fo4FFVWilrT1Ev5/DU7D6oece4tZ9AtEOLXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181394},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"471b7b472f4785a8a15ace013676aedc098d140f","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.3_1773655328835_0.8939744263410803","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@zkproofport-ai/sdk","version":"0.1.4","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.4","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"752379f4de1ec8c50afeb068a8c956fd21d61653","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.4.tgz","fileCount":70,"integrity":"sha512-wqfaJps/+c+mt/YIB+oAj6woJo7IpRxgtOT1GPvpKgEcwT2Mhbm0W6zzD0S9JfZcbCIUBbJci9bJHwF/YJpf2A==","signatures":[{"sig":"MEQCIC4OZ36ctZl/pJYgRaiuLJRrTeWgkPCr7s83mG/dmFzIAiAY11DsJht/YmVCodLOoRBJuDDi6dRycH2T2KjJUCX2+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183010},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bc6263d828d201eea5fb3118aae195875cc910da","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.4_1773662379091_0.4803785226351549","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@zkproofport-ai/sdk","version":"0.1.5","license":"MIT","_id":"@zkproofport-ai/sdk@0.1.5","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"560c872cc6290ebc989784073bd6709b1571ef33","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.1.5.tgz","fileCount":66,"integrity":"sha512-hTJV9v5ckB8DwPO0aDV0wVyExOd7TSBz3epw4Fua978YaTJSuI+7FXDcsadAPQnGjYp0ydpGMlkrVTWucr/8Xw==","signatures":[{"sig":"MEUCIQCG8ZTwEbxrnTKWnRB05YBxxAkYDtYI7iCe/pfC36HmfwIgCJAi0MmC5Md9CM9z/fVuAzPZrmc0pQjZNp33r6vQgBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166112},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"30c2113564e175f56f025d9c9a96a29cc45762f9","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.5_1773676973550_0.13594605161789142","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@zkproofport-ai/sdk","version":"0.2.0","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.0","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"80384f203925f6fcf184fefed5cfc8e7d5d66256","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.0.tgz","fileCount":66,"integrity":"sha512-7oZGz7xJWjTizSr0axguqX1Cv/6n9dflL/pb51h4XfZtCYkCn1E+TP8ai6h+57wuCywYj9RBH9VFVLI3zivk0w==","signatures":[{"sig":"MEUCIQDeYSk2POSRUOaWIb9W4z8MdJx0PZXDRupMt5AHLdZJ3AIgIE1I23R5D8DXV6qDetc71yT0KmOOUPDyJnIaX6ySl2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167933},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3f2942b3a82bc14b935e282fb1d91c4e39d6e683","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1773924159787_0.29876467562873255","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@zkproofport-ai/sdk","version":"0.2.1","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.1","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"7ac8320f4e847a25eb63dab49b388820f66b1d56","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.1.tgz","fileCount":66,"integrity":"sha512-NLTaBQ+AR8Tz853Eu3rLnnccMXtYje1QnOMnl0LHZ21VMChQOteAg69N2ILjCQTMCF8LQ47cB7aEVniNMgRihA==","signatures":[{"sig":"MEQCIF61+UZyp3CS26NhfIU24/XoldUJBie16KW3uyL29LUwAiBccWeaQd/o4onwEq0k7odaygniGskXyddPyH5LNjAtPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172294},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a335d135463b139e187579c27c63c05d1b67c7fc","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1773927387728_0.37824521400786826","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@zkproofport-ai/sdk","version":"0.2.2","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.2","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"8eb13a926f3fd01e88d09d0c45dba0b2eca8a40b","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.2.tgz","fileCount":70,"integrity":"sha512-pq3Hn8itDh/g2FDkMzE47fzJSWaGn6GMubt0dvN09bkLYp3Z+ppL/RdCii5X+coVlA3sM0EcWsWTHlnuo3M4Ow==","signatures":[{"sig":"MEUCIQCrJXu1csG3BeWZMJKXekhJyeHHeCFFoSq+dfoa+povZgIgQamNt2P1aOLlLibEuM+gR1cGqQHj8Q0anaVtJlQjhUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180831},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"cc7003e876d7d5d6c5409c3a7d3da56bfd098ee8","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.2_1774343044758_0.9937240113488628","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@zkproofport-ai/sdk","version":"0.2.3","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.3","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"533450fb55f98f09a5bf515469de24dc7945b4b3","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.3.tgz","fileCount":70,"integrity":"sha512-JGdNsgZY7PY+CtyF9qBrakeYJv81Ndfk54c1zPcXkAcvf+9YbIyeFqQJseBxt7nCer59ISAa3aGlDS6lQqmOSQ==","signatures":[{"sig":"MEQCIDUG2Z35QfzrncA6jJRH3Ug7BtviGalYqWDlcf1Hn0cOAiAOOcVPUhrCI9ySXK2gIWoR0fDWdSiIsfO6G9mTzlgxPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184856},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"78fab098ba63643d921879a57bb616680795ae52","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.3_1774360636683_0.4182937719801616","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@zkproofport-ai/sdk","version":"0.2.4","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.4","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"517b8f3ff313efaccef51878fc87210e32cfb61d","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.4.tgz","fileCount":70,"integrity":"sha512-FLo0likmRqmFWlGyywqzV4NnU+42tW9BsCpVhP/4HBUwJGUq6XkiUqq//N/97wM/jwXWrE7MvOnU+54EHuqShA==","signatures":[{"sig":"MEQCIAOrcLsYWm5hE9Vj/V7PmT6V/HNuXe0odQJQineN5QJmAiBg0u+H3f/WZMlhxQ6AAMRLlubgf0NHgiq1Vv010VRswQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184856},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ba556f821a1cea1406d3ca73591c37ad96a29b86","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.4_1774362675920_0.7694792419117067","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@zkproofport-ai/sdk","version":"0.2.5","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.5","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"6485eedd2fd2706e7a37b10f9d498e0b8ced6c9c","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.5.tgz","fileCount":70,"integrity":"sha512-0GAfvt2ndPiyvL55u7dBo2FqqahIu8B1zfl9uyvV86zt0RgkzFjqDpi9+474dWDuYafoNKDOMQHcvZqrnoExiA==","signatures":[{"sig":"MEUCIQDmOTtjP2l1x2/+mbcUEvAqoDnmKl4dSDwupJkqfMIK8AIgMLnCSvtsmWybxHX88XbyJtFjbxHHdUgm7bqhEZBLNX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184856},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"922bdb7a859e4e274118e11c0d2cc1a99a6af4e9","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.5_1774364929798_0.11001897281594486","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@zkproofport-ai/sdk","version":"0.2.6","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.6","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"91b0a323ffa9b04ef871233dc27761f3d0dc6381","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.6.tgz","fileCount":70,"integrity":"sha512-uXs6dVQfVDLYve681jpohQNdp/jsAafgcr8VMAr7cOzkULSiwstl6gIv1Tx9WtxyZ2dLyFPnDVacYZS3R97LmA==","signatures":[{"sig":"MEUCIEV1L5yJKJscA1taMdG+aOtEbmL2Ptbhn8g3tcQi/CtVAiEAyQ8l42BQqMb6bA23rSXOKmPXeB/sB3+glZ2sEmdfhmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178121},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3d315183c8708d762562d2d4d2a6ba48b8c47eea","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.6_1775139958634_0.5222964193158579","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@zkproofport-ai/sdk","version":"0.2.7","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.7","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"12fb773533adb3a633cf2057b72d7b5cc511e607","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.7.tgz","fileCount":62,"integrity":"sha512-JzI4EWo4m1cvuHjzirbEDHLKJPl4AHcQ5r0Nu/WmU0oP6Pu/MAbrZTnu7kxOG99f8V0dxC9ZgLqUYM5paCtC0g==","signatures":[{"sig":"MEUCIQCtHeI1i2oyTf9Y8ih4hsGvy2wpCbg0il9Xt8gpdTFohQIgTB8iYRMNnxo9syyXCiUnV+tc1Ws4lzchsVhH8STIWag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151835},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ee1c09d23ac691f12f639ba5e9da9b44ebf52eb5","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.7_1775148817463_0.8714419320028024","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@zkproofport-ai/sdk","version":"0.2.8","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.8","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"f52eeb84a3faa144c83e2c6121b72e2970caab3a","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.8.tgz","fileCount":62,"integrity":"sha512-cHc7SxuoKVP4tC6sVVr2wh4g+CmaXMwxch92ziZfFTNiQRlVYk2tvQqkSMZ+05L8ZYdpAYHWg1FxSGxiZYtlqA==","signatures":[{"sig":"MEYCIQD86Qvr6jKNWoKp1uo7hnf7+lA1Ndz8bpCWoexGNiPsywIhAJP4s77x/B/vq+medXSNA3eK3hQkCxpZG+5mkkOfYq4u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152570},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"238af5a89b93989c4687ab23a01d13f26e357c58","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.8_1775150450729_0.17614583348731716","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@zkproofport-ai/sdk","version":"0.2.9","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.9","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"81429f8938477677577b9bdbdbb08afcef0a6818","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.9.tgz","fileCount":62,"integrity":"sha512-u1C5DtNlilNtmNtv4WavElN9onFiwBppUr2boywPdgqhXdrZGctPXQ6YGA1izSLUCVBLGDq2/av/xgGwromk4A==","signatures":[{"sig":"MEQCID1EPwHuXpdEqfdpB2RwH+TKvyvxnyrS3yGSMh9ZMKtnAiBwYY8F6RWjJjL+5+0+XcpdzkRPDfLtyA0xt5qqnlX7fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152570},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bbc9cb707490e839dd1b82352b6792fe047647ae","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.9_1775201596073_0.7727146312800348","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@zkproofport-ai/sdk","version":"0.2.10","license":"MIT","_id":"@zkproofport-ai/sdk@0.2.10","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"70a0c2c035027a2397358a6708b52e1946efe117","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.10.tgz","fileCount":62,"integrity":"sha512-sgnjAKQsl9xOfKKPryVkOPIFXy4IKNxPTDpfHilwGhLM5F+/UgmgAkvniz86sHzZbgkJzKaxweGyEe5EYxU2Ww==","signatures":[{"sig":"MEUCID94dtbk5HGDeZnGw+kT8zoyfjzHnd7vvao1PZiPBGjsAiEAmE8u0cjiBPc68phBh6bTOOjapD83rfCsrNJz+vzWFeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152909},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ef8d551cbaa78b0183bf7fc727dbb176e77d4320","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.8.2","description":"Client SDK for ZKProofport proof generation","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ethers":"^6.13.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.10_1775209835129_0.8453489512690469","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@zkproofport-ai/sdk","version":"0.2.11","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.11","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"1d29fee1aec4534a1d50e978d648e95a50794dc1","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.11.tgz","fileCount":98,"integrity":"sha512-IyDjF8YPxJlZ3h1OJk0zy/L4w+19FPxX8KA9zNHW2EnXb8caD+V+2alUS2D8/g27y06SGjxGaE/kZYlT+RpATQ==","signatures":[{"sig":"MEUCIQDNP+G6UJSrIIYVf1pbZGzsZzVTkjuVT+lgIzbkDSYw/AIgKsZvEjBTGJv8S8soxVyiMghRIBQZlc+iEXUFq4A5Wd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAqD8MHQ4ZI88jpJM/FAS9Y778pHUIp4WiRufXbNEo4jAiB548ukGS8bA8R+unWhhFme9+eqkostGEQVjSfrNf0t1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":312397},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"34d7a751b7ed8aa24da73b693705f0bba16762db","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for AI agents to generate zero-knowledge proofs of identity (Coinbase KYC, Country, Google OIDC, Workspace, MS 365) via ZKProofport. x402 USDC payments on Base, ERC-8004 agent identity. Privacy-preserving authentication for autonomous agent","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.11_1789285274767_0.9525637494840635","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@zkproofport-ai/sdk","version":"0.2.12","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.12","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"f45c9525ceb28712010237ca41d8d4a5b4dea7df","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.12.tgz","fileCount":102,"integrity":"sha512-WKWjEF/l4+V9gMdAVqjEuRe2gpGeVRcMr4WJHl7+lnHSPBtX5nOc8A/kSCcD5C1eJuzJM6YfR3n9+oboJVsDJw==","signatures":[{"sig":"MEYCIQD8Uu1XHhIn0aFErkTzTBn4uTr9mOZkl74R0OW0Z1xbVQIhALwSFnE/Gl8jeY/JdRb1Nu1jAuus1YUzjmzk73o9HCe2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDRAI1fUVGTgTtxNpO9Zj40xWacC250D09O3jLzPa3cqAiEA2qL3uAPKO11zrEX23pbSbu31sy1NZRUjXGyS+VH4QBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326580},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a0c2e37df3521aa9b58fe5caf02a01d63a07766b","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport identity proofs and experimental Arc Testnet EIP-712 action authorization. Circle Agent Wallet payments, Circle Gateway nanopayments and x402 USDC; Coinbase KYC, country and OIDC proofs.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.12_1789291161577_0.6594063910358503","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@zkproofport-ai/sdk","version":"0.2.13","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.13","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"3149fac97b3fe131ade552a49d7b608561d3f69d","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.13.tgz","fileCount":102,"integrity":"sha512-dmgE7ddLKwNnjTl/W7702eDvubtdfZElPYrU4MEH0zbK3c/EIlQm2P0T6SAK+G+dYI5CPUkVmtmkdGLjylIFpw==","signatures":[{"sig":"MEUCIQC+ohrMC5J2UQSZIQ4Lw58VeDapYfM+LRHufIw49BFeogIgH5HKRufc+YwCniR8L5hciKbIRNG0ThFKgddfzUDKe84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHGj7/Oa12v87bECkRW4eiPd2ARj5JtyzKZBdoXgbMC3AiAE8ePDGZ+bP0zCaD31iJVVtgIsshApPnvvU0GybtJ61g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330257},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"003231e5c6c7e83e99486d4ede2ca1f7e2efbd20","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport identity proofs and experimental Arc Testnet EIP-712 action authorization. Circle Agent Wallet payments, Circle Gateway nanopayments and x402 USDC; Coinbase KYC, country and OIDC proofs.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.13_1790044246125_0.93556733096987","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@zkproofport-ai/sdk","version":"0.2.14","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.14","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"03ad3edf55e0248b48f731f0ab186726a9bfa74e","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.14.tgz","fileCount":102,"integrity":"sha512-MgdK/2u712YFcLDCMMDzpskXQduGl7yc3ZGKF++hYtrecDGzGFtElsRU2+ISulS+KJoTbnKkyk4isVjATJVAjg==","signatures":[{"sig":"MEYCIQDpPr/m0Olpnc/+keSh6oBMBFEKdISimB98tC86QRI6VAIhAO5bb9uAbQodEyjU6z8rOGS/wTuvo14Yoqc+pGHc9Ikq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHIGCOhO/UT9GCLVHXono4++LnETG5b8/kmKu7k7Ml1JAiEA9lq1LouR6iJ02EUVtyIuI8I0FA0lmsZE/vclGVKX2lQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347176},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0be7556784dd33d53f8ded1869e2a582768075d4","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport identity proofs and experimental Arc Testnet EIP-712 action authorization. Circle Agent Wallet payments, Circle Gateway nanopayments and x402 USDC; Coinbase KYC, country and OIDC proofs.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.14_1790050918643_0.1384146186480968","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@zkproofport-ai/sdk","version":"0.2.15","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.15","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"5e5a3264a8f49d6cc3e038f8b9fa76cf677d43b0","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.15.tgz","fileCount":102,"integrity":"sha512-/FF0mZXX6EZX2XAdfvfRUYODBZxJEdxeczDctaAsw7t+KHGoc0uUumIhGNZdl+oynOcqubhuzz80mPHHa8ZKow==","signatures":[{"sig":"MEUCIEnyIbHwiG9ISUlyRfC13aIBTDWzz7p98sy9PbjTPwEpAiEAynt51ixlMX27JK1LajwwM2nY7aQDhhepionhAvIWBK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBbleLZVOCl5k8U2GQ1YIiQVIhY3pLaFMS5F9spvRt/9AiEAtYfS+2rtaejQu1k3ImaAg55AgdYOEkuRhvTNehhzTOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":348844},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8556c7338ad429a9b441064d1dfb747d1b53c2de","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.15_1790056883404_0.9358368551918284","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@zkproofport-ai/sdk","version":"0.2.16","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.16","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"4b277ba2fbe09c18408b48c75fd897748722096b","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.16.tgz","fileCount":102,"integrity":"sha512-+zVDo9vBie8ogSlcgBbe3q2ZK3QQ3IhNq3aGU1XoDwElWKqGQxLrpuOW1h0I29rtvdKAOjb7b1ty/N2cZbdjMA==","signatures":[{"sig":"MEYCIQCSSksbgwyl3IuReEtJd6HMF992op68QA+nPjT5rIHbrAIhAOfdLxINz6o0KUYPFgcYSsR7NXv+xy8Q0wZGKEGJ4DLw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDpCpnyLIWGrLHGUqLIw8Dnb+C3kff2JJ9ePTuPFj1sLgIhAMzYP7Ow28DhLcPYe9p2228C68F6HvrGdSqvv8vzXmZN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":349829},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0782712b438207f09f7d96cee2bffe73b5793ad2","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.16_1790059267186_0.24584563297793438","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@zkproofport-ai/sdk","version":"0.2.17","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"license":"MIT","_id":"@zkproofport-ai/sdk@0.2.17","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"homepage":"https://github.com/zkproofport/proofport-ai#readme","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"53eca2d5bc6b8334494310dd317369ce39c3b927","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.2.17.tgz","fileCount":102,"integrity":"sha512-Qy6NyPPgxni8Oq1G8hP5Oe5vKEZm2k+255MzaRcrSDixefG9bzy2hJ+1pTzx99MBKp0OlUhimdZ2GqZRzvynkQ==","signatures":[{"sig":"MEQCIFNCveQKthYKJSTwT8kFPn8jVr1K/+RZeRQ8PVQxW2IKAiB9rgP5vZaElP0RKxDwcyK3YGBBodr5LLzKxHRk12eOAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJj4+bq/BEmPZSrOHS3HZSwkA/paxBeRYH8aBtOz50JQIgAopvUEN3QbQ8Vr3Sv39otRTxSqnuMLjhNF8rItgKG10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.2.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352297},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"44d183b80435156c57e9f312d67793b90abb4e6a","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.17_1790060747011_0.27218238929682537","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@zkproofport-ai/sdk@0.3.0","bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"dist":{"shasum":"cdff191c67d6c490d8aa040d6af52953a8cf70ba","tarball":"https://registry.npmjs.org/@zkproofport-ai/sdk/-/sdk-0.3.0.tgz","fileCount":106,"integrity":"sha512-WNLcV5LkDY5BqeazB4O87v5XTKqe3CLfcZbqj9yv7peDkdRCWiwnx5McgkKV/AszmkF+ejWo+yLAgN5QS+E17w==","signatures":[{"sig":"MEUCIH/paz1rG/DPseDMA2MVuEZaNdguP4M0WFwKYmxdgahRAiEAnHpiVVBpyK0XyyZCh0xsoOptHiuobrwaMXy5NluEIYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFV+Ml/3YiE+dUB9XM0wFJViyQ7uxZdxHUmRDrRYNaPgAiAcPK+sT5/UVzmyTY+Vp+Sehvg3s3qdW/QiZN9NTg4yHg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@zkproofport-ai%2fsdk@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382379},"main":"dist/index.js","name":"@zkproofport-ai/sdk","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5b63d2d62bc7b8df3170c47b57c02c7465b65978","license":"MIT","scripts":{"build":"tsc","typecheck":"tsc --noEmit"},"version":"0.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:adcb7a36-3830-4db0-bcda-42f2e6bb93bf"}},"homepage":"https://github.com/zkproofport/proofport-ai#readme","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.","directories":{},"maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"_nodeVersion":"24.20.0","dependencies":{"viem":"^2.45.2","ethers":"^6.13.0","@x402/evm":"^2.25.0","@x402/core":"^2.25.0","@circle-fin/x402-batching":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"@x402/extensions":">=2.25.0","@coinbase/cdp-sdk":">=1.55.0","@circle-fin/developer-controlled-wallets":">=10.0.0"},"peerDependenciesMeta":{"@x402/extensions":{"optional":true},"@coinbase/cdp-sdk":{"optional":true},"@circle-fin/developer-controlled-wallets":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.3.0_1790156841707_0.12897078635261416"}}},"time":{"created":"2026-03-05T09:16:38.406Z","modified":"2026-09-23T09:47:22.251Z","0.1.0":"2026-03-05T09:16:38.697Z","0.1.1":"2026-03-05T13:38:43.252Z","0.1.2":"2026-03-10T06:58:46.631Z","0.1.3":"2026-03-16T10:02:08.981Z","0.1.4":"2026-03-16T11:59:39.257Z","0.1.5":"2026-03-16T16:02:53.696Z","0.2.0":"2026-03-19T12:42:39.962Z","0.2.1":"2026-03-19T13:36:27.888Z","0.2.2":"2026-03-24T09:04:04.915Z","0.2.3":"2026-03-24T13:57:16.869Z","0.2.4":"2026-03-24T14:31:16.113Z","0.2.5":"2026-03-24T15:08:49.977Z","0.2.6":"2026-04-02T14:25:58.809Z","0.2.7":"2026-04-02T16:53:37.639Z","0.2.8":"2026-04-02T17:20:50.898Z","0.2.9":"2026-04-03T07:33:16.205Z","0.2.10":"2026-04-03T09:50:35.283Z","0.2.11":"2026-09-13T07:41:14.877Z","0.2.12":"2026-09-13T09:19:21.666Z","0.2.13":"2026-09-22T02:30:46.229Z","0.2.14":"2026-09-22T04:21:58.731Z","0.2.15":"2026-09-22T06:01:23.531Z","0.2.16":"2026-09-22T06:41:07.283Z","0.2.17":"2026-09-22T07:05:47.102Z","0.3.0":"2026-09-23T09:47:21.774Z"},"bugs":{"url":"https://github.com/zkproofport/proofport-ai/issues"},"license":"MIT","homepage":"https://github.com/zkproofport/proofport-ai#readme","keywords":["sdk","typescript","zero-knowledge-proofs","zk-proofs","zkp","ai-agents","privacy","identity","coinbase-kyc","google-oidc","x402","erc-8004","noir-lang","base-chain","ethers","arc-testnet","experimental-arc","circle-agent-wallet","circle-gateway","gateway-nanopayments","action-authorization","eip-712"],"repository":{"url":"git+https://github.com/zkproofport/proofport-ai.git","type":"git","directory":"packages/sdk"},"description":"TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.","maintainers":[{"name":"dnomad-sy","email":"hyuki0130@gmail.com"},{"name":"masselabs-admin","email":"support@masselabs.com"}],"readme":"# @zkproofport-ai/sdk\n\nClient SDK for ZKProofport zero-knowledge proofs, including experimental exact-action authorization on Arc Testnet.\n\nThe shared `hashTypedAction` helper is available from **SDK 0.2.12**. Arc/GIWA optional actions require **SDK 0.2.14 or later**; MCP stepwise input preparation requires **MCP 0.2.15 or later**. Release Please owns the versions. Confirm the resolved npm versions before using this path.\n\nHuman action approval requires SDK **0.3.0 or later** and a compatible AI service with the approval API enabled. For the CLI/MCP flow, use MCP **0.3.0 or later** as well. Earlier releases that support action hashing do not implement this approval lifecycle. Action requests now pause for human approval; handle `ActionApprovalRequiredError` and resume as shown below.\n\n## Overview\n\n@zkproofport-ai/sdk is a TypeScript SDK for generating privacy-preserving zero-knowledge proofs using Coinbase KYC attestations and OIDC JWT tokens. Generate a proof with a single function call, or fine-tune each step for custom workflows.\n\nZKProofport has a TEE-based proving architecture. Enclave encryption and hardware attestation depend on the selected endpoint and its returned evidence; see the security requirements below.\n\n## Paying for a proof\n\nA service tells you what it charges. Ask for a proof and the answer is either\nthe proof or a `402` listing the chains it takes USDC on — you pick one.\n\nFor supported x402 offers, the payer signs an authorization and the payment rail settles it. Arc Gateway nanopayments spend an already funded Gateway balance; its initial deposit is an on-chain transaction requiring gas. A USDC wallet balance alone is insufficient for nanopayments. Wallet, chain and signing-domain compatibility must match the actual offer.\n\nSupported payment-wallet adapters:\n\n```ts\nimport {\n  generateProof,\n  walletFromPrivateKey,   // a raw key\n  walletFromCdp,          // a Coinbase CDP server wallet\n  walletFromCircle,      // a Circle developer-controlled wallet\n  walletFromArcAgent,    // an existing Circle Agent Wallet through Circle CLI\n  walletFor,            // walletFor('arc') selects the same adapter from environment\n} from '@zkproofport-ai/sdk';\n\nconst proof = await generateProof(\n  config,\n  {\n    attestation: signer,                                  // proves who you are\n    payment: await walletFromPrivateKey(process.env.PAYMENT_KEY!), // pays\n  },\n  { circuit: 'coinbase_kyc' },\n);\n```\n\nThe two wallets are separate on purpose. The attestation wallet is fixed — it\nis the one your KYC attestation is bound to. The paying wallet is whichever one\nholds USDC.\n\nTo choose a chain rather than take the first offered, pass `payOn` with a name\nfrom the service's own list:\n\n```ts\nconst offers = paymentOffers(await requestChallenge(config, 'coinbase_kyc'));\n// offers: [{ networkName, amount, asset, payTo }, ...]\n\nawait generateProof(config, { attestation: signer, payment }, {\n  circuit: 'coinbase_kyc',\n  payOn: offers[0].networkName,\n});\n```\n\nNaming a chain the service does not offer is an error listing what it does. It\nnever quietly pays on a different one.\n\nFrom the command line:\n\n```bash\nzkproofport-prove coinbase_kyc --pay-with circle --pay-on <chain>\nzkproofport-prove coinbase_kyc --pay-with cdp\n```\n\n`--pay-with cdp` needs `CDP_API_KEY_ID`, `CDP_API_KEY_SECRET` and\n`CDP_WALLET_SECRET`; `--pay-with circle` needs `CIRCLE_API_KEY`,\n`CIRCLE_ENTITY_SECRET` and `CIRCLE_WALLET_ID`; `--pay-with key` needs\n`PAYMENT_PRIVATE_KEY`. For the existing Circle Agent Wallet, explicitly select `--pay-with arc`; Circle CLI owns the login, and `ARC_AGENT_WALLET` selects its wallet. With exactly one key/CDP/developer-controlled wallet configured you can omit\nthe flag. With more than one, naming it is required — a wallet is money, and\nguessing which account it leaves is not a default worth having.\n\n## Encryption and attestation\n\nWhen the selected endpoint supplies a supported attested `teePublicKey`, the SDK encrypts inputs with X25519 ECDH + AES-256-GCM. The host relays ciphertext to the enclave; Nitro mode rejects plaintext inputs. Validate the returned attestation against the required trust policy.\n\nAn endpoint without that key receives readable circuit inputs over HTTPS and provides no hardware-attestation guarantee. The current Arc staging demo uses that mode. HTTPS transport encryption does not make the prover a blind relay. A valid public proof can hide the credential-holder address from the relying dApp without establishing enclave execution. Only claim hardware-attested proving when the actual attestation supports it.\n\n## Installation\n\n```bash\nnpm install @zkproofport-ai/sdk@latest ethers\n```\n\nUse **SDK 0.2.14 or later** and **MCP 0.2.15 or later** for both Arc/GIWA signature modes, including stepwise preparation. Install from npm and check the resolved version. Release Please manages package versions and the release workflow publishes them; repository source changes alone do not update `@latest`.\n\n## Prerequisites\n\n**For Coinbase circuits** (`coinbase_kyc`, `coinbase_country`):\n\n1. **Coinbase account with KYC verification** — Complete identity verification on [Coinbase](https://www.coinbase.com/)\n2. **Coinbase KYC EAS attestation on Base** — Obtain an attestation via [Coinbase Verifications](https://www.coinbase.com/onchain-verify). This creates an on-chain EAS attestation on Base linked to your wallet address.\n3. **Credential signer for proofs without an action** — A local signer for the wallet holding the EAS attestation. The CLI uses `ATTESTATION_KEY`; programmatic callers can supply a compatible `ProofportSigner`. An Arc/GIWA action instead requires the credential holder to connect a wallet and sign through the approval page. Keep key material outside model context.\n\n**For OIDC circuits** (`oidc_domain`): No wallet or attestation needed — just a JWT `id_token` from your OIDC provider.\n\n**For GIWA** (`giwa_attestation`): an attestation from GIWA's attester on **GIWA Sepolia**, and control of that wallet. Without an action, supply its local signer; with an action, the person connects that wallet on the approval page. The attestation must belong to the wallet signing the proof request on the chain the circuit reads.\n\n**For the circuits that can bind an action** (`arc_eligibility`, `giwa_attestation`): the attestation above for whichever one you ask for. What differs is what the wallet signs, and the action is **optional** — see below.\n\n**One wallet has a different nullifier per circuit, and for the circuits above it does not depend on what you signed.** `arc_eligibility` and `giwa_attestation` derive it from your address, the circuit's own identifier and the scope, so the same wallet in the same scope gives the same nullifier whether or not you bind an action. The Coinbase circuits derive theirs from the signed challenge instead. Nothing to configure — the SDK picks the rule the circuit expects, and refuses a circuit it has no rule for rather than guessing one. Requires **0.2.14 or later**; earlier versions sent the Coinbase rule for every circuit, which a GIWA proof rejects as a nullifier mismatch.\n\n## Quick Start\n\n```typescript\nimport { generateProof, createConfig, fromPrivateKey, verifyProof } from '@zkproofport-ai/sdk';\n\nconst config = createConfig();\nconst attestationSigner = fromPrivateKey(process.env.ATTESTATION_KEY);\n\nconst result = await generateProof(\n  config,\n  { attestation: attestationSigner },\n  { circuit: 'coinbase_kyc', scope: 'my-app' }\n);\n\nconst verification = await verifyProof(result);\nconsole.log('Valid:', verification.valid);\n```\n\n\n## Binding a proof to one action (experimental, testnet only)\n\n> **Experimental. Testnet only.**\n>\n> Two circuits can bind an action, both on testnets and neither generally available:\n>\n> | Circuit | Chain | Verifier |\n> |---|---|---|\n> | `arc_eligibility` | Arc Testnet, 5042002 | `0x2aEB66292f631ceb6225ffA2439B1f2b4b15e44a` |\n> | `giwa_attestation` | GIWA Sepolia, 91342 | `0x5Da234546874304F8c51BBEed00fC632938211c1` |\n>\n> The Ledger House EligibilityGate on Arc is `0xD0F3eE648386B59B484157332E736388Fcc41F47`. Public-input layouts and deployments may change; do not put either in front of real funds. Generally available: `coinbase_kyc`, `coinbase_country`, `oidc_domain`.\n>\n> **The action is optional on both.** Send one and the SDK pauses for a human to connect a wallet and sign the exact typed data. Send none and the supplied credential signer signs the request's signal hash as before. Supplying `ATTESTATION_KEY` does not bypass action approval.\n\n### The problem it solves\n\nThe Coinbase KYC and country circuits have the wallet sign `signal_hash`, which is\n`keccak256(address, scope, circuitId)`. That value is the same for a given\nwallet and scope no matter what the proof is later used for, so:\n\n- **It commits to no action.** A proof produced to deposit into one vault\n  verifies just as well at a different vault, for a different amount, from a\n  different caller, with no deadline. A verifier that checks\n  `msg.sender == expectedCaller` gains nothing if the proof never committed to\n  that caller.\n- **The person signing cannot read what they approve.** `personal_sign` over 32\n  opaque bytes shows a hex string. That is tolerable while a proof only asserts\n  \"this wallet is KYC'd\"; it is not once an agent moves money with it.\n\n### What changes\n\nPass an `action` and a human wallet signs an [EIP-712](https://eips.ethereum.org/EIPS/eip-712)\ntyped structure through the AI service's approval page. You define the structure;\nthe SDK does not invent action fields. No proof challenge or payment starts while\napproval is pending. The agent's payment wallet remains separately configured.\n\n```typescript\nimport {\n  ActionApprovalRequiredError, generateProof, getActionApprovalStatus,\n  type ActionApproval, type ClientConfig, type PaymentWallet, type ProofParams,\n} from '@zkproofport-ai/sdk';\n\nconst params: ProofParams = {\n    circuit: 'arc_eligibility',\n    scope: 'my-app',\n    action: {\n      domain: {\n        name: 'MyVault',\n        version: '1',\n        chainId: 5042002,\n        verifyingContract: vaultAddress,   // binds the signature to ONE contract\n      },\n      types: {\n        Deposit: [\n          { name: 'amount', type: 'uint256' },\n          { name: 'nonce', type: 'uint256' },\n          { name: 'expiry', type: 'uint64' },\n        ],\n      },\n      primaryType: 'Deposit',\n      message: { amount: '100000', nonce: '1', expiry: String(deadline) },\n    },\n};\n\n// For a CLI or backend with an appropriate request lifetime. An MCP tool should\n// return the URL promptly and resume in a later call instead of waiting here.\nasync function waitForHumanApproval(config: ClientConfig, approval: ActionApproval) {\n  while (Date.now() < Date.parse(approval.expiresAt)) {\n    const status = await getActionApprovalStatus(config, approval);\n    if (status.status === 'approved') return;\n    if (status.status !== 'pending') throw new Error(`Action approval is ${status.status}`);\n    await new Promise(resolve => setTimeout(resolve, 2000));\n  }\n  throw new Error('Action approval expired');\n}\n\nasync function generateWithHumanApproval(config: ClientConfig, payment: PaymentWallet, params: ProofParams) {\n  try {\n    return await generateProof(config, { payment }, params);\n  } catch (error) {\n    if (!(error instanceof ActionApprovalRequiredError)) throw error;\n    const approval = error.approval;\n    console.error('Review and sign:', approval.approvalUrl);\n    await waitForHumanApproval(config, approval);\n    // Consume once. Do not retry this call automatically after a failure.\n    return generateProof(config, { payment }, { ...params, actionApproval: approval });\n  }\n}\n\nconst result = await generateWithHumanApproval(config, payment, params);\n```\n\n`ActionApprovalRequiredError` is a pause, not a failed proof. Its `.approval`\nhandle contains `{approvalId, approvalUrl, requesterToken, expiresAt}`. Keep\n`requesterToken` in private application storage; only show the approval URL to\nthe person. Status replies contain no signature. `resolveActionApproval`\nchecks the original circuit, scope, full action and recovered signer before\npreparing inputs. Rejected, expired and consumed sessions cannot proceed.\n\nThe session expires after ten minutes and can be consumed once. If a response\nis lost after consumption, inspect the previous proof/payment outcome before\nrequesting fresh approval; never automatically pay again. Session expiry does\nnot expire the EIP-712 signature on chain. The relying contract must enforce\nthe action's own nonce and deadline. This flow supports EOA credential wallets;\ncontract-wallet signature verification is outside the current circuit.\n\nAsk for `giwa_attestation` instead to use the credential wallet's GIWA Sepolia\nattestation. The action domain names the relying contract's execution chain;\nit is independent of the chain used for attestation lookup or proof payment.\nThe approval page asks the wallet to use the action's declared chain.\n\nThe wallet renders `amount`, `nonce` and `expiry` by name for the person to\nread. Two 32-byte hashes reach the circuit — the EIP-712 domain separator and\nthe hash of the action — and the circuit proves the KYC'd key signed them. It\nnever learns what the action was, so nothing about vaults or USDC is baked into\nit: a grant of authority or an agreement in prose works the same way.\n\n```typescript\n// Free-form text is a valid shape.\ntypes: { Agreement: [{ name: 'terms', type: 'string' }] },\nprimaryType: 'Agreement',\nmessage: { terms: 'Deposit 0.1 USDC into the KYC-gated vault' },\n```\n\nA contract cannot enforce prose, though. To check an amount on-chain, the\namount has to be its own field.\n\n### What your verifier does\n\nIt recomputes both hashes from the call it is about to run and refuses a\nmismatch:\n\n```solidity\nbytes32 domainSeparator = _domainSeparatorV4();          // this contract, this chain\nbytes32 actionHash = keccak256(abi.encode(\n    DEPOSIT_TYPEHASH, amount, nonce, uint64(expiry)\n));\nrequire(publicInputs.domainSeparator == domainSeparator, \"wrong contract\");\nrequire(publicInputs.actionHash == actionHash, \"wrong action\");\n```\n\nPublic inputs arrive in this order — read off the compiled ABI, 192 fields of\none byte each:\n\n| Field | Byte range |\n|---|---|\n| `signal_hash` | 0–31 |\n| `domain_separator` | 32–63 |\n| `action_hash` | 64–95 |\n| `signer_list_merkle_root` | 96–127 |\n| `scope` | 128–159 |\n| `nullifier` | 160–191 |\n\n`signal_hash` is still present, and nobody signs it: the nullifier derives from\nit, exactly as on the other Coinbase circuits. Deriving the nullifier from the\nsigned action instead would give a different nullifier per action and destroy\nthe one-per-person property it exists for.\n\n### Omitting `action`\n\nBoth `arc_eligibility` and `giwa_attestation` accept an omitted action and retain their local `personal_sign` path. Coinbase circuits reject `action` and retain their existing signing path; OIDC rejects `action` and uses its JWT flow without wallet signing. For action proofs, the application must verify the exact target, operational wallet, amount, nonce and deadline as well as the proof.\n\n## Arc Circle Agent Wallet path — EXPERIMENTAL\n\nUse the existing Circle CLI login and selected Arc Agent Wallet; do not create or switch wallets as part of proof generation. Install the CLI if needed, then let the user complete any missing login locally. Credential holder A connects their wallet on the human approval page; this action flow does not load A's `ATTESTATION_KEY`. Keep credential data and Circle login secrets outside model context and ordinary logs.\n\n```bash\nnpm install -g @circle-fin/cli\ncircle wallet list --chain ARC-TESTNET --type agent\n# Set ARC_AGENT_WALLET to the user's existing, approved wallet B address.\ncircle gateway balance --address \"$ARC_AGENT_WALLET\" --chain ARC-TESTNET --output json\n# Only when the user has approved this funding amount:\ncircle gateway deposit --amount 0.1 --address \"$ARC_AGENT_WALLET\" --chain ARC-TESTNET --method direct\n```\n\nFor the live Gateway batched offer, SDK `signPayment` uses `@circle-fin/x402-batching` and the Circle CLI wallet adapter. It signs the Gateway authorization against the offer’s Gateway signing domain and spends the existing funded Gateway balance. The payment adapter uses the agent smart-wallet address for direct USDC payments (`arc-testnet`, verified through ERC-1271) and Circle's backing EOA for Gateway authorization (`arc-testnet-nano`). `wallet.address` is the on-chain owner; `wallet.gatewayAddress` identifies the separate Gateway depositor, and `signPayment` selects the correct owner for the chosen offer. The operational smart-wallet address remains Wallet B for the action and stake; do not substitute the backing EOA into the action's `delegate` field. `walletFromArcAgent({address: process.env.ARC_AGENT_WALLET, chain: 'ARC-TESTNET'})` and `walletFor('arc')` provide the same payment path.\n\nAfter the user reviews the action and the live x402 offer, save those exact approved objects locally as `approved-action.json` and `approved-payment.json`:\n\n```typescript\nimport { readFile } from 'node:fs/promises';\nimport {\n  createConfig, verifyProof, walletFor,\n  type ProofParams, type ApprovedPayment,\n} from '@zkproofport-ai/sdk';\n\nconst config = createConfig({baseUrl: 'https://stg-ai.zkproofport.app'});\nconst action: NonNullable<ProofParams['action']> = JSON.parse(await readFile('approved-action.json', 'utf8'));\nconst approvedPayment: ApprovedPayment = JSON.parse(await readFile('approved-payment.json', 'utf8'));\n// generateWithHumanApproval is the bounded catch/poll/resume helper above.\nconst result = await generateWithHumanApproval(config, await walletFor('arc'), {\n  circuit: 'arc_eligibility', scope: 'ledger-house', action,\n  payOn: 'arc-testnet-nano', maxPayment: '0.001', approvedPayment,\n});\nconst verification = await verifyProof(result);\nif (!verification.valid) throw new Error('Arc verifier rejected the proof');\n```\n\n`approvedPayment` pins the selected live offer's `network`, `scheme`, `amount`, `asset`, `payTo`, and signing domain `extra: {name, version, verifyingContract}`. For direct `exact` EIP-3009 payments (Base, Ethereum and Arc), set the approved `extra.verifyingContract` to the offer's `asset`: the standard offer may omit `extra.verifyingContract` because the token is the signing contract. For Circle Gateway (`GatewayWalletBatched`, version `1`), copy the required `extra.verifyingContract` from the offer; never substitute the token address. Missing or conflicting domain information and unsupported transfer methods such as Permit2 are rejected. `amount` is an integer string in USDC base units (`\"1000\"` is 0.001 USDC); `maxPayment` is a decimal USDC string (`\"0.001\"`). A changed fee, recipient, asset, network or signing domain is rejected before payment signing. Approve the actual offer; do not manufacture its recipient or domain from a documentation example.\n\n### Action object: caller-owned types, keys and values\n\nBoth `generateProof`/`generate_proof` and Arc input preparation use this complete `TypedAction` shape:\n\n| Field | Type | Meaning |\n|---|---|---|\n| `domain` | object | EIP-712 signing context; all four fields below are required. |\n| `domain.name` | non-empty string | Application/domain name agreed with the verifier. |\n| `domain.version` | non-empty string | Signing-domain version. |\n| `domain.chainId` | integer number | Target chain ID, such as `5042002`. |\n| `domain.verifyingContract` | string | 20-byte `0x` contract address bound by the signature. |\n| `types` | object | Map from caller-chosen struct names to arrays of field declarations. Omit `EIP712Domain`; ethers derives it from `domain`. |\n| `types[structName]` | array of objects | Ordered fields; each declaration has `name` and `type`. Include referenced nested structs. |\n| `types[structName][i].name` | string | Caller-chosen message key. |\n| `types[structName][i].type` | string | EIP-712 type: `address`, `bool`, `string`, `bytes`, fixed `bytes1`–`bytes32`, integer types such as `uint256`, arrays such as `string[]`, or another declared struct. |\n| `primaryType` | non-empty string | The declared top-level struct; it must equal the single root inferred by the encoder. |\n| `message` | object | Values matching the declared field types, including nested objects and arrays. |\n\nNo SDK action registry restricts business-specific struct names, field names or values. For example, `Instruction` can contain `terms: Terms` and `labels: string[]`, where `Terms` contains `quantity: uint256` and `memo: string`. The circuit binds their hashes; each relying application decides which structures it can execute. Declare every approval-critical field in `types`; the approval API rejects extra unsigned message keys. Invalid shape, missing declared fields (including nested structs/arrays), non-boolean `bool` values, malformed field declarations/encoded values, ambiguous roots and a mismatched `primaryType` are rejected before human signing. The API also bounds request size, nesting, array length and declaration count.\n\nUse decimal **integer strings** for JSON integer message values, especially `uint256` (for example `\"10000000\"`); JSON cannot represent `bigint`, and large JavaScript numbers can lose precision. Addresses/bytes are `0x` strings, booleans remain JSON booleans, and nested values follow their declared types. `domain.chainId` remains an integer JSON number.\n\n### Full 10-USDC Ledger House Gate action\n\nThis valid JSON shows the Gate's exact five-field schema. The example delegate is a public placeholder for Wallet B: replace it with the approved operational smart-wallet address, choose a future approved Unix-seconds deadline and a fresh nonce, then review the whole object. Never include the private credential-holder A's address or key in it.\n\n```json\n{\n  \"domain\": {\n    \"name\": \"Ledger House Staking\",\n    \"version\": \"1\",\n    \"chainId\": 5042002,\n    \"verifyingContract\": \"0xD0F3eE648386B59B484157332E736388Fcc41F47\"\n  },\n  \"types\": {\n    \"CredentialDelegation\": [\n      { \"name\": \"delegate\", \"type\": \"address\" },\n      { \"name\": \"action\", \"type\": \"string\" },\n      { \"name\": \"amount\", \"type\": \"uint256\" },\n      { \"name\": \"expiresAt\", \"type\": \"uint256\" },\n      { \"name\": \"nonce\", \"type\": \"string\" }\n    ]\n  },\n  \"primaryType\": \"CredentialDelegation\",\n  \"message\": {\n    \"delegate\": \"0x0000000000000000000000000000000000000001\",\n    \"action\": \"stake\",\n    \"amount\": \"10000000\",\n    \"expiresAt\": \"2000000000\",\n    \"nonce\": \"replace-with-fresh-user-approved-nonce\"\n  }\n}\n```\n\n`\"10000000\"` means **10 USDC** (6 decimals). The proof fee is separate: **0.001 USDC**, or `\"1000\"` base units. `delegate` and `CredentialDelegation` are established wire names for exact-action authorization: A authorizes this operation by B; B does not inherit A's identity or KYC credential. User approval covers the exact action and live proof-payment terms, followed by separate approval of the actual stake transaction.\n\nThe exported SDK `buildDelegationAction` helper is a legacy generic four-field schema (`delegate`, `action`, `expiresAt`, `nonce`). It **does not include `amount` and is not compatible with this staking Gate**. Its existing wire hash remains unchanged. Build the explicit five-field `TypedAction` above for the Gate; arbitrary custom actions remain valid SDK inputs but require a verifier that understands them.\n\n\nGenerating and verifying a proof does not submit a stake. After a separate stake approval, the operational wallet calls the dApp gate, which verifies the proof and enforces its policy, exact action, unused nonce and deadline atomically. Check the receipt before reporting a position change.\n\nThe MCP `gateway_balance` and `deposit_to_gateway` helpers currently require `PAYMENT_PRIVATE_KEY`; they do not operate the Circle Agent Wallet. Use the Circle CLI commands above for that wallet. SDK `gatewayBalance` / `ensureGatewayBalance` likewise accept the private-key `NanopaymentWallet` shape. This path documents the supported Arc Testnet offer, not a guarantee for every wallet on every chain.\n\n## Configuration\n\n```typescript\nimport { createConfig } from '@zkproofport-ai/sdk';\n\n// Default — production use\nconst config = createConfig();\n\n// Custom server URL\nconst config = createConfig({\n  baseUrl: 'https://your-custom-server.example.com',\n});\n```\n\n**Configuration fields:**\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `baseUrl` | string | `https://ai.zkproofport.app` | proofport-ai server URL |\n\n## Proof Generation\n\n### Single-Step Flow\n\nThe `generateProof()` function handles the entire proof generation pipeline: signing, attestation fetching, circuit input preparation, and proof generation.\n\n```typescript\nimport { generateProof, createConfig, fromPrivateKey } from '@zkproofport-ai/sdk';\nimport type { StepResult } from '@zkproofport-ai/sdk';\n\nconst config = createConfig();\nconst attestationSigner = fromPrivateKey(process.env.ATTESTATION_KEY);\n\nconst result = await generateProof(\n  config,\n  { attestation: attestationSigner },\n  {\n    circuit: 'coinbase_kyc',\n    scope: 'my-application',\n    // Optional: for country circuit\n    // countryList: ['US', 'KR'],\n    // isIncluded: true, // true = inclusion list, false = exclusion\n  },\n  {\n    onStep: (step: StepResult) => {\n      console.log(`[${step.step}] ${step.name} (${step.durationMs}ms)`);\n    },\n  }\n);\n\nconsole.log('Proof generated in', result.timing.totalMs, 'ms');\nconsole.log('Proof:', result.proof);\nconsole.log('Public inputs:', result.publicInputs);\n\n// Attestation present if TEE mode enabled on server\nif (result.attestation) {\n  console.log('TEE document:', result.attestation.document);\n  console.log('Verification:', result.attestation.verification);\n}\n```\n\n**Proof generation flow:**\n1. Sign signal hash with attestation signer\n2. Fetch Coinbase KYC attestation from EAS\n3. Build circuit inputs (Merkle tree, hashes)\n4. **Auto-detect E2E encryption** — if `teePublicKey` is present in server response, encrypt inputs with X25519 ECDH + AES-256-GCM\n5. Generate the proof on the configured prover (enclave-encrypted only for the supported Nitro deployment)\n\n**Result fields:**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `proof` | string | 0x-prefixed proof hex |\n| `publicInputs` | string | 0x-prefixed public inputs hex |\n| `proofWithInputs` | string | Combined proof + public inputs |\n| `attestation` | object | TEE attestation (document, proof_hash, verification) or null |\n| `timing` | object | Execution times per step |\n| `verification` | object | On-chain verifier info (chainId, address, rpcUrl) |\n\n## On-Chain Verification\n\n### Automatic Verification\n\n```typescript\nimport { verifyProof } from '@zkproofport-ai/sdk';\n\nconst verification = await verifyProof(result);\n\nif (verification.valid) {\n  console.log('Proof is valid on-chain');\n} else {\n  console.log('Proof verification failed:', verification.error);\n}\n```\n\n## Step-by-Step API\n\nFor Arc/GIWA actions, obtain human approval before preparing inputs. `prepareInputs` needs the camelCase hashes to recover A's public key from the approved EIP-712 digest; it does not add those hashes to its returned object. Attach the snake_case fields for submission. `signal_hash` is still computed internally for nullifier derivation and is not the action signing message. Low-level witness APIs accept signatures but cannot establish who operated the signing wallet.\n\nPrepared inputs are **private witness data**: they include A's public key, signature and attestation data. Keep them inside trusted local code and send them only to the chosen prover (encrypted when a supported TEE key is provided). Do not forward them to the dApp, model, UI or logs. The `generateProof` public result is the boundary for sharing a proof; step callbacks and `proofport://config` can contain sensitive signer data and must not be forwarded wholesale.\n\n```typescript\nimport { readFile } from 'node:fs/promises';\nimport {\n  createConfig, createActionApproval, resolveActionApproval, hashTypedAction, prepareInputs,\n  requestChallenge, signPayment, submitProof, submitEncryptedProof,\n  encryptForTee, walletFor, CIRCUIT_IDS,\n  type TypedAction, type ApprovedPayment,\n} from '@zkproofport-ai/sdk';\n\nconst config = createConfig({ baseUrl: 'https://stg-ai.zkproofport.app' });\nconst action: TypedAction = JSON.parse(await readFile('approved-action.json', 'utf8'));\nconst approvedPayment: ApprovedPayment = JSON.parse(await readFile('approved-payment.json', 'utf8'));\nconst scope = 'ledger-house';\n\n// 1. Create an immutable request, then let the person connect and sign.\nconst { domainSeparator, actionHash } = hashTypedAction(action);\nconst request = { circuit: 'arc_eligibility' as const, scope, action };\nconst approval = await createActionApproval(config, request);\nconsole.error('Review and sign:', approval.approvalUrl);\nawait waitForHumanApproval(config, approval); // bounded helper from the example above\nconst approved = await resolveActionApproval(config, request, approval);\n\n// 2. The signature has been verified and consumed. Build the private witness.\nconst prepared = await prepareInputs(config, {\n  circuitId: CIRCUIT_IDS.ARC_ELIGIBILITY,\n  userAddress: approved.address, userSignature: approved.signature, scope,\n  domainSeparator, actionHash,\n});\nconst inputs = { ...prepared, domain_separator: domainSeparator, action_hash: actionHash };\n\n// 3. Fetch a fresh nonce/offer/TEE key without sending the witness yet.\nconst challenge = await requestChallenge(config, 'arc_eligibility');\nconst paymentHeaders = challenge.requiresPayment\n  ? (await signPayment(challenge, await walletFor('arc'), {\n      network: 'arc-testnet-nano', maxPayment: '0.001', approvedPayment,\n    })).headers\n  : undefined;\n\n// 4. Submit with the same nonce and approved payment; preserve TEE encryption.\nconst result = challenge.teePublicKey\n  ? await submitEncryptedProof(config, {\n      circuit: 'arc_eligibility', nonce: challenge.nonce, paymentHeaders,\n      encryptedPayload: encryptForTee(\n        JSON.stringify({ circuitId: CIRCUIT_IDS.ARC_ELIGIBILITY, inputs }),\n        challenge.teePublicKey.publicKey,\n      ),\n    })\n  : await submitProof(config, {\n      circuit: 'arc_eligibility', inputs, nonce: challenge.nonce, paymentHeaders,\n    });\n// Share only the public result, verify it, then separately approve the stake.\n```\n\n`hashTypedAction(action)` returns `{domainSeparator: string, actionHash: string}` as 32-byte `0x` hashes. For Coinbase KYC/country, sign `computeSignalHash(address, scope, circuitId)` with `signMessage`, call `prepareInputs` without action hashes, then use the same challenge/payment/submission sequence. OIDC uses `prepareOidcPayload` and no attestation-wallet signature. The all-in-one `generateProof` already handles these distinctions.\n\n## Circuits\n\n### Coinbase KYC\n\nProves wallet holder passed Coinbase Know-Your-Customer verification.\n\n```typescript\nconst result = await generateProof(config, signers, {\n  circuit: 'coinbase_kyc',\n  scope: 'my-app', // any string; used to prevent proof replay\n});\n```\n\n### Coinbase Country\n\nProves wallet holder's country is (or is not) in a specified list.\n\n```typescript\nconst result = await generateProof(config, signers, {\n  circuit: 'coinbase_country',\n  countryList: ['US', 'KR'],\n  isIncluded: true, // true = prove in list, false = prove not in list\n  scope: 'my-app',\n});\n```\n\n### OIDC Domain\n\nProves email domain affiliation using an OIDC JWT token (e.g., Google, Microsoft). No EAS attestation, Coinbase account, or wallet required — only a JWT `id_token`.\n\n#### Google Workspace\n\n```typescript\nimport { createConfig, generateProof } from '@zkproofport-ai/sdk';\n\nconst config = createConfig();\n\nconst result = await generateProof(\n  config,\n  {},\n  {\n    circuit: 'oidc_domain',\n    jwt: googleIdToken, // JWT id_token from Google OAuth\n    scope: 'myapp:verify-domain',\n  },\n);\n```\n\n#### Microsoft 365\n\n```typescript\nimport { createConfig, generateProof } from '@zkproofport-ai/sdk';\n\nconst config = createConfig();\n\nconst result = await generateProof(\n  config,\n  {},\n  {\n    circuit: 'oidc_domain',\n    jwt: microsoftIdToken, // JWT id_token from Microsoft OAuth\n    provider: 'microsoft',\n    scope: 'myapp:verify-domain',\n  },\n);\n```\n\n> **Note:** For OIDC circuits, no wallet or private key is needed — just a JWT `id_token` from your OIDC provider.\n\n## Extracting Data from Proofs\n\nFor OIDC domain proofs, use helper functions to extract the domain and nullifier from public inputs:\n\n```typescript\nimport { generateProof, createConfig, extractDomainFromPublicInputs, extractNullifierFromPublicInputs } from '@zkproofport-ai/sdk';\n\nconst config = createConfig();\n\nconst result = await generateProof(\n  config,\n  {},\n  {\n    circuit: 'oidc_domain',\n    jwt: googleIdToken,\n    scope: 'myapp:verify-domain',\n  },\n);\n\n// Extract domain and nullifier from proof\nconst domain = extractDomainFromPublicInputs(result.publicInputs);\nconst nullifier = extractNullifierFromPublicInputs(result.publicInputs);\n\nconsole.log('Verified domain:', domain);\nconsole.log('Nullifier:', nullifier);\n```\n\n**Public Input Layout (oidc_domain_attestation):**\n\nThe proof contains 148 public input fields (32 bytes each):\n\n| Fields | Description |\n|--------|-------------|\n| 0-17 | RSA pubkey modulus limbs (18 x u128) |\n| 18-81 | Domain storage (BoundedVec<u8, 64>) |\n| 82 | Domain length |\n| 83-114 | Scope (32 bytes) |\n| 115-146 | Nullifier (32 bytes) |\n| 147 | Provider identifier (u8) |\n\n**Functions:**\n\n- `extractDomainFromPublicInputs(publicInputs: string): string | null` — Extracts the email domain (e.g., \"google.com\") from public inputs. Returns null if extraction fails.\n- `extractNullifierFromPublicInputs(publicInputs: string): string | null` — Extracts the 32-byte nullifier as a 0x-prefixed hex string. Returns null if extraction fails.\n\n## Types Reference\n\n**Circuit Types:**\n\n```typescript\ntype CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain' | 'arc_eligibility' | 'giwa_attestation';\ntype CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation' | 'arc_eligibility' | 'giwa_attestation';\n```\n\n**Configuration:**\n\n```typescript\ninterface ClientConfig {\n  baseUrl: string;\n}\n```\n\n**Signer:**\n\n```typescript\ninterface ProofportSigner {\n  getAddress(): string | Promise<string>;\n  signMessage(message: Uint8Array): Promise<string>;\n  signTypedData(domain: {...}, types: {...}, message: {...}): Promise<string>;\n  sendTransaction(tx: {...}): Promise<{ hash: string; wait(): Promise<{...}> }>;\n}\n\n// Create signer from ethers private key\nfunction fromPrivateKey(key: string, provider?: ethers.Provider): ProofportSigner;\n\n// Create signer from ethers Wallet\nfunction fromSigner(signer: ethers.Signer): ProofportSigner;\n```\n\n**Proof Parameters:**\n\n```typescript\ninterface ProofParams {\n  circuit: CircuitName;\n  action?: { domain: { name: string; version: string; chainId: number; verifyingContract: string }; types: Record<string, Array<{name: string; type: string}>>; primaryType: string; message: Record<string, unknown> }; // optional for arc_eligibility and giwa_attestation\n  actionApproval?: ActionApproval; // private handle; resume the original action after human approval\n  payOn?: string;\n  maxPayment?: string; // decimal USDC\n  approvedPayment?: ApprovedPayment;\n  scope?: string; // defaults to 'proofport'\n  countryList?: string[]; // for coinbase_country only\n  isIncluded?: boolean; // for coinbase_country only\n  jwt?: string; // JWT id_token for OIDC circuits (required for oidc_domain)\n  provider?: 'google' | 'microsoft'; // OIDC provider (default: 'google')\n}\n```\n\n**Proof Result:**\n\n```typescript\ninterface ProofResult {\n  proof: string;\n  publicInputs: string;\n  proofWithInputs: string;\n  attestation: {\n    document: string;\n    proof_hash: string;\n    verification: {\n      rootCaValid: boolean;\n      chainValid: boolean;\n      signatureValid: boolean;\n      pcrs: Record<number, string>;\n    };\n  } | null;\n  timing: {\n    totalMs: number;\n\n    inputBuildMs?: number;\n    proveMs?: number;\n  };\n  verification: {\n    chainId: number;\n    verifierAddress: string;\n    rpcUrl: string;\n  } | null;\n}\n```\n\n**OIDC Inputs:**\n\n```typescript\ninterface OidcProveInputs {\n  jwt: string;\n  scope_string: string;\n}\n```\n\n**Callbacks:**\n\n```typescript\ninterface FlowCallbacks {\n  onStep?: (step: StepResult) => void;\n}\n\ninterface StepResult {\n  step: number;\n  name: string;\n  data: unknown;\n  durationMs: number;\n}\n```\n\n## Error Handling\n\n```typescript\nimport { generateProof, createConfig, fromPrivateKey } from '@zkproofport-ai/sdk';\n\ntry {\n  const result = await generateProof(config, signers, params);\n} catch (error) {\n  if (error instanceof Error) {\n    if (error.message.includes('attestation')) {\n      console.error('Attestation not found or invalid');\n    } else if (error.message.includes('Sumcheck')) {\n      console.error('Proof verification failed on-chain');\n    } else {\n      console.error('Proof generation failed:', error.message);\n    }\n  }\n}\n```\n\nCommon errors:\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| `Attestation not found` | Wallet has no Coinbase KYC attestation | Verify attestation on Base Mainnet via EAS |\n| `Sumcheck failed` | On-chain verification failed | Proof corrupted or verifier contract mismatch |\n\n## License\n\nMIT\n\n\n### Testing the published packages\n\nFrom the `proofport-ai` repository root, use the isolated registry runner:\n\n```bash\nE2E_BASE_URL=https://stg-ai.zkproofport.app \\\nE2E_PAYMENT_NETWORK=base-sepolia \\\nnpm run test:e2e:published -- --sdk-version 0.2.16 --mcp-version 0.2.16\n```\n\nIt installs those exact npm versions outside the workspace, resolves SDK imports\nand the MCP process to that installation, and removes it afterwards. The runner\nalso installs and verifies Circle CLI 1.1.4, automatically putting it on the test\nsubprocess PATH without changing the global installation. Optional CDP/x402 and\nCircle developer wallet dependencies are installed at tested exact versions,\nand their imports are verified before paid tests start. A normal\nworkspace test run exercises local packages and is not published-package evidence.\nThe full suite creates paid testnet proofs. It requires the attestation and payer\ncredentials loaded by `tests/setup.ts`; GIWA uses `GIWA_ATTESTATION_KEY`, and OIDC\nuses `E2E_OIDC_JWT` or an authenticated gcloud account. The payment matrix checks\nBase Sepolia, Arc immediate settlement, Ethereum Sepolia, and Arc Gateway nano\nseparately, so each needs a funded payer on its selected network. Optional\n`E2E_PAYER_KEY_<NETWORK>` overrides use uppercase names with underscores, for\nexample `E2E_PAYER_KEY_ETHEREUM_SEPOLIA`. `E2E_ARC_AGENT_ADDRESS` selects an\nexisting Circle Agent Wallet for both Arc cases; the supported Circle CLI,\non-chain USDC for immediate settlement, and Gateway USDC for nano are required. The runner never deposits or transfers funds.\n\nFor a non-paying package/discovery check, append\n`-t 'should list all 5 circuits'`. This checks discovery only, not proof generation.\n","readmeFilename":"README.md"}