{"_id":"@algorandfoundation/ac2-cli","_rev":"10-0fc778a60892850103c7e229e0ddc415","name":"@algorandfoundation/ac2-cli","dist-tags":{"beta":"0.0.1-beta.0","latest":"1.0.0","next":"1.0.0-canary.8"},"versions":{"0.0.1-beta.0":{"name":"@algorandfoundation/ac2-cli","version":"0.0.1-beta.0","keywords":[],"author":"","license":"MIT","_id":"@algorandfoundation/ac2-cli@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":"b7bc275f43fdb71920c86fcd2c4162da217c0049","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-0.0.1-beta.0.tgz","fileCount":3,"integrity":"sha512-Rsf7mJoPLujexxRXh3MWhzMhHNMZL96dDwpgB834bnRqpmWZGhABcRXURV3PlEyU6LkzLgZyhdEXNS0rlni52g==","signatures":[{"sig":"MEYCIQD/WvrTtRoTaZWPCZrW7YWyPBOtQpWWjAxC3gOWVz3OFAIhAPgqQfgvjYaCSELZUhfjjgEvmfaLSrlGzbKt9p0IPtIR","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-cli placeholder for Algorand","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_0.0.1-beta.0_1785518956077_0.7945634443687319","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.1":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.1","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"d2494c97938d7d8410bb3edb82cda69eea0a0b31","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.1.tgz","fileCount":144,"integrity":"sha512-DsROivo6xWzp2qOZHGGMGpHFNxZV0AOy/uE7xm0cW6mpThwHThBJjtEugL82Y/I/DbVKOL14phMUeKEcDBJ4Ag==","signatures":[{"sig":"MEUCIHMGHp2fbawbmXVZFzjNmiMdVnKJ6pP+Q4CHZz9fo0EDAiEA4rDatplV4HX3y4jA6K9UFXrqnqHVAIzq083SleSlzxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":715690},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"fd18d91837de8f7d64dced48d33f6a6bbb8ea2b4","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.17.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.4","@algorandfoundation/keystore-node":"file:vendor/algorandfoundation-keystore-node-1.0.0-canary.16.tgz"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.1_1786019130017_0.7252463600514527","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.2":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.2","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"00b6fa662aad38fc437d54a5dabb1217168e3411","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.2.tgz","fileCount":144,"integrity":"sha512-wH7TqNH9Pl7wK1iv8jbH6HfYR90i0e2L/siWE6I/YfTm2WYfGCQNK6zXGXLrrkB6tmfU73Hp1793xuqfKGSKKQ==","signatures":[{"sig":"MEUCIQCQUy+mzJb4XjVRfVIbepRkOe/c9L+jVSvCgx0vSEztDAIgBe0xwjeYW/A7/h4sCiu1kNNxTUonp0HvGo9J0OxUJ/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":715640},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"69d06eae13798a6c3aa7129531e204c6748e23b1","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.4","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.2_1786023682359_0.48833916447579995","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.3":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.3","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"d5b7e02cb8170aaa166e50c61b1e868de18de141","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.3.tgz","fileCount":160,"integrity":"sha512-u7Z+Z/NFhR7NfwwLNWFcugQLjzTDLUDq0lRkGGxZZMDEKqX4hvz4+LrAc0YaaILk8+zoFjjz1Y0pLGGEcySFBA==","signatures":[{"sig":"MEQCIFZmpWkzc9+ltsmxv9TlyIir2z7vRAe2ueXDe60HKK3DAiBpof0In/rUsrNKT8JXBonJvXrezAL73fC0RixTuDsqeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":810474},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"ca704aa4fd380aa496ad714072389c40d132e55d","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.4","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.3_1786057839377_0.3185087187644102","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.4":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.4","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"e6043f8f850b4fd985e40096e6860962516aa394","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.4.tgz","fileCount":172,"integrity":"sha512-zz4BtVO03jiw4aKFjjdALkyOx23VW/sVJG++AXPdd6SOvVytlkD3oV9iTlfz1iNGi5TVTwerNutxPS8njEmmoA==","signatures":[{"sig":"MEYCIQDv5mpWwrOSNNhAXWvo4+yvc+nW7GpdqxfqV9lEYFsz/wIhAKwKto2WyDumeQ/nOfwSi+1ERBu3WcRScV1vbAr+YVdJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":880940},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"7b2f1f2c0f90b5c9cf5e1a3c73619cc645eb0b55","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.5","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.4_1786122054776_0.6732265324516733","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.5":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.5","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"6f8de368c5a574a6deb87638f55eda5f6761ab43","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.5.tgz","fileCount":172,"integrity":"sha512-2tNVpPR3cJhkQQfg8RMwUmguSPFJjh3JCjTB7enMVE1NBqPD92kGi/yWAwKzkVvw3LI1q5GAPDO+CgFFZ54cNA==","signatures":[{"sig":"MEUCIQC8wVGkTYVwWT469Jj9xbeywo3a3KD5iIvjRqyRGvYeLAIgVkyx6v3VEe85NH1zCHvWDfoC9Gj7gzJUQ1tm6PrCybQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":898030},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"14dfa9698af5a94d0107794eb10df7dc12b3b138","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.6","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.5_1786371988476_0.09282734850075314","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.6":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.6","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"09271bf7586ca7b8d77a48051e8b91bef1d62eb5","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.6.tgz","fileCount":184,"integrity":"sha512-UV7JdMmeW+1NMgsHi8ti3DC9Ike7BvQnu+LjcpbDjd25pn0F9bxSkwKYda4EOI3w/TMNbntEfWrWRiiLyv2tqA==","signatures":[{"sig":"MEQCIF/h3+3K+bG3h++nrNjb6ga0+mOWE2ue/6sQxqwS0wvHAiBezn6MFBB9/2t9casuqM/kphCLJwkbza4GvSGrV6VY3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":942958},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"974e27c85745f1319f0cd0e86d94a16c630e63cf","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.6","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.6_1786463912626_0.975618275245625","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.7":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.7","license":"MIT","_id":"@algorandfoundation/ac2-cli@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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"1fd5f7bcd7a2fdf0edaa42eda06e45f3fa00955d","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.7.tgz","fileCount":184,"integrity":"sha512-Fidkq/1mGOG/bQ56QLY4idKnLnO99w1tgxp1h2P4+BcEro3AsR0KRIxJxW7UmofxLbNKz+v7txLe3+8Ha6LXSg==","signatures":[{"sig":"MEUCIHyT0vVC2xSV1jFsP3zQrAAzGQqMFkRYbYl7sGMSb+KOAiEA1M0sTqaav2EN/guJCQ2Zup+gmJWIJ9Ucg8G1v1p9+uo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":969446},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"c2ad5663cb240ee50d33cd3538e0a4895916ef62","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.16.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.7","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.7_1786471304266_0.9376526708259905","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-canary.8":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0-canary.8","license":"MIT","_id":"@algorandfoundation/ac2-cli@1.0.0-canary.8","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#readme","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"bin":{"ac2":"dist/cli.js"},"dist":{"shasum":"08a7b6b888829fa371751063d0bf320495c77e5e","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0-canary.8.tgz","fileCount":184,"integrity":"sha512-4NmZg6x82aowJXjSPU0+7yJsIyRvLGPIwZcu5/cHLVf9TO06xDgY/dCGwUtzm08zmhjQt4S7IVMI5i8nii83Lg==","signatures":[{"sig":"MEUCIDgddee/SppMygkqV/ha1bMgiJZR89hHCpqTH7aTvdltAiEA3DuNXzGSPzS6qwdTd7QLxh1q69XlWL8ny1Z4Y2kdZBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0-canary.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":969855},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"gitHead":"dc4747139d8afc3f8fc59c0646a4f7781ea464a2","scripts":{"test":"vitest run","build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","release":"package-releaser","test:watch":"vitest","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:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"repository":{"url":"git+https://github.com/algorandfoundation/ac2.git","type":"git","directory":"packages/ac2-cli"},"_npmVersion":"11.17.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0","@napi-rs/keyring":"^1.3.0","@algorandfoundation/ac2-sdk":"1.0.0-canary.7","@algorandfoundation/keystore-node":"1.0.0-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.0","esbuild":"^0.25.12","typescript":"~5.8.3","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","@algorandfoundation/package-releaser":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ac2-cli_1.0.0-canary.8_1787653718503_0.16349624709264998","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@algorandfoundation/ac2-cli","version":"1.0.0","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/algorandfoundation/ac2.git","directory":"packages/ac2-cli"},"bin":{"ac2":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./control":{"types":"./dist/control.index.d.ts","default":"./dist/control.index.js"},"./identity":{"types":"./dist/identity.index.d.ts","default":"./dist/identity.index.js"},"./keystore":{"types":"./dist/keystore.index.d.ts","default":"./dist/keystore.index.js"},"./session/bootstrap":{"types":"./dist/session.bootstrap.d.ts","default":"./dist/session.bootstrap.js"}},"scripts":{"build":"node scripts/bundle.mjs && tsc -p tsconfig.build.json && node scripts/bundle.mjs --flatten-dts","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest","release":"package-releaser","release:dry-run":"package-releaser --dry-run"},"dependencies":{"@algorandfoundation/ac2-sdk":"1.0.0","@algorandfoundation/keystore-node":"1.0.0-canary.1","@napi-rs/keyring":"^1.3.0","@tanstack/store":"^0.9.1","qrcode-terminal":"^0.12.0"},"devDependencies":{"@algorandfoundation/package-releaser":"workspace:*","@types/node":"^22.0.0","@types/qrcode-terminal":"^0.12.2","esbuild":"^0.25.12","typescript":"~5.8.3","vitest":"^3.2.0"},"gitHead":"e68c2bee8d63506771879f3c60702f1851a25cd8","_id":"@algorandfoundation/ac2-cli@1.0.0","bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"},"homepage":"https://github.com/algorandfoundation/ac2#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-55Vfzn1zx3fe0euQfcUFdGyccq4wBfGgBd00ildYWhnanYbqRu+6S6VPEkVATkXe+LszYwOk8x/5HK3nXfAlHA==","shasum":"111e675deafafc4174728d481ad47eff5b2e2d2a","tarball":"https://registry.npmjs.org/@algorandfoundation/ac2-cli/-/ac2-cli-1.0.0.tgz","fileCount":184,"unpackedSize":969837,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@algorandfoundation%2fac2-cli@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFdORe8KBHF0daNqojJs7Uzdl5Tlujxs0RKzM5OPOZqhAiEAlU2hCDwyaYj7+IQfouf5RJho/43ZXMweNcJKN8WoL14="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b196b6ab-99fa-4d8b-9a2b-ac2daac0d1a9"}},"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-cli_1.0.0_1787658118132_0.3753271051396001"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-31T17:29:15.820Z","modified":"2026-08-25T11:41:58.597Z","0.0.1-beta.0":"2026-07-31T17:29:16.305Z","1.0.0-canary.1":"2026-08-06T12:25:30.189Z","1.0.0-canary.2":"2026-08-06T13:41:22.555Z","1.0.0-canary.3":"2026-08-06T23:10:39.528Z","1.0.0-canary.4":"2026-08-07T17:00:54.967Z","1.0.0-canary.5":"2026-08-10T14:26:28.628Z","1.0.0-canary.6":"2026-08-11T15:58:32.790Z","1.0.0-canary.7":"2026-08-11T18:01:44.473Z","1.0.0-canary.8":"2026-08-25T10:28:38.692Z","1.0.0":"2026-08-25T11:41:58.277Z"},"license":"MIT","description":"Standalone AC2 connection service (daemon) and `ac2` command line. Owns the Liquid Auth pairing lifecycle, identity persistence, and keystore hosting so any agent (OpenClaw, Hermes, ...) can share one wallet connection.","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-cli`\n\nThe **AC2 service**: a background process that holds one connection to a mobile\nwallet, plus the `ac2` command line that manages it.\n\nPair your wallet once, and any AC2-aware agent on the machine can ask that wallet\nto sign, without ever handling your keys. The service keeps the connection alive,\nreconnects it, and stores keys in your operating system's keychain.\n\n## Install\n\n```sh\nnpm install -g @algorandfoundation/ac2-cli\n```\n\nUsing it with OpenClaw? Don't install this package at all — install the\n[OpenClaw plugin](../ac2-open-claw-reference) instead, which bundles this\nservice as a dependency. One line sets up the plugin, the bundled service,\nand wallet pairing:\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/algorandfoundation/ac2/master/install.sh | bash\n```\n\nThe script requires OpenClaw to already be installed and fails early if it\nis not — install it first with `npm install -g openclaw@latest`.\n\nTo follow canary pre-releases instead of stable releases, add the `@next`\ntag: `npm install -g @algorandfoundation/ac2-cli@next`.\n\nTo try it without installing anything:\n\n```sh\nnpx @algorandfoundation/ac2-cli --help\n```\n\nRequirements: Node.js 22 or newer, and an OS keychain (macOS Keychain, Linux\nSecret Service such as `gnome-keyring`, or Windows Credential Manager).\n\n### Platform support\n\nmacOS, Linux and Windows are all supported, with these differences:\n\n| | macOS | Linux | Windows |\n| --- | --- | --- | --- |\n| Control channel | Unix socket in `AC2_HOME` | Unix socket in `AC2_HOME` | named pipe (`\\\\.\\pipe\\ac2-daemon`, suffixed per custom `AC2_HOME`) |\n| Key storage | dedicated AC2 keychain (see Troubleshooting) | Secret Service (`gnome-keyring`, …) | Credential Manager |\n| `ac2 service install` | launchd agent (runs `AC2.app`, so macOS names it \"AC2\") | systemd user unit | not available — use `ac2 service start`, which survives the terminal |\n\n## Quick start\n\n```sh\nac2 service start     # start the background service\nac2 pair              # print a QR code, then scan it with your wallet\nac2 status            # check the connection\n```\n\nThat is the whole happy path. Approve the pairing on your phone and `ac2 status`\nreports the connected wallet.\n\nThe service keeps running after you close the terminal. It reconnects the wallet\non its own, and after a restart it waits for the same wallet to come back with no\nnew scan required.\n\n## Commands\n\n### Service lifecycle\n\n| Command | What it does |\n| --- | --- |\n| `ac2 service start` | Start the service in the background. Add `--foreground` to block instead. |\n| `ac2 service stop` | Stop it. |\n| `ac2 service status` | Show service and connection status. Exits 1 when not running. |\n| `ac2 service attach` | Follow the live log. Ctrl+C detaches and leaves the service running. |\n| `ac2 service logs [-n 50]` | Print the last N log lines. |\n| `ac2 service install` | Install an OS supervision unit (systemd user service, or launchd agent on macOS) so the service starts with your session. |\n| `ac2 service uninstall` | Remove that unit (and, on macOS, the launcher it generated). |\n\n`attach` and `logs` give you the \"reattach to a running session\" feel of `screen`\nwithout the service ever depending on a terminal.\n\n### Wallet and connections\n\n| Command | What it does |\n| --- | --- |\n| `ac2 pair` | Render a pairing QR code and wait for a wallet. Starts the service if it is not running. |\n| `ac2 status` | Live connection snapshot, service DID, active runtime, registered agents. |\n| `ac2 connections` | List remembered wallet connections. |\n| `ac2 forget [--all \\| --id <requestId>]` | Forget a connection and the agent identities that belong to it. |\n\n`ac2 pair` also works while a wallet is already connected: it reports the live\nsession and shows the invitation the service keeps armed, so you always have\nsomething scannable, and it never restarts a working connection.\n\n## Using it with OpenClaw\n\nInstall the OpenClaw plugin\n([`@algorandfoundation/ac2-open-claw-reference`](../ac2-open-claw-reference)) and\nrun `openclaw ac2 pair`. It starts this service for you and configures it to drive\nyour OpenClaw agent, so you do not have to set anything else up.\n\n## Configuration\n\nEverything has a working default. Set these only if you need to.\n\n| Variable | Purpose |\n| --- | --- |\n| `AC2_HOME` | Runtime directory for the socket, log and pidfile (default `~/.ac2`). |\n| `AC2_STATE_DIR` | Where connections, identities and keystore metadata are persisted (default `~/.openclaw`). |\n| `AC2_DAEMON_SOCKET` | Control socket path, or Windows named pipe. Defaults to `$AC2_HOME/ac2d.sock`, and on Windows to `\\\\.\\pipe\\ac2-daemon` (plus a digest of `AC2_HOME` when that is set, so profiles never share a pipe). |\n| `AC2_LIQUID_AUTH_SERVER` | Liquid Auth signaling server URL. |\n| `AC2_DEFAULT_AGENT` | Agent id inbound wallet traffic goes to (default `openclaw`). |\n| `AC2_HEARTBEAT_TIMEOUT_MS` | How long a silent wallet channel may stay open. |\n| `AC2_RUNTIME` | Which runtime adapter drives the agent: `socket` (default), `openclaw-gateway`, or an npm package name. |\n| `AC2_RUNTIME_CONFIG` | JSON config handed to that adapter. For `openclaw-gateway` it also accepts `runTimeoutMs` (how long one agent turn may run, default 300000 — x402 payments block on a wallet signature round-trip, so keep this generous) and `taskTimeoutMs` (same budget for a spawned sub-agent task, default 900000), e.g. `AC2_RUNTIME_CONFIG='{\"runTimeoutMs\":600000}'`. Values must be JSON numbers. |\n| `AC2_WAIT_FOR_RUNTIME` | Set to `0` to await a wallet even when no agent runtime is alive. |\n| `AC2_KEYRING` | macOS only. Set to `login` to store keys in the login keychain instead of the dedicated AC2 keychain (see Troubleshooting). |\n| `OPENCLAW_GATEWAY_URL` / `_PORT` / `_TOKEN` | Gateway connection for the `openclaw-gateway` adapter. Discovered from `openclaw.json` when unset. |\n\nSet them in the environment of the process that runs the service, for example\nbefore `ac2 service start`.\n\n`ac2 service install` **captures** them: a supervised service inherits nothing\nfrom your shell, so every variable above that is set at install time is written\ninto the unit (and echoed back as `environment captured: …`). Change one and\nre-run `ac2 service install`. The unit is written mode `0600`, because it can\ncontain `OPENCLAW_GATEWAY_TOKEN` or a token inside `AC2_RUNTIME_CONFIG`.\n\nOn macOS the install also generates `$AC2_HOME/AC2.app`: a launcher whose only\njob is to start the service under the name **AC2**. See Troubleshooting below.\n\n## Troubleshooting\n\n**`ac2 status` says `idle (waiting for a runtime before awaiting a wallet)`.**\nThe service will not await a wallet until an agent runtime is alive, so a\nreturning wallet is never connected to a service with nothing behind it. Start\nyour agent, or select the right runtime adapter. With OpenClaw that means running\n`openclaw ac2 pair`, which selects the gateway adapter for you.\n\n**`ac2 service logs` shows `missing scope: operator.read` / `operator.write`.**\nThe gateway accepted the connection but granted it nothing: it only binds the\nrequested operator scopes to a **device identity**, and a connect that presents\nonly a shared token is stripped of them while still answering `hello-ok`. The\nservice now signs the gateway's connect challenge with its own service key —\nthe same one behind its `did:key` service identity, kept in the keystore — and\nrefuses a handshake that came back without the scopes it needs, so this failure\nreports itself at connect time instead of on every message. If it persists,\napprove the device on the OpenClaw side (`openclaw devices`) and check that the\ntoken in `openclaw.json` (`gateway.auth.token`) matches the running gateway.\n\n**The wallet paired, but nothing is routed and the status says locked.** An agent\nstays bound to the first wallet that issued it an identity. Run `ac2 forget`\nbefore pairing a different wallet.\n\n**Nothing happens after a scan.** Check `ac2 service logs`. Pairing goes through\nthe Liquid Auth signaling server, so both the phone and this machine need to reach\nit.\n\n**`ac2` prints nothing at all after installing.** A bug in `1.0.0-canary.2` and\nearlier: the command detected \"was I run directly?\" by comparing paths in a way\nthat never matched the `node_modules/.bin/ac2` symlink npm, pnpm and `npx`\ninstall (and never matched on Windows at all), so it exited silently with status\n0. Upgrade — `npm install -g @algorandfoundation/ac2-cli`.\n\n**A supervised service ignores `AC2_STATE_DIR`.** Fixed: the units written by\n`ac2 service install` used to forward `AC2_HOME` only, so the state directory\n(keystore, identities, connections) silently fell back to `~/.openclaw`. Re-run\n`ac2 service install` with your variables exported and restart the service; the\ninstall now prints which variables it captured.\n\n**`ac2 status` says the daemon is not running while it clearly is.** Also fixed:\nstatus used to consult only the pidfile, which just the daemon started by `ac2\nservice start` writes — one supervised by launchd/systemd writes none. Liveness\nnow comes from the live control socket, with the pidfile as fallback, and\n`ac2 service start` reports an already-running service instead of spawning a\nsecond one.\n\n**`ac2 service stop` \"succeeded\" but the daemon kept running** (classic symptom:\nreinstalling the CLI, then having to `kill` the old daemon by hand). Also fixed,\ntwice over. The daemon used to rely on its event loop draining after a\n`daemon.stop`, which handles like native WebRTC peers could keep alive forever;\nit now exits its process explicitly once the graceful stop completes, with a\nfailsafe exit if the teardown itself wedges. And `ac2 service stop` no longer\nreports success on the acknowledgement alone: it waits for the process to\nactually die and escalates to SIGTERM, then SIGKILL, when it does not — also for\na supervised daemon with no pidfile, using the pid the daemon reported over the\nsocket. Note that reinstalling the CLI never restarts a running daemon by\nitself: run `ac2 service stop` around the upgrade so the next start picks up the\nnew code.\n\n**macOS asks whether \"node\" may run in the background.** That prompt (and the\nentry in System Settings → General → Login Items & Extensions) *is* the AC2\nservice: macOS names a background item after the program its launchd job runs,\nwhich used to be the bare `node` binary. `ac2 service install` now generates a\nsmall launcher, `$AC2_HOME/AC2.app`, and points the job at it, so the item shows\nup as **AC2** instead. The launcher only `exec`s the same `node … service run`\ncommand, is ad-hoc code signed as `com.algorandfoundation.ac2`, and is deleted by\n`ac2 service uninstall`.\n\nmacOS remembers the old entry, so to relabel an existing install:\n\n```sh\nlaunchctl unload ~/Library/LaunchAgents/com.algorandfoundation.ac2.plist\nac2 service uninstall\nac2 service install\nlaunchctl load ~/Library/LaunchAgents/com.algorandfoundation.ac2.plist\n```\n\nDo not delete `AC2.app` on its own — the service will not start until you re-run\n`ac2 service install`.\n\n**Keychain errors on Linux.** The service stores secrets in the Secret Service\nAPI, which needs a running keyring daemon (for example `gnome-keyring`) and an\nunlocked login keyring.\n\n**`User interaction is not allowed` on macOS.** The login keychain is locked for\nbackground processes (launchd, SSH, before login), so macOS cannot prompt to\nunlock it. The service therefore keeps its keys in a **dedicated keychain** in\nthe state directory (`ac2-keystore.keychain-db`, password in the `0600` file\n`ac2-keystore.keychain-key` next to it) that it creates and unlocks itself — no\nprompt, works headless. Entries stored in the login keychain by older versions\nare migrated over on first read. Set `AC2_KEYRING=login` to opt back into the\nlogin keychain.\n\n## Learn more\n\n- [ARCHITECTURE.md](./ARCHITECTURE.md): how the service, identities, keystore and\n  runtime adapters fit together.\n- [PROTOCOL.md](./PROTOCOL.md): the local control socket API, for building an\n  agent, a tool or your own client.\n- [`@algorandfoundation/ac2-sdk`](../ac2-sdk): the protocol SDK, including the\n  runtime-adapter contract.\n- [The AC2 specification](https://github.com/algorandfoundation/ac2/blob/master/ac2.md).\n","readmeFilename":"README.md","homepage":"https://github.com/algorandfoundation/ac2#readme","repository":{"type":"git","url":"git+https://github.com/algorandfoundation/ac2.git","directory":"packages/ac2-cli"},"bugs":{"url":"https://github.com/algorandfoundation/ac2/issues"}}