{"_id":"@ace-protocol/sdk","_rev":"5-f0fa0883ab35ac23db99c63ceb091c4c","name":"@ace-protocol/sdk","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@ace-protocol/sdk","version":"0.1.0","keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"license":"Apache-2.0","_id":"@ace-protocol/sdk@0.1.0","maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"homepage":"https://github.com/pureace/sdk-ts#readme","bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"dist":{"shasum":"510c7fcbb4695cf39efbfaeade9826e7c194c368","tarball":"https://registry.npmjs.org/@ace-protocol/sdk/-/sdk-0.1.0.tgz","fileCount":18,"integrity":"sha512-fh8/ojqs877uMr25Q7fvOfxuHHBYZdmzKzDP0+QxMEqjh7FkyqPSa7Hc7DyMPdajI7YW4l5F98y5SPVBokl85A==","signatures":[{"sig":"MEYCIQCAEtegv31kTMdo9TXRgQ1sYESjHdoCGqk5oIPwNGxjggIhAIrNEzbQK4ufiFTzaQ0HOLJJRailxK4V6hoZkXd7bwyV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69748},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bb0723c42dc2e48ef39242504404264ffee0e338","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"aceprotocol","email":"realydao@gmail.com"},"repository":{"url":"git+https://github.com/pureace/sdk-ts.git","type":"git"},"_npmVersion":"11.8.0","description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"bs58":"^6.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^25.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1773462055814_0.9479605805929394","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ace-protocol/sdk","version":"0.1.1","keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"license":"Apache-2.0","_id":"@ace-protocol/sdk@0.1.1","maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"homepage":"https://github.com/pureace/sdk-ts#readme","bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"dist":{"shasum":"cc8c52582945b034d9697c4eda14d85c42bc6aa9","tarball":"https://registry.npmjs.org/@ace-protocol/sdk/-/sdk-0.1.1.tgz","fileCount":20,"integrity":"sha512-RUFYZYn0Cu66qZnwbtEL6LvrKMjEDkdo1E6Es7SvlATjDhSCsbh4Vr+o8bXxKh5BSQsp2pScRA/T8lOAIZS5ag==","signatures":[{"sig":"MEYCIQCuB7qUgl5x9C5Hx/LvEppW4+8AzCT4VLBL+4NemZukHgIhAJ69zbF22jWd1HbVz1PUgsvm18m4RprOGaG45PaCl0EF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83662},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0499a936b6835904ccb1253154632076cf28da97","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"aceprotocol","email":"realydao@gmail.com"},"repository":{"url":"git+https://github.com/pureace/sdk-ts.git","type":"git"},"_npmVersion":"11.8.0","description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"bs58":"^6.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^25.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.1_1773540605834_0.41545624799309055","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ace-protocol/sdk","version":"0.1.2","keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"license":"Apache-2.0","_id":"@ace-protocol/sdk@0.1.2","maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"homepage":"https://github.com/pureace/sdk-ts#readme","bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"dist":{"shasum":"b88ecd860f0b488dc65e5610a61f4ce005fccbe4","tarball":"https://registry.npmjs.org/@ace-protocol/sdk/-/sdk-0.1.2.tgz","fileCount":20,"integrity":"sha512-8VSBsfEGgPmsQLQUE3XLAhMl6jwbaO4qAj7DCUUnPFr20N7vp6jY5BqWXLhoeiipssV2LYQYY9Nsfb159CxB6w==","signatures":[{"sig":"MEUCIQDPcGHoo45BAWkIijvXxRaI5fbtQz01wb5Kk+sjvZcjtgIgfvDAUPJMZe/Q7oRoFPofBu4G7Hddvwd8S4iNpysndwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84212},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b97a220734508fd74bf395612414905b9a6ea7f8","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"aceprotocol","email":"realydao@gmail.com"},"repository":{"url":"git+https://github.com/pureace/sdk-ts.git","type":"git"},"_npmVersion":"11.8.0","description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"bs58":"^6.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^25.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.2_1773634590424_0.7609933409490031","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ace-protocol/sdk","version":"0.1.3","keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"license":"Apache-2.0","_id":"@ace-protocol/sdk@0.1.3","maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"homepage":"https://github.com/pureace/sdk-ts#readme","bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"dist":{"shasum":"db7de645892ab5d2f768137a6c876bc0d15c7e44","tarball":"https://registry.npmjs.org/@ace-protocol/sdk/-/sdk-0.1.3.tgz","fileCount":23,"integrity":"sha512-3uzKqgufmmHJMWMNAgHMb95e1a8tRiN5WEUgPMCKtJZf/A53tJcXvdlcMOUuF7AOh7/E0UB/qqQCYVcwPu/GHg==","signatures":[{"sig":"MEYCIQDPr7ImEq8l12Z2Bgq2926Ao6+qui0JNs/Y0+K8lxXlqgIhAJDzpv1WtnJDNDq0f9gL599L+6ApSqH3rMCDKCbrPxRH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105021},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bcf5a325b188a959cdd40df5617560248958ad53","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"aceprotocol","email":"realydao@gmail.com"},"repository":{"url":"git+https://github.com/pureace/sdk-ts.git","type":"git"},"_npmVersion":"11.8.0","description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"bs58":"^6.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^25.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.3_1775110528702_0.5280453263631928","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@ace-protocol/sdk","version":"0.1.5","description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"sideEffects":false,"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","prepublishOnly":"npm run lint && npm run test && npm run build"},"engines":{"node":">=20.0.0"},"keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"repository":{"type":"git","url":"git+https://github.com/pureace/sdk-ts.git"},"publishConfig":{"access":"public"},"dependencies":{"@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","bs58":"^6.0.0"},"devDependencies":{"@types/node":"^25.0.0","typescript":"^5.9.0","vitest":"^4.0.0"},"license":"Apache-2.0","gitHead":"9f15dd5bd858a989237866bdde02ac4095299e0b","_id":"@ace-protocol/sdk@0.1.5","bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"homepage":"https://github.com/pureace/sdk-ts#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-1nigKdcddmYWu0zdpD2w9BxH77RHiKZWxPVywk7Qe9vaGzCh/npVkxenJTmO23f7ijnaigRyroecbWBnp/1FhQ==","shasum":"3e1a27499daaea714929fe9eaaab2ff1d6caa376","tarball":"https://registry.npmjs.org/@ace-protocol/sdk/-/sdk-0.1.5.tgz","fileCount":23,"unpackedSize":114028,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHWH8Vjhi/IGOdKANZXp9qBdJhotMyirH4tRyt93GCZJAiBM4C90QGH/AzaLH5XE19J+TwttxV1YSQIuz5ayN5NhGQ=="}]},"_npmUser":{"name":"aceprotocol","email":"realydao@gmail.com"},"directories":{},"maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.5_1782996998050_0.6668097835446374"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T04:20:55.693Z","modified":"2026-07-02T12:56:38.340Z","0.1.0":"2026-03-14T04:20:55.949Z","0.1.1":"2026-03-15T02:10:05.996Z","0.1.2":"2026-03-16T04:16:30.584Z","0.1.3":"2026-04-02T06:15:28.842Z","0.1.5":"2026-07-02T12:56:38.202Z"},"bugs":{"url":"https://github.com/pureace/sdk-ts/issues"},"license":"Apache-2.0","homepage":"https://github.com/pureace/sdk-ts#readme","keywords":["ace","protocol","agent","commerce","a2a","cryptography","e2e-encryption","digital-signature"],"repository":{"type":"git","url":"git+https://github.com/pureace/sdk-ts.git"},"description":"ACE Protocol SDK — Agent Commerce Engine for agent-to-agent commerce messaging","maintainers":[{"name":"aceprotocol","email":"realydao@gmail.com"}],"readme":"# @ace-protocol/sdk\n\nTypeScript SDK for the **ACE Protocol** (Agent Commerce Engine) — a secure, end-to-end encrypted messaging protocol for agent-to-agent commerce.\n\n## Features\n\n- **Identity Management** — Ed25519 / secp256k1 key pairs with ACE ID derivation\n- **End-to-End Encryption** — X25519 ECDH + HKDF + AES-256-GCM per-conversation encryption\n- **Digital Signatures** — Message signing and verification\n- **Structured Messages** — Typed economic flow: RFQ → Offer → Accept → Invoice → Receipt → Deliver → Confirm\n- **Thread State Machine** — Enforced message flow transitions\n- **Agent Discovery** — Registration file validation and profile management\n- **Replay Protection** — Timestamp freshness checks and replay detection\n\n## Installation\n\n```bash\nnpm install @ace-protocol/sdk\n```\n\nRequires Node.js >= 20.0.0.\n\n## Quick Start\n\n```typescript\nimport {\n  SoftwareIdentity,\n  createMessage,\n  parseMessage,\n  computeConversationId,\n  encrypt,\n  decrypt,\n} from '@ace-protocol/sdk';\n\n// Create identities for two agents\nconst alice = await SoftwareIdentity.generate('ed25519');\nconst bob = await SoftwareIdentity.generate('ed25519');\n\n// Compute a shared conversation ID\nconst conversationId = computeConversationId(\n  alice.getEncryptionPublicKey(),\n  bob.getEncryptionPublicKey(),\n);\n\n// Create and send an encrypted, signed message\nconst message = await createMessage({\n  identity: alice,\n  recipientEncPubKey: bob.getEncryptionPublicKey(),\n  type: 'rfq',\n  body: { need: 'Translate 500 words EN→FR', maxPrice: '10', currency: 'USDC' },\n  conversationId,\n});\n\n// Recipient parses and decrypts\nconst parsed = await parseMessage({\n  message,\n  recipientIdentity: bob,\n  senderEncPubKey: alice.getEncryptionPublicKey(),\n  senderSignPubKey: alice.getSigningPublicKey(),\n  senderSigningScheme: alice.getSigningScheme(),\n});\n\nconsole.log(parsed.body); // { need: 'Translate 500 words EN→FR', ... }\n```\n\n## Message Types\n\n| Category | Types |\n|----------|-------|\n| Economic | `rfq`, `offer`, `accept`, `reject`, `invoice`, `receipt`, `deliver`, `confirm` |\n| System   | `info` |\n| Social   | `text` |\n\n## API\n\n### Identity\n\n- `SoftwareIdentity.generate(scheme)` — Create a new Ed25519 or secp256k1 identity\n- `computeACEId(publicKey)` — Derive an ACE ID from a public key\n\n### Encryption\n\n- `computeConversationId(pubA, pubB)` — Deterministic conversation ID from two public keys\n- `encrypt(plaintext, recipientPubKey, identity, conversationId)` — Encrypt a payload\n- `decrypt(ephemeralPub, payload, identity, conversationId)` — Decrypt a payload\n\n### Messages\n\n- `createMessage(options)` — Build an encrypted, signed ACE message\n- `parseMessage(options)` — Decrypt, verify, and parse an ACE message\n- `validateBody(type, body)` — Validate a message body against its type schema\n\n### Discovery\n\n- `validateRegistrationFile(data)` — Validate agent registration files\n- `validateProfile(data)` — Validate agent profiles\n- `fetchRegistrationFile(aceId, options?)` — Fetch a registration file by ACE ID\n\n### Security\n\n- `checkTimestampFreshness(timestamp)` — Check if a timestamp is within acceptable bounds\n- `validateMessageId(id)` — Validate message ID format\n- `ReplayDetector` — Sliding-window replay detection\n\n### State Machine\n\n- `ThreadStateMachine` — Enforces valid economic message flow transitions\n\n## License\n\nApache-2.0 — see [LICENSE](./LICENSE) for details.\n","readmeFilename":"README.md"}