{"_id":"@baerae/zkap-aa","_rev":"12-8e8d6475101e4ab689802b0db694e9ab","name":"@baerae/zkap-aa","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.2":{"name":"@baerae/zkap-aa","version":"0.1.2","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.2","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"95af71daa40d71981705ae465e68103e3bc297b0","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.2.tgz","fileCount":205,"integrity":"sha512-O/mB3ckvic4OhuNkYKl1/v8PBH6eVmjoJze+12n2slc1tXBSeWoPmwRSsZmzy4E9y/zXsXLKGaE5MlQtjK1q6A==","signatures":[{"sig":"MEYCIQDTKvEYglZc7JrnxmUZu7wG+IWxgSxtqA9wXaeyrsrgJwIhAO5FrmqWvlTGgBp5psUPhWxgeJE9IfT8Q2sMFbLMQRuO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1964243},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"03d230a7ca398e4e7a801831188d396b26fe705d","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","prepare":"husky","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"kaikookim","email":"k@baerae.com"},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.8.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.2_1775434030189_0.008978955876832062","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@baerae/zkap-aa","version":"0.1.3","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.3","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"2c4343230d0ce0acf661a5c05cbd356676f214e6","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.3.tgz","fileCount":205,"integrity":"sha512-/aE5F9exZWvEk0G5QEP8woZ/ugDs8f7n8oCrqs8BLQE/tBurH1MGBOmYo5fpXsmAyOxOo5GwVxFWwtAyZwCB1Q==","signatures":[{"sig":"MEYCIQDRRbk+3mX6cFcwtEd6ywiuvSsvjORdD07ElrCEu9cZnAIhAN63d63BVU9Yv4xUdGeWelQw/H96Jqfwjv1+iQLAPEeF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1980803},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"f132b6eff056a3f77f0842cd0fcbdb4f4ca9c482","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.12.1","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.3_1775623626263_0.9460792455477944","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@baerae/zkap-aa","version":"0.1.4","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.4","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"dd8b824dbb63c192bffd78cb265c06947c1fe9e2","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.4.tgz","fileCount":205,"integrity":"sha512-U28MJ3PNND9Dq1g6L1vmPdrdby/jTIzm62qDh/Yqb6/hbTYNGwDmKURGmb1pqqmqvhLbVUrZqdz3gqOsmvphgQ==","signatures":[{"sig":"MEYCIQCpTwng94DCAwiPfJc0EnZGiycf3XynGmQWjfiC1Z+hfwIhAN1eB/arVmex3UU9adYATfn026vwO0Zqus58gYOdog47","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1990820},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"d7c2fecb7d2e34ccb573958b063135490845cd43","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.12.1","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.4_1775694362592_0.45943022091090246","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@baerae/zkap-aa","version":"0.1.5","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.5","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"9d39f96f37ac3e9dfbf742e046122db79500ae12","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.5.tgz","fileCount":205,"integrity":"sha512-pGtDKIrX3Bq0AoLYAgSuvcWi8IfWWWJdlA7a0rYAdP2J9Uyc8Q+V8kP5eb9AYfztQgsHJxSWVuGpovcBwdEbZg==","signatures":[{"sig":"MEUCIBxHTxV4RH+wVwevx57mod/kS5Q5gnZsPSLbshX4V8S0AiEA/Xg0zxZjHJS7aHNSkyS2VJbva31SV/GF+Y2O53DY4Jw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1999518},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"fe65f87a566eccb86dbf2086ad0a587b9f28970e","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.12.1","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.5_1776733943923_0.4997793263873356","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@baerae/zkap-aa","version":"0.1.6","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.6","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"a37be2e23449c95811de608978bf7cb902895c6d","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.6.tgz","fileCount":205,"integrity":"sha512-VpSv0ValvHsr86+92OHrQxRacjyLpAwELvpCQVxegaRTLy9J0brKKKGqBZmh9rbJxHE4lGkHzx/nKHUf/CUnFw==","signatures":[{"sig":"MEUCIQD3gfolzCj2b0ge0cTVv2PkFAVOsZJPJe2qBCOHD7R+EgIgJCkLCiq8idWaWWEWZCCB+zTz0CaB4+20NFQVq6/8yKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2001044},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"6afe42b59900dad13ec2eced9ada8cf7fe9df401","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.14.1","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.6_1779086753433_0.32589749952191904","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@baerae/zkap-aa","version":"0.1.7","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.7","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.com"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"c2a6a504e614d8014ef73cb5ad3d956a8859fd82","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.7.tgz","fileCount":265,"integrity":"sha512-u6Sf+oz6PUazNL62DIzQsGDItC7ZUEWmDrNSkrYxMW8+Hbik7/t8vLJM40leg60rADQGPVs/e8sDDPjd9AtkIw==","signatures":[{"sig":"MEUCIAPkD9C2hGP8z89QHR/3zw5vYe8Is6Y9KH09/h/OPUh8AiEAlbqgMsLry+krRSm0eclzlAd7WQz+s4KLkvm36pDVTgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2266997},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"45812d0414e5fbc894c6bcdd5195e1ae95a451aa","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.7_1780013113736_0.9400351248180123","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@baerae/zkap-aa","version":"0.1.8","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.8","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"6b90a651e8acbf27697081a4e6e9e98900cd9165","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.8.tgz","fileCount":265,"integrity":"sha512-PjuZL/E6uiTYuyhbsqj9vlVIybCYGB4QdiV40fcBoGodYLyRXZEOF+2iPngZ1mhmKm/DmzONQWdmMhf3PVzryA==","signatures":[{"sig":"MEQCIDnewETlYqwukHfpXiY3+PNh7lW6sPAXnQsr9gm1iFRDAiA2hVLxbYMPGWqbdsmMaGiBpRaX6YjmDOEui17cswmjCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2275995},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"61a4bdbf3df1566e4f563f4becf86461ec2b721c","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.18.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.8_1785223975727_0.4444514209911863","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@baerae/zkap-aa","version":"0.1.9","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.9","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"2d8ea0033bcecf8542d6951c6f8b0314c1e501eb","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.9.tgz","fileCount":260,"integrity":"sha512-QN7cXzWdNfW7AT0Hsh3c5cLZKCWEZ7MBGb+JCtXyL0fENzb4KNnsakkLrKmxtju1NbFruI9x/6oLm+JES1JYPw==","signatures":[{"sig":"MEUCIQCadrMwKcMgyDHwBN9C/1OS9G9AVy9E5c4bDXw3ZJe2MwIgNxliCmNkFPP0GbC/JIknem/1blNgl2MiLApL4Zuwx9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2244176},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"0747e2724a27f3685dcfaf44941611f1249085d5","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.18.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.9_1785224703708_0.24591628333707272","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@baerae/zkap-aa","version":"0.1.10","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.1.10","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"a2406f9db9c3e5d25e6549477c68b31ae7795b52","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.1.10.tgz","fileCount":265,"integrity":"sha512-UgXAWfp2InZ3KY/pqdGRXwU/ELL9FiRzR8VLLpK8SygLRp91cNZ9okmrj4EPJDfWrmMfv8VQM6qV/yg2CdgkFQ==","signatures":[{"sig":"MEQCIH1VQy0ZS6QT8Hi1cUwp7aSTNTmqDSr681fIWN0CHwe5AiBEdhPetLgd6+UGRa2ZPWsfF0OjWsSCYqCeRNm40q/oAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2292440},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"228844c41b426b097e942df281971caacaa1c06e","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.1.10_1785800770869_0.7222676581960323","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@baerae/zkap-aa","version":"0.2.0","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.2.0","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"9595d95cda760c201c621df28cc76504f1798aea","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.2.0.tgz","fileCount":239,"integrity":"sha512-LAOZtt3vQh6eiRvEQFUGjpfEebXa1EmD2Qldfv4DWE/twO6nVfj2pbhF+8GoicF4ywZcpb3qS9ah5frnIM242g==","signatures":[{"sig":"MEUCIHmNuw+0QrykupYbpza8eiTn/d7tMM4bQeRnS+ya6oJGAiEAlO5V1PGHL4T5i9jFsy82569xVi2W+ITJlBUEcRBEnJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1543368},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"c06f6cb9214283c037faae49227e3cd097faf18e","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.2.0_1785845885609_0.3759820169200341","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@baerae/zkap-aa","version":"0.2.1","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","_id":"@baerae/zkap-aa@0.2.1","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"232f7ff86888791ae3b746a24d96e4b114ec56c6","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.2.1.tgz","fileCount":229,"integrity":"sha512-4Pp+O3zH5Ido+dT4ZYJ9U66rFs8tyXlt6dffhrEsg40lDmlDp/q4uDMhlpMtCbzIEQWTBLtMbzj/imxuUkKXhA==","signatures":[{"sig":"MEYCIQDtrZoAB4W/1UkYjBlTmKlPJiQP8paxy+PDgffCFOKKaQIhAKiff7OIIbYgpCWzfZbm/GNKzbV2wgNsc+s1Q1catRmq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1425208},"main":"dist/lib/index.js","types":"dist/lib/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"30ff1fda4f119719c1dfaa0a89478aa777b36ce6","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zkap-aa_0.2.1_1786341963163_0.2657278454516834","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"_id":"@baerae/zkap-aa@0.2.2","bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"dist":{"shasum":"251a6da1dc2aeb04997eaba646a53e39b8c22d27","tarball":"https://registry.npmjs.org/@baerae/zkap-aa/-/zkap-aa-0.2.2.tgz","fileCount":249,"integrity":"sha512-C0udo6XhoKG4o+UqyJ1/jXEfWngWw+qisiMQ2a6csTF1s+0Iiv5Cpk1TceqQCJVobD4lekPh0SOA1nuntGTo/Q==","signatures":[{"sig":"MEYCIQCq5EnI3g56dkrYvzUQwvgIjlW01wQ2JQgccdjvl1+KoAIhAKkLXXbtpKBuaSEOJ3hCMEEd9bi2ygekSciFpOkuks/x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD/lT07VnFlKcPzhVqcKNArku3zVQym37y5ai4/95AUSQIgc80+RbUrafVnOmtVIxBm+MXXZA62or/HvPm5nzBH9PA="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@baerae%2fzkap-aa@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1522489},"main":"dist/lib/index.js","name":"@baerae/zkap-aa","types":"dist/lib/index.d.ts","author":{"name":"baerae-zkap","email":"k@baerae.com"},"module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"gitHead":"a182bb9cf46e99353b54dd7bc6602180327d88d5","license":"ISC","scripts":{"pub":"sh ./publish.sh","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","build":"tsc && tsc -p tsconfig.esm.json && node scripts/add-esm-ext.mjs","test:ci":"jest --ci --coverage --coverageReporters=text-summary","test:watch":"jest --watch","test:coverage":"jest --coverage"},"version":"0.2.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9452f4-2e32-49d7-836b-2d778133f028"}},"homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"_npmVersion":"11.19.1","description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","directories":{},"maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"_nodeVersion":"20.20.2","dependencies":{"jwt-decode":"^4.0.0","@levischuck/tiny-cbor":"^0.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","husky":"^9.1.7","eslint":"^10.1.0","ts-jest":"^29.4.9","jest-junit":"^16.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^16.4.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zkap-aa_0.2.2_1788930315223_0.05307324817039105"}}},"time":{"created":"2026-04-06T00:07:10.079Z","modified":"2026-09-09T05:05:15.669Z","0.1.2":"2026-04-06T00:07:10.424Z","0.1.3":"2026-04-08T04:47:06.445Z","0.1.4":"2026-04-09T00:26:02.788Z","0.1.5":"2026-04-21T01:12:24.139Z","0.1.6":"2026-05-18T06:45:53.616Z","0.1.7":"2026-05-29T00:05:13.952Z","0.1.8":"2026-07-28T07:32:55.950Z","0.1.9":"2026-07-28T07:45:03.868Z","0.1.10":"2026-08-03T23:46:11.067Z","0.2.0":"2026-08-04T12:18:05.804Z","0.2.1":"2026-08-10T06:06:03.332Z","0.2.2":"2026-09-09T05:05:15.335Z"},"bugs":{"url":"https://github.com/baerae-zkap/zkap-aa-sdk/issues"},"author":{"name":"baerae-zkap","email":"k@baerae.com"},"license":"ISC","homepage":"https://github.com/baerae-zkap/zkap-aa-sdk#readme","keywords":["erc-4337","account-abstraction","smart-wallet","useroperation","bundler","zk","zkap","passkey","webauthn","zk-oidc","typescript","sdk","ethers"],"repository":{"url":"git+https://github.com/baerae-zkap/zkap-aa-sdk.git","type":"git"},"description":"ZKAP Account Abstraction SDK — ERC-4337 smart wallet, passkey, zk-oidc signers.","maintainers":[{"name":"baerae_admin","email":"admin@baerae.com"},{"name":"baerae_colin","email":"colin.kim@baerae.com"},{"name":"kaikookim","email":"k@baerae.dev"},{"name":"banjang","email":"ban@baerae.com"}],"readme":"# @baerae/zkap-aa\n\n[![npm version](https://img.shields.io/npm/v/@baerae/zkap-aa)](https://www.npmjs.com/package/@baerae/zkap-aa)\n[![CI](https://github.com/baerae-zkap/zkap-aa-sdk/actions/workflows/dev-pr-ci.yml/badge.svg)](https://github.com/baerae-zkap/zkap-aa-sdk/actions)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](LICENSE)\n\nTypeScript SDK for [ZKAP](https://zkap.app) smart wallets — ERC-4337 account abstraction with WebAuthn (Passkey) and ZK-OIDC (Google / Kakao) signing.\n\n## Features\n\n- **Passkey signing** — WebAuthn / FIDO2 credentials, no seed phrases\n- **ZK-OIDC signing** — sign with Google or Kakao identity, privacy-preserving via ZK proofs\n- **EOA signing** — standard private key / `ethers.Wallet` integration\n- **Gas sponsorship** — verifying and ERC-20 paymaster support\n- **Batch transactions** — multiple calls in a single UserOperation\n- **Dual build** — CommonJS and ESM, works in Node.js and bundlers\n\n## Installation\n\n```bash\nnpm install @baerae/zkap-aa\n```\n\n`ethers` is a peer dependency — install it alongside:\n\n```bash\nnpm install ethers\n```\n\nRequires Node.js >= 18.\n\n## Quick Start\n\n> **Prerequisites:** ZKAP wallets are ERC-4337 smart contract wallets, so before sending UserOps you need three things the SDK does not discover for you:\n> - **Chain config** — an RPC URL, a bundler RPC URL, the EntryPoint address, and (only when deriving or deploying a wallet) the ZkapAccountFactory and key-logic addresses. Keep these in your own config table; see step 1.\n> - **A wallet address** — an already-deployed wallet, or a counterfactual address derived with `ZkapCreator` (step 3).\n> - **A signer** whose key type matches a key registered on that wallet.\n>\n> The first UserOp sent from a counterfactual address deploys the wallet on-chain via `initCode` — that is what `ZkapCreator` sets up.\n\n### 1. Configure your chain\n\nThe SDK never fetches configuration — you pass addresses and endpoints in. Keep one entry per chain in your app; every sample below reads from this `CHAIN` object.\n\n```typescript\nconst CHAIN = {\n  chainId: 11155111,                     // Ethereum Sepolia\n  rpcUrl: process.env.RPC_URL!,           // JSON-RPC node — gas estimation, nonce reads\n  bundlerUrl: process.env.BUNDLER_URL!,   // ERC-4337 bundler RPC (Pimlico, Alchemy, alto, ...)\n  entryPoint: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', // EntryPoint v0.8\n\n  // Only needed by the features that use them:\n  zkapFactory: process.env.ZKAP_FACTORY!,               // deriving / deploying a wallet\n  addressKeyLogic: process.env.ADDRESS_KEY_LOGIC!,      // building an EOA master key\n  poseidonMerkleTreeDirectory: process.env.MERKLE_DIR!, // AccountKeyBuilder (zk key)\n};\n```\n\n> `rpcUrl` and `bundlerUrl` are **different endpoints**. `Erc4337BundlerProvider` takes the bundler one.\n\nThis is the subset the samples below use. A production integration also needs a logic-contract address per key type it registers — `addressKeyLogic` for EOA keys, and the zkOAuth verifier or WebAuthn implementation address for those key types.\n\n### 2. Send a transaction (EOA signer)\n\n`ZkapBuilder` builds and signs the UserOperation; `BundlerClient` submits it and waits for the receipt.\n\n```typescript\nimport {\n  ZkapBuilder,\n  BundlerClient,\n  Erc4337BundlerProvider,\n  AddressKeySigner,\n} from '@baerae/zkap-aa';\n\nconst WALLET_ADDRESS = '0xYourZkapWalletAddress';\nconst signer = new AddressKeySigner([process.env.PRIVATE_KEY!]);\n\nconst builder = new ZkapBuilder({\n  chainId: CHAIN.chainId,\n  entryPoint: CHAIN.entryPoint,\n  enUrl: CHAIN.rpcUrl,\n});\n\nbuilder\n  .setSender(WALLET_ADDRESS)\n  .setExecuteCallData(\n    '0xRecipientAddress',\n    '1000000000000000', // 0.001 ETH in wei\n    '0x',               // calldata — '0x' for a plain transfer\n    signer.keyTypes,    // which on-chain key verifies this op\n  );\n\nawait builder.autoFillUserOp(); // nonce, gas limits and fee fields, from CHAIN.rpcUrl\n\n// Trim preVerificationGas to what the bundler actually requires. Must run before\n// getUserOpHash() — see \"preVerificationGas calibration\" below.\nbuilder.applyBundlerPreVerificationGas();\n\nconst userOpHash = builder.getUserOpHash();\nconst signatures = await signer.signUserOpHash(userOpHash);\nbuilder.setSignature(signer.keyTypes.map((_, i) => i), signatures);\n\nconst bundlerClient = new BundlerClient(\n  new Erc4337BundlerProvider({\n    rpcUrl: CHAIN.bundlerUrl,  // the BUNDLER endpoint, not CHAIN.rpcUrl\n    usePimlicoFormat: true,    // Pimlico / alto want the unpacked factory+factoryData shape\n  }),\n);\n\nconst submittedHash = await bundlerClient.submitUserOp(\n  builder.getPackedUserOp(),\n  CHAIN.entryPoint,\n);\nconsole.log('Submitted:', submittedHash);\n\nconst receipt = await bundlerClient.waitForReceipt(submittedHash);\nconsole.log('Confirmed in tx:', receipt.txHash, '— success:', receipt.success);\n```\n\n`waitForReceipt` returns a flat `UserOpReceipt` (`txHash`, `blockNumber`, `success`, `actualGasCost`, `actualGasUsed`, plus `revertReason` / `contractError` on an execution revert).\n\n### 3. Derive a counterfactual wallet address\n\nA ZKAP address is `CREATE2(salt, encodedMasterKey, encodedTxKey)` — it depends on the key material the wallet will be **deployed** with, not on the identity alone. Derive it from exactly the inputs you will deploy with, or you will fund an address the deploy never targets.\n\n```typescript\nimport { computeSalt, ZkapCreator, AccountKeyBuilder, PrimitiveAccountKeyTypes } from '@baerae/zkap-aa';\nimport { ethers } from 'ethers';\n\n// keccak256(abi.encode(aud, sub)). Pass a walletIndex of 1-255 to derive additional\n// independent wallets for the same identity; 0 and omitted both mean the default wallet.\nconst salt = computeSalt(aud, sub);\n\n// For a wallet controlled by an EOA:\nconst encodedMasterKey = new AccountKeyBuilder(1, [\n  {\n    keyType: PrimitiveAccountKeyTypes.keyAddress,\n    logicContract: CHAIN.addressKeyLogic, // on-chain verifier for keyAddress\n    weight: 1,\n    keyData: { signerAddress: new ethers.Wallet(process.env.PRIVATE_KEY!).address },\n  },\n]).getEncodedKey();\n\nconst creator = new ZkapCreator({\n  chainId: CHAIN.chainId,\n  entryPoint: CHAIN.entryPoint,\n  zkapFactory: CHAIN.zkapFactory,\n  enUrl: CHAIN.rpcUrl,\n  salt,\n  encodedMasterKey,\n  encodedTxKey: '0x', // '0x' when the wallet has no separate transaction key at deploy\n});\n\nconst address = await creator.deriveZkapAddress(); // factory.calcAccountAddress eth_call\n```\n\n`ZkapCreator` extends `ZkapBuilder`, and `deriveZkapAddress()` has already set both `initCode` and `sender` — so the same instance sends the wallet's first UserOp, and that op deploys it. Use `ZkapCreator` for the first op and plain `ZkapBuilder` after that.\n\n## Signers\n\n### AddressKeySigner\n\nSigns with one or more EOA private keys. Useful for testing or server-side flows.\n\n```typescript\nimport { AddressKeySigner } from '@baerae/zkap-aa';\n\nconst signer = new AddressKeySigner([privateKey]);\n```\n\n### PasskeySigner\n\nSigns with a WebAuthn credential. Provide a `verifyWithPasskey` callback that calls\n`navigator.credentials.get` and returns the assertion response. The txKey slot the\nsignature goes into is not always 0 — read it with\n`(await reader.getPasskeys(address, { credentialId })).mine?.index`\n(see [Reading account state](#reading-account-state)).\n\n```typescript\nimport { PasskeySigner } from '@baerae/zkap-aa';\n\nconst signer = new PasskeySigner(\n  credentialId,\n  async (credentialId, challenge) => {\n    const assertion = await navigator.credentials.get({\n      publicKey: {\n        challenge: Buffer.from(challenge, 'base64url'),\n        allowCredentials: [{ type: 'public-key', id: Buffer.from(credentialId, 'base64url') }],\n        userVerification: 'required',\n      },\n    }) as PublicKeyCredential;\n\n    const response = assertion.response as AuthenticatorAssertionResponse;\n    return {\n      response: {\n        signature: Buffer.from(response.signature).toString('base64url'),\n        authenticatorData: Buffer.from(response.authenticatorData).toString('base64url'),\n        clientDataJSON: Buffer.from(response.clientDataJSON).toString('base64url'),\n      },\n    };\n  }\n);\n```\n\n### ZkOidcSigner\n\nSigns with a ZK proof of an OIDC id_token. The user's identity is never revealed\non-chain — the proof shows they hold a valid token without exposing it.\n\nThis signer performs **no network calls and never touches an id_token**. It takes\na finished proof and encodes it into the UserOperation signature. Producing that\nproof — collecting the logins, fetching JWKS, running the circuit — is the job of\nwhatever backend you operate; the raw id_token must never reach the client.\n\n```typescript\nimport { ZkOidcSigner } from '@baerae/zkap-aa';\n\nconst signer = new ZkOidcSigner();\n\nsigner.setProofData({\n  // uint256[6]: hanchor, h_ctx, root, h_sign_userop, lhs, h_aud_list\n  sharedInputs,\n  // K entries each, one per proof\n  jwtExpList,\n  partialRhsList,\n  // K x 8 Groth16 proofs\n  proofs,\n});\n\n// signUserOpHash re-checks the binding itself:\n//   sharedInputs[3] === userOpHash mod SNARK_SCALAR_FIELD\n// so a proof cannot be replayed against a different UserOperation.\nconst signature = await signer.signUserOpHash(userOpHash);\n\n// Drop the proof once used — it is single-use material.\nsigner.destroy();\n```\n\nAll values are decimal strings and are range-checked against the BN254 scalar\nfield; a malformed proof throws `AaOperationError` with\n`SIGNER_PROOF_INVALID` rather than producing an unusable signature.\n\n## Batch transactions\n\n`setExecuteBatchCallData` puts several calls into one UserOperation. Everything else — `autoFillUserOp`, PVG calibration, signing, submission — is identical to Quick Start step 2.\n\n```typescript\nbuilder\n  .setSender(WALLET_ADDRESS)\n  .setExecuteBatchCallData(\n    [tokenAddress, recipient],  // to\n    ['0', '1000000000000000'],  // value, in wei\n    [approveCallData, '0x'],    // data\n    signer.keyTypes,\n  );\n```\n\nAll three arrays must be the same length and in the same order — the calls execute sequentially, and a revert in any one reverts the whole UserOperation.\n\n## preVerificationGas calibration\n\n`autoFillUserOp()` leaves a conservative `preVerificationGas`. EntryPoint charges PVG in FULL — anything declared above the bundler's floor is paid and never refunded, and anything below it is rejected at submission — so `applyBundlerPreVerificationGas()` sets what the bundler actually requires plus a margin (default `x1.10 + 15,000`).\n\n```typescript\nawait builder.autoFillUserOp();\n\n// ORDER MATTERS:\n//  1. after autoFillUserOp() — nonce / initCode / callData / signature must be final;\n//  2. after the final callGasLimit — the EIP-7623 branch reads it;\n//  3. BEFORE getUserOpHash() — preVerificationGas is part of the hash.\nbuilder.applyBundlerPreVerificationGas();\n\nconst userOpHash = builder.getUserOpHash(); // safe to sign now\n```\n\nThe signature present when you call it must already have the byte length of the REAL signature — that is what the dummy signature `autoFillUserOp()` installs is for. The bundler recomputes its floor from the bytes you submit, so a length that changes between calibration and submission invalidates the result.\n\n> **Not compatible with a builder-configured paymaster.** When `paymaster` is set on `ZkapBuilder`, `autoFillUserOp()` performs the paymaster handoff itself and the paymaster signs a digest that includes `preVerificationGas`. Changing PVG afterwards invalidates that signature. Use a conservative multiplier on paymaster-sponsored ops instead.\n\nCalibrated against Pimlico alto's **execution** component only. On chains where alto adds an L2 data-availability component (`op-stack`, `arbitrum`, `mantle`, `etherlink`, `citrea`, `monad`) supply it explicitly, or keep a conservative multiplier:\n\n```typescript\nbuilder.applyBundlerPreVerificationGas({ extraComponent: 40_000n });\n```\n\nOther options: `marginPercent` (default `110n`) and `marginAbsolute` (default `15000n`). The underlying functions are exported for direct use — `calcAltoRequiredPvg(userOp, opts)` and `calibrateBundlerPvg(userOp, opts)`.\n\n## Gas Sponsorship (Paymaster)\n\nPass a `paymaster` config to `ZkapBuilder` to sponsor gas or accept ERC-20 payment:\n\n```typescript\nimport { ZkapBuilder, PaymasterMode } from '@baerae/zkap-aa';\n\nconst builder = new ZkapBuilder({\n  chainId: CHAIN.chainId,\n  entryPoint: CHAIN.entryPoint,\n  enUrl: CHAIN.rpcUrl,\n  paymaster: {\n    serverUrl: 'https://paymaster.example.com',\n    paymasterAddress: '0xPaymasterContractAddress',\n    chainId: CHAIN.chainId,\n    mode: PaymasterMode.VERIFYING, // or PaymasterMode.ERC20\n    // tokenAddress: '0x...'       // required for ERC20 mode\n  },\n});\n```\n\n`autoFillUserOp()` fetches and installs the paymaster signature itself when this config is present — do not call `applyBundlerPreVerificationGas()` on a sponsored op (see above).\n\n## Reading account state\n\n`AccountReader` reads a deployed ZkapAccount over plain JSON-RPC — no bundler, no server. Give it exactly one transport:\n\n```typescript\nimport { AccountReader } from '@baerae/zkap-aa';\n\n// 1. Let the reader build an ethers JsonRpcProvider.\n//    chainId is optional but worth it — it sets staticNetwork and skips the eth_chainId probe.\nconst reader = new AccountReader({ rpcUrl: CHAIN.rpcUrl, chainId: CHAIN.chainId });\n\n// 2. Reuse an ethers Provider you already have (BrowserProvider, a shared JsonRpcProvider, …).\nconst reader = new AccountReader({ provider });\n\n// 3. Bring your own eth_call — a proxy, a relay, a rate-limited gateway.\nconst reader = new AccountReader({\n  call: ({ to, data }) => proxy.ethCall({ to, data }), // must throw on any error — see below\n});\n\nawait reader.isDeployed(WALLET_ADDRESS);   // false for a counterfactual address (forms 1 and 2 only)\nawait reader.getBalance(WALLET_ADDRESS);   // native balance in wei, as a string (forms 1 and 2 only)\n```\n\n`isDeployed()` and `getBalance()` need `eth_getCode` / `eth_getBalance`, so they work only with the first two forms; in `call` mode read `deployed` from `readTxKeySlots()` or `getPasskeys()` instead.\n\nA `call` implementation **must throw** on a transport failure, HTTP error or JSON-RPC `error` — never resolve to `\"0x\"`. The reader treats `\"0x\"` as \"a successful call to an address without code\", which is how it detects an undeployed wallet and a chain without Multicall3; a transport that swallows errors into `\"0x\"` would make a dead node look like a missing wallet. `ethers.Provider.call` and any proxy that throws on a JSON-RPC `error` satisfy this.\n\n### Passkeys registered as txKeys\n\n```typescript\nconst result = await reader.getPasskeys(WALLET_ADDRESS, {\n  service: {\n    rpId: 'zkap.app',\n    // The same app registers under a different origin per platform — list every one it signs from.\n    origins: ['https://zkap.app', 'android:apk-key-hash:<base64url-sha256-of-signing-cert>'],\n  },\n  credentialId: localPasskeyId,  // base64url — the value you hand to PasskeySigner\n  knownRpIds: ['pay.ifez.app'],  // optional: label other services' keys with their rpId\n});\n\nif (!result.deployed) { /* no wallet yet — not \"no keys\" */ }\n\nresult.mine?.index           // slot to pass to ZkapBuilder.setSignature([index], …)\nresult.myService             // rpId AND origin match\nresult.sameRpIdOtherOrigin   // same rpId, an origin you did not list (e.g. another platform of your app)\nresult.otherServices         // another service's passkeys\nresult.passkeys[0].publicKey // { x, y, cose, jwk } — hex coordinates, COSE (ES256) bytes, JWK\nresult.unreadable            // WebAuthn slots whose key data failed to decode — non-empty ⇒ don't conclude \"not registered\"\nresult.truncated             // more slots than the read window ⇒ don't conclude \"no other keys\"\nresult.readVia               // \"multicall\" | \"direct\" — \"direct\" on a chain that has Multicall3 means the transport misbehaved\n```\n\n- \"My service\" is strict: a key counts only when its `allowedRpIdHash` equals `sha256(rpId)` **and** its `allowedOriginHash` equals `keccak256(origin)` for one of `origins`. `origins` takes a string or an array.\n- Any number of keys costs two `eth_call`s via Multicall3. On a chain without Multicall3 the reader confirms its absence with `eth_getCode` (provider modes) and falls back to one call per slot, in parallel; `readVia` tells you which path served the read.\n- To rebuild the txKey list with `TxKeyHelper.buildReplaceTxKeyByRpId`, pass `result.txKeys` straight in and resolve origins from the classified keys — `(hash) => result.passkeys.find((k) => k.originHash === hash)?.origin`. The helper needs the plaintext origin of **every** WebAuthn key; a foreign key whose origin you do not know (neither in `service.origins` nor `knownOrigins`) cannot be re-encoded.\n\n### Raw txKey slots\n\n```typescript\nimport { rpIdHashOf } from '@baerae/zkap-aa';\n\nawait reader.readTxKeySlots(WALLET_ADDRESS); // { deployed, keys, truncated, readVia }\nawait reader.getTxKeyList(WALLET_ADDRESS);   // keys only — [] for an undeployed account\nawait reader.getMasterKeyInfo(WALLET_ADDRESS);\n\n// WebAuthn keys registered for one relying party\nawait reader.findTxKeysByRpId(WALLET_ADDRESS, rpIdHashOf('zkap.app'));\n```\n\nBoth txKey reads throw `AaFetchError` — `TRANSPORT` when the node cannot be reached, `RESPONSE_SHAPE` when it answers with undecodable data. An empty array means the account has no keys, never that the RPC failed. Note the asymmetry on an **undeployed** account: `getTxKeyList` returns `[]`, while `getMasterKeyInfo` throws `AaFetchError`. Use `readTxKeySlots().deployed` (or `isDeployed()` where available) to tell \"no keys\" apart from \"no wallet\".\n\n### Public key formats\n\n```typescript\nimport { toCosePublicKey, toJwkPublicKey, rpIdHashOf, originHashOf } from '@baerae/zkap-aa';\n\ntoCosePublicKey({ x, y });        // COSE_Key (ES256) hex — what a WebAuthn registration returns as credentialPublicKey\ntoJwkPublicKey({ x, y });         // { kty: 'EC', crv: 'P-256', x, y } with base64url coordinates\nrpIdHashOf('zkap.app');           // sha256(rpId)      — what the chain stores as allowedRpIdHash\noriginHashOf('https://zkap.app'); // keccak256(origin) — what the chain stores as allowedOriginHash (keccak, not SHA-256)\n```\n\n## Bundler Providers\n\n```typescript\nimport { Erc4337BundlerProvider, BundlerClient } from '@baerae/zkap-aa';\n\n// Any ERC-4337 JSON-RPC bundler (Pimlico, Alchemy, Stackup, self-hosted alto).\nconst provider = new Erc4337BundlerProvider({ rpcUrl: CHAIN.bundlerUrl });\n\n// Pimlico / alto expect the unpacked v0.7+ shape — factory + factoryData instead of\n// initCode, and individual gas fields instead of packed bytes32 values.\nconst pimlico = new Erc4337BundlerProvider({\n  rpcUrl: 'https://public.pimlico.io/v2/11155111/rpc',\n  usePimlicoFormat: true,\n});\n\nconst bundlerClient = new BundlerClient(provider);\n```\n\n`Erc4337BundlerProvider` additionally exposes `estimateUserOpGas(packedUserOp, entryPoint)` for bundlers that implement `eth_estimateUserOperationGas`. It is not part of the `BundlerProvider` interface, so call it on the provider directly.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Security\n\nTo report a vulnerability, see [SECURITY.md](SECURITY.md).\n\n## License\n\n[ISC](LICENSE) — © 2026 baerae-zkap\n","readmeFilename":"README.md"}