{"_id":"@algorandfoundation/ac2-sdk","_rev":"9-3d0a736e29e1d7b513edfe1d8b60482d","name":"@algorandfoundation/ac2-sdk","dist-tags":{"beta":"0.0.1-beta.0","latest":"1.0.0","next":"1.0.0-canary.7"},"versions":{"0.0.1-beta.0":{"name":"@algorandfoundation/ac2-sdk","version":"0.0.1-beta.0","keywords":[],"author":"","license":"MIT","_id":"@algorandfoundation/ac2-sdk@0.0.1-beta.0","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"dist":{"shasum":"375af6b5ad5c2487a21f6e151baeae11f50c41dc","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-0.0.1-beta.0.tgz","fileCount":3,"integrity":"sha512-pDDA+bTAMDTbqlrMszkG5xhO1Ggbzaz+sTIud2bedaPY4uWQQvG0GFtfqFp74wZ765qRYgfsL5hUE9jieTwW2g==","signatures":[{"sig":"MEUCIQCY2TlbrPqnkkoSuqCRn1bXgjhlf5yaXYEy6LnFl5+K7wIgEjuke9z7clKA5vNk4+dyZLVbKWFgXsk9u7PeUVmzhd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":563},"main":"index.js","type":"commonjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},"_npmVersion":"11.12.1","description":"ac2-sdk placeholder for Algorand","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_0.0.1-beta.0_1780921459808_0.08897293403432416","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.1":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.1","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.1","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"6756cbc00a36a0ff22ebca9e62b09894a297d385","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.1.tgz","fileCount":62,"integrity":"sha512-OYP/TpCWTLpcjWtG9+RLxMhCKFb7mQwmF2KgI/Kv/7F5vILZoSoE8jAnrbkRfjo4zylvhmI7bb4G92AGzlZM1A==","signatures":[{"sig":"MEYCIQDty/ekVEmkBS5rjciPmV5gqsJ1TFM5qSy5AheQ512KBwIhAJmfFPmYAx8Y4oITJZaxdKbVm7H2wJDhPHYNDTrC4klq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142791},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"}},"gitHead":"a819694f516ac9253eeacd3aae5e1c03c3b8f734","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.13.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.1_1780944300527_0.16797778384930462","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.2":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.2","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.2","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"1ed1b4ddb583f6c89492d4be93a954f80cca4f55","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.2.tgz","fileCount":62,"integrity":"sha512-OycLPLXoTU1dgqpHhwd7Jl8gPp01mdPIl0JRnGlu5eUdcHGzg2fkdGhols4wykvjfArCEZTdAQExFLrVThZYWg==","signatures":[{"sig":"MEYCIQC+GmjgrdovPYK3kFf/XPoJLW3y7QE7XXm+vAknObFw9AIhAKthveFsj5Xg3ltpvMsu/Qh8JOk9opqB3tSRm6y27Anw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142783},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"}},"gitHead":"0364ca6c1b55c8fa7d1ab0c87b5ea179e0a07869","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.2_1783438995595_0.21044983425347663","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.3":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.3","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.3","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"7e2e3fa5faac2057ecc255148e9350899293d4cb","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.3.tgz","fileCount":62,"integrity":"sha512-yYufzJc5YPB2IGNFGJbwKfrAXdIYQgN2lhjTgle7zRmxXeS9RWbSCYMndK/8Fhc+oeq9NsfYVcs9p4GLQjw9Ew==","signatures":[{"sig":"MEUCIQCEOVeiAQyR7cOGy5Km5itt9ARJYF59exjtVx4vEx12yQIgcljiAg5EXOBKoXZ7+/ZTC02d7C5jLDTlWv8ennDKQtA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144441},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"}},"gitHead":"19eccfbab7e3c9dc4be643a102ef33f0ceb20338","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.3_1785152002843_0.4748846958706845","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.4":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.4","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.4","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"ebbbf5d933fd58d865d86b77c86aa8694d59c636","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.4.tgz","fileCount":78,"integrity":"sha512-IA87I/hK0rGHGPDbsJ4jmRikM9ql++ujY4UHdPb8ft0UysXYupOz6ztBADO0QXhy5LvIBJPHPBqB/eabNxlIGQ==","signatures":[{"sig":"MEUCIC5UCcXGgIA9PlGGZJUeqBDOzSr8OUIyzURathwOgAVfAiEA/Z+waLV4nAeUOfal8KrXt72cP1LA/BakAoTqVa60c0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287954},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./runtime":{"types":"./dist/runtime/index.d.ts","default":"./dist/runtime/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"},"./providers/in-memory":{"types":"./dist/providers/in-memory.d.ts","default":"./dist/providers/in-memory.js"},"./providers/liquid-auth":{"types":"./dist/providers/liquid-auth.d.ts","default":"./dist/providers/liquid-auth.js"}},"gitHead":"faecd8c110c99ca919126e2aa35f177c31b71d45","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.17.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"optionalDependencies":{"@roamhq/wrtc":"^0.10.0","socket.io-client":"^4.7.5","@algorandfoundation/liquid-client":"1.0.0-canary.8"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.4_1786019111023_0.12430875255597673","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.5":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.5","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.5","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"0148848302ece9588a725b302a0406ce3bd38d6e","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.5.tgz","fileCount":78,"integrity":"sha512-jP4EWRcy9fMzE0sHMAGD+4OuYHRHRu/mcwK/VIErvZOqrdAynkLEoKG2QoD0Uku/pD4Rpf5OlaimbQQkD0XUTQ==","signatures":[{"sig":"MEYCIQCSsftwS/orXciYwGzBHcLHuop7rLn2OknR8gFjbsI6PAIhAJsvjHFTRX3CyVGSnZsWe8e70KFVaiiQYDAAx/VTEOVQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291015},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./runtime":{"types":"./dist/runtime/index.d.ts","default":"./dist/runtime/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"},"./providers/in-memory":{"types":"./dist/providers/in-memory.d.ts","default":"./dist/providers/in-memory.js"},"./providers/liquid-auth":{"types":"./dist/providers/liquid-auth.d.ts","default":"./dist/providers/liquid-auth.js"}},"gitHead":"82bc1908c09b62588cea408cc995ba521afa75fb","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"optionalDependencies":{"@roamhq/wrtc":"^0.10.0","socket.io-client":"^4.7.5","@algorandfoundation/liquid-client":"1.0.0-canary.8"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.5_1786122035727_0.3676741263972396","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.6":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.6","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.6","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"c9770631018859e4192b26d215f3ab5a3d4992bd","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.6.tgz","fileCount":78,"integrity":"sha512-2bjhaZNJctY5MhUXWfyJH5mTvK4CBbKPzCf0QQG4r/U7NsjGkE1T0coPI5a8bLd4TIGeDwhiijH0uiGG4REEmQ==","signatures":[{"sig":"MEQCIDsZofjRIVaj6cud03JRA7Es+F2lKnzAOQbXK4ikXO7eAiA1NHRMz2/7cZRNwS0ds4vQTHe2N76xKCGWK2mGCSkH8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./runtime":{"types":"./dist/runtime/index.d.ts","default":"./dist/runtime/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"},"./providers/in-memory":{"types":"./dist/providers/in-memory.d.ts","default":"./dist/providers/in-memory.js"},"./providers/liquid-auth":{"types":"./dist/providers/liquid-auth.d.ts","default":"./dist/providers/liquid-auth.js"}},"gitHead":"7c5c781fac0fd13072866c42ca4ff9062b2e0e0d","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"optionalDependencies":{"@roamhq/wrtc":"^0.10.0","socket.io-client":"^4.7.5","@algorandfoundation/liquid-client":"1.0.0-canary.8"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.6_1786371967400_0.27082564424448163","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.7":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0-canary.7","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","_id":"@algorandfoundation/ac2-sdk@1.0.0-canary.7","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"dist":{"shasum":"ca93d12a3d7fd3a9e48341f7636c4a6f43aa7430","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0-canary.7.tgz","fileCount":78,"integrity":"sha512-g8jz/aT6uXgkI5V7ItzZhDK8yFkHm0bqkHwXK2LHdK7WzE7iOIhaTTUOCDlD2t51pFpVtGwUwW8qhGuZaBaP9A==","signatures":[{"sig":"MEUCIFOZjI6TcWUVqdQKJxaxr5jSBBKRvHP28oX8D0ECyrcwAiEA1NZC/3ycJc9o2p15TiRng8l+5M8sPCpPnQ2aKQDlawE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0-canary.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":310967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./runtime":{"types":"./dist/runtime/index.d.ts","default":"./dist/runtime/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"},"./providers/in-memory":{"types":"./dist/providers/in-memory.d.ts","default":"./dist/providers/in-memory.js"},"./providers/liquid-auth":{"types":"./dist/providers/liquid-auth.d.ts","default":"./dist/providers/liquid-auth.js"}},"gitHead":"8debac374ffbeadbb7e434ad1ecccde50662bdfe","release":null,"scripts":{"dev":"tsc -p tsconfig.build.json --watch","docs":"typedoc","test":"vitest run --globals","build":"tsc -p tsconfig.build.json","release":"package-releaser","docs:watch":"typedoc --watch","test:watch":"vitest --globals","type-check":"tsc --noEmit","release:dry-run":"package-releaser --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-sdk"},"_npmVersion":"11.16.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","typedoc":"^0.28.19","typescript":"~5.8.3","@types/node":"^22.0.0","@algorandfoundation/package-releaser":"workspace:*"},"optionalDependencies":{"@roamhq/wrtc":"^0.10.0","socket.io-client":"^4.7.5","@algorandfoundation/liquid-client":"1.0.0-canary.8"},"_npmOperationalInternal":{"tmp":"tmp/ac2-sdk_1.0.0-canary.7_1786471285301_0.27273234446079275","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@algorandfoundation/ac2-sdk","version":"1.0.0","description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"license":"Apache-2.0","homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public","provenance":true},"repository":{"type":"git","url":"git+https://github.com/algorandfoundation/ac2.git","directory":"packages/ac2-sdk"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","default":"./dist/schema/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","default":"./dist/protocol/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","default":"./dist/transport/index.js"},"./signaling":{"types":"./dist/signaling/index.d.ts","default":"./dist/signaling/index.js"},"./runtime":{"types":"./dist/runtime/index.d.ts","default":"./dist/runtime/index.js"},"./providers/in-memory":{"types":"./dist/providers/in-memory.d.ts","default":"./dist/providers/in-memory.js"},"./providers/liquid-auth":{"types":"./dist/providers/liquid-auth.d.ts","default":"./dist/providers/liquid-auth.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","dev":"tsc -p tsconfig.build.json --watch","type-check":"tsc --noEmit","test":"vitest run --globals","test:watch":"vitest --globals","docs":"typedoc","docs:watch":"typedoc --watch","release":"package-releaser","release:dry-run":"package-releaser --dry-run"},"release":null,"dependencies":{"ajv":"^8.17.1"},"optionalDependencies":{"@algorandfoundation/liquid-client":"1.0.0-canary.8","@roamhq/wrtc":"^0.10.0","socket.io-client":"^4.7.5"},"devDependencies":{"@algorandfoundation/package-releaser":"workspace:*","@types/node":"^22.0.0","typedoc":"^0.28.19","typescript":"~5.8.3","vitest":"^3.2.0"},"gitHead":"35d0c70befc347da7d108d471b51b36f55e137f0","_id":"@algorandfoundation/ac2-sdk@1.0.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-lNmVx8mntzDJ3/zI+0OdxWX/xE8PZB8AkfUipJ7FqLJm55eg/JRGKM1JXnG3dedrJEpmjSx7Fi4lxlyO1l5ddw==","shasum":"90dc0c063f08a8f0b2e78b9534f9f78d2909fcc5","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-sdk/-/ac2-sdk-1.0.0.tgz","fileCount":78,"unpackedSize":310958,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-sdk@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHAOuDhfmwlIlYDdURd7MiDzHJYLv63NEvxV83FMVY+xAiEAsaIavsv2vmLqXoIo1gwBw67GeEXpPFXAJFkQQdJAbv8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3f7873c1-92e2-4f25-b047-c126e3e49d1f"}},"directories":{},"maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ac2-sdk_1.0.0_1787658095780_0.906343661180556"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T12:24:19.630Z","modified":"2026-08-25T11:41:36.270Z","0.0.1-beta.0":"2026-06-08T12:24:19.933Z","1.0.0-canary.1":"2026-06-08T18:45:00.681Z","1.0.0-canary.2":"2026-07-07T15:43:15.758Z","1.0.0-canary.3":"2026-07-27T11:33:22.982Z","1.0.0-canary.4":"2026-08-06T12:25:11.165Z","1.0.0-canary.5":"2026-08-07T17:00:35.906Z","1.0.0-canary.6":"2026-08-10T14:26:07.549Z","1.0.0-canary.7":"2026-08-11T18:01:25.448Z","1.0.0":"2026-08-25T11:41:35.926Z"},"license":"Apache-2.0","keywords":["ac2","algorand","didcomm","webrtc","agent","wallet","signing"],"description":"TypeScript SDK for the AC2 (Agentic Communication and Control) protocol.","maintainers":[{"name":"bruno.martins.algorand.foundation","email":"bruno.martins@algorand.foundation"},{"name":"dev_algorand.foundation","email":"dev+npm@algorand.foundation"},{"name":"shane-at-algo","email":"shane.mcgovern@algorand.foundation"},{"name":"joe-p","email":"joepolny@gmail.com"},{"name":"bitd13co","email":"bit@d13.co"},{"name":"krby","email":"kyle.breeding@algorand.foundation"}],"readme":"# @algorandfoundation/ac2-sdk\n\nTypeScript SDK for the [AC2 (Agentic Communication and Control) protocol](https://github.com/algorandfoundation/ac2/blob/master/ac2.md): a peer-to-peer, human-in-the-loop messaging layer that lets AI agents request signing and key operations while users keep custody of their keys.\n\nThe SDK is transport-agnostic. The same `Ac2Client` runs over WebRTC DataChannels, an in-memory loopback pair (for tests), or any custom transport implementing `Ac2Transport`.\n\n## Install\n\n```sh\nnpm install @algorandfoundation/ac2-sdk\n```\n\nThe core (`.`, `./schema`, `./protocol`, `./transport`, `./signaling`) and the\n`./providers/in-memory` channel provider have zero runtime peer dependencies\nand work in Node >= 18 and modern browsers. `./providers/liquid-auth` is\nNode-only and pulls in three heavy `optionalDependencies` — see\n[Channel providers](#channel-providers) below.\n\n## At a glance\n\n`Ac2Client` is symmetric: the same class drives both ends of an AC2 conversation.\n\n- Agent / requester side: `requestSignature`, `requestKey`.\n- Wallet / controller side: `onSigningRequest`, `onKeyRequest`.\n\nBoth connect to an `Ac2Transport` (a DataChannel, an in-memory loopback pair, or any custom implementation).\n\n### Agent side: issuing requests\n\n```ts\nimport { Ac2Client } from '@algorandfoundation/ac2-sdk';\nimport { rtcDataChannelTransport } from '@algorandfoundation/ac2-sdk/transport';\n\nconst transport = rtcDataChannelTransport(dataChannel);\nconst client = new Ac2Client(transport, { onError: console.error });\n\nconst outcome = await client.requestSignature(\n  {\n    from: 'did:key:zAgent...',\n    to: 'did:key:zWallet...',\n    body: {\n      description: 'Sign x402 payment',\n      encoding: 'base64',\n      payload: '<base64-bytes>',\n      sig_hint: 'raw-ed25519',\n    },\n  },\n  { timeoutMs: 30_000 },\n);\n\nif (outcome.kind === 'response') {\n  console.log(outcome.message.body.signature);\n} else {\n  console.warn('declined:', outcome.message.body.reason);\n}\n```\n\n### Wallet / controller side: answering requests\n\n`onSigningRequest` and `onKeyRequest` register a responder that returns a reply shape. The SDK builds the matching `ac2/SigningResponse`, `ac2/SigningRejected`, or `ac2/KeyResponse` envelope (threading `thid` and addressing `to`/`from` automatically) and sends it on the transport.\n\n```ts\nimport { Ac2Client } from '@algorandfoundation/ac2-sdk';\nimport { rtcDataChannelTransport } from '@algorandfoundation/ac2-sdk/transport';\n\nconst transport = rtcDataChannelTransport(dataChannel);\nconst wallet = new Ac2Client(transport, { onError: console.error });\n\nwallet.onSigningRequest(async (req) => {\n  const approved = await ui.promptUser(req.body);\n  if (!approved) return { kind: 'reject', reason: 'user declined' };\n  const sig = await keystore.sign(req.body.payload);\n  return {\n    kind: 'approve',\n    body: {\n      signature: sig.signature,\n      public_key: sig.publicKey,\n      address: sig.address,\n      key_type: 'account',\n    },\n  };\n});\n\nwallet.onKeyRequest(async (req) => {\n  const derived = await keystore.derive({\n    key_type: req.body.key_type,\n    derivation_path: req.body.derivation_path,\n    purpose: req.body.purpose,\n  });\n  return {\n    status: 'approved',\n    key_type: req.body.key_type,\n    material: derived.material,\n    public_key: derived.publicKey,\n    derivation_path: req.body.derivation_path,\n  };\n});\n```\n\nThe responder helpers are sugar over the type-keyed handler map plus the `buildSigningResponse` / `buildSigningRejected` / `buildKeyResponse` builders. The builders are also exported for lower-level control (see [Recipes](#recipes)).\n\n## Recipes\n\n### Receive arbitrary messages\n\n```ts\nimport { Ac2Client } from '@algorandfoundation/ac2-sdk';\n\nconst client = new Ac2Client(transport, {\n  handlers: {\n    'ac2/SigningRequest': async (msg) => {\n      // Show msg.body.description + msg.body.payload to the user, then reply\n      // with buildSigningResponse(...) or buildSigningRejected(...).\n    },\n  },\n  onUnknown: (msg) => console.warn('unhandled', msg.type),\n  onError: (err) => console.error(err),\n});\n```\n\n### Build a response by hand (controller / wallet side)\n\n```ts\nimport {\n  buildSigningResponse,\n  buildSigningRejected,\n  buildKeyResponse,\n} from '@algorandfoundation/ac2-sdk/protocol';\n\nconst response = buildSigningResponse({\n  request: incomingRequest, // for thid + addressing\n  from: 'did:key:zWallet...',\n  body: { signature, public_key, key_type: 'account' },\n});\ntransport.send(JSON.stringify(response));\n```\n\n### Decode and validate without a client\n\n```ts\nimport { decode, isSigningRequest } from '@algorandfoundation/ac2-sdk/schema';\n\nconst { message, validation } = decode(rawJson);\nif (!validation.valid) console.error(validation.errors);\nif (isSigningRequest(message)) {\n  // message is typed as AC2SigningRequest\n}\n```\n\n### Loopback transport for tests\n\n```ts\nimport { Ac2Client } from '@algorandfoundation/ac2-sdk';\nimport { createInMemoryTransportPair } from '@algorandfoundation/ac2-sdk/transport';\nimport { buildSigningResponse } from '@algorandfoundation/ac2-sdk/protocol';\nimport { isSigningRequest } from '@algorandfoundation/ac2-sdk/schema';\n\nconst [agent, wallet] = createInMemoryTransportPair();\n\nwallet.onMessage((msg) => {\n  if (isSigningRequest(msg)) {\n    wallet.send(\n      JSON.stringify(\n        buildSigningResponse({\n          request: msg,\n          from: 'did:key:zWallet',\n          body: { signature: 'sig', public_key: 'pk', key_type: 'account' },\n        }),\n      ),\n    );\n  }\n});\n\nconst client = new Ac2Client(agent);\nconst outcome = await client.requestSignature({\n  /* ... */\n});\n```\n\n## Channel providers\n\nThe SDK ships two concrete `Ac2ChannelProvider` implementations (see [EXTENDING.md](./EXTENDING.md#signaling-providers) for the interface) behind their own subpaths, so importing the core never pulls in a provider's dependencies:\n\n- `@algorandfoundation/ac2-sdk/providers/in-memory` — `InMemoryChannelProvider`. No dependencies; pairs two in-process transports directly. Useful for tests and demos.\n- `@algorandfoundation/ac2-sdk/providers/liquid-auth` — `LiquidAuthChannelProvider`. Bringup over [Liquid Auth](https://github.com/algorandfoundation/liquid-auth) + WebRTC. Node-only.\n\n`LiquidAuthChannelProvider` needs three Node-only packages — `@roamhq/wrtc` (WebRTC bindings), `socket.io-client`, and `@algorandfoundation/liquid-client` — declared as `optionalDependencies` on the SDK. They are loaded via dynamic `import()` only when `startPairing()` actually runs, so:\n\n- Every other entry point (`.`, `./schema`, `./protocol`, `./transport`, `./signaling`, `./providers/in-memory`) works even when none of them are installed (e.g. `npm install --no-optional`, or a bundler that dropped optional deps).\n- If you only need `LiquidAuthChannelProvider` for pairing, install the SDK normally (`optionalDependencies` are installed by default) or add the three packages yourself.\n- A missing package fails `startPairing()` with a clear message naming the exact package to install, instead of a raw `ERR_MODULE_NOT_FOUND`.\n\n```ts\nimport { LiquidAuthChannelProvider } from '@algorandfoundation/ac2-sdk/providers/liquid-auth';\n\nconst provider = new LiquidAuthChannelProvider({\n  origin: 'https://debug.liquidauth.com',\n  // Optional: persist the signaling session cookie across restarts. When\n  // omitted, the provider keeps it in memory for its own lifetime only — it\n  // still works, it just won't survive a restart. The SDK has no notion of\n  // \"application state\"; the caller adapts its own persistence to this shape.\n  sessionCookie: {\n    get: (requestId) => myStore.get(requestId),\n    set: (requestId, cookie) => myStore.set(requestId, cookie),\n  },\n});\n\nconst handle = await provider.startPairing();\n// Render `handle.pairing.qrPayload` however you like (QR code, deep link,\n// copyable URL, ...) — the provider does not render to a terminal or any\n// other UI; that is entirely the caller's responsibility.\nconst { transport } = await handle.connect();\n```\n\n## Runtime adapters\n\n`@algorandfoundation/ac2-sdk/runtime` is the contract a **runtime adapter** implements to plug an agent runtime into the AC2 daemon (`@algorandfoundation/ac2-cli`). The daemon owns the wallet connection; an adapter is handed inbound frames and a small host to send outbound ones, without needing to know anything about pairing, transports, or the control socket:\n\n```ts\nimport type { CreateRuntimeAdapter } from '@algorandfoundation/ac2-sdk/runtime';\n\nexport const createRuntimeAdapter: CreateRuntimeAdapter = (host, config) => ({\n  id: 'my-adapter',\n  async handleInbound(message) {\n    host.log(`got ${message.payload}`);\n    await host.send('ack');\n  },\n});\n```\n\nPublish that as an npm package and point the daemon at it (`AC2_RUNTIME=my-adapter-package`, or the `runtime.adapter` daemon option) — no changes to the daemon itself are needed. The daemon resolves adapters by short built-in name first (`socket`, the default, wraps the daemon's pre-existing control-socket routing) and falls back to `import()`-ing the string as an npm specifier otherwise. See the module JSDoc in `src/runtime/index.ts` for the full lifecycle (`start` → `onConnected` → `handleInbound` → `onDisconnected` → `stop`) and the `locked` rule.\n\n## Spec alignment\n\nThe SDK targets DIDComm v2 envelopes (per the AC2 spec's Data Model). Two guarantees worth calling out:\n\n- Single-use request/response. Both `requestSignature` and `requestKey` enforce the spec's \"bound to this specific request; single-use\" rule. The first matching response on the thread settles the waiter; subsequent ones fall through to the handler map.\n- Open extension surface. New message types defined by downstream extensions (e.g. payments, capability grants) plug into the same dispatcher via module-augmented `MessageHandlerMap` entries, with no SDK fork needed. See [EXTENDING.md](./EXTENDING.md).\n\nStreaming (raw bytes over a side channel correlated by `thid`) is intentionally out of scope of the core client. The transport layer exposes hooks (`onBinaryMessage`, `streamChannel`) so a streaming extension can build on top.\n\n## Documentation\n\n- [EXTENDING.md](./EXTENDING.md): package layout, subpath exports, custom transports, custom message types, signaling providers.\n- [`@algorandfoundation/ac2-cli`](../ac2-cli/README.md): the AC2 service that owns a wallet connection for you, with its [architecture](../ac2-cli/ARCHITECTURE.md) and [control-socket protocol](../ac2-cli/PROTOCOL.md).\n- [CONTRIBUTING.md](../CONTRIBUTING.md): repository structure, build, test, and release workflow.\n\n## License\n\nApache-2.0. See [LICENSE](../../LICENSE) in the repo root.\n","readmeFilename":"README.md","homepage":"https://github.com/algorandfoundation/ac2/tree/main/packages/ac2-sdk#readme","repository":{"type":"git","url":"git+https://github.com/algorandfoundation/ac2.git","directory":"packages/ac2-sdk"},"bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"}}