{"_id":"@economyos-xyz/eps-1","name":"@economyos-xyz/eps-1","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@economyos-xyz/eps-1","version":"0.1.0","description":"EPS-1 — the EconomyOS Primitive Standard: the economyos-primitive.json manifest schema, a zero-config validator, and the content-address (keccak256) canonicalization used to anchor a primitive in AgentRegistry.","license":"MIT","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./economyos-primitive.schema.json":"./economyos-primitive.schema.json","./example":"./example.economyos-primitive.json"},"sideEffects":false,"keywords":["x402","economyos","eps-1","primitive","app-store","json-schema"],"dependencies":{"viem":"^2.21.26"},"devDependencies":{"@types/node":"^20.11.0","tsx":"^4.19.0","typescript":"^5.6.0"},"repository":{"type":"git","url":"git+https://github.com/CharvAI/EconomyOS.git","directory":"spec/eps-1"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"tsx --test test/*.test.ts"},"_nodeVersion":"24.18.0","_id":"@economyos-xyz/eps-1@0.1.0","dist":{"integrity":"sha512-bgsQwb/VC/4oOf2TU3T6ec0vJLH7HMC/0JwuecV9TB4Bxs+qqy7mcMHeVivRv2J7zPWtWYLfVl+BJPnNY5gnrw==","shasum":"1fa2ae65e20dfe3eaad16ef3f113e58b38439a38","tarball":"https://registry.npmjs.org/@economyos-xyz/eps-1/-/eps-1-0.1.0.tgz","fileCount":17,"unpackedSize":36275,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE6mN/0kq2sL5qars839Q77JzgdNf1ILCt0cyAIVDBwBAiEAoQuaRLbcPeX5s/s2JxewK40p9YzKR/Xhj3sigE58nxk="}]},"_npmUser":{"name":"economyos","email":"charvel.chedraui@gmail.com"},"directories":{},"maintainers":[{"name":"economyos","email":"charvel.chedraui@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eps-1_0.1.0_1784353905724_0.9997826290971863"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-18T05:51:45.575Z","0.1.0":"2026-07-18T05:51:45.852Z","modified":"2026-07-18T05:51:46.062Z"},"maintainers":[{"name":"economyos","email":"charvel.chedraui@gmail.com"}],"description":"EPS-1 — the EconomyOS Primitive Standard: the economyos-primitive.json manifest schema, a zero-config validator, and the content-address (keccak256) canonicalization used to anchor a primitive in AgentRegistry.","keywords":["x402","economyos","eps-1","primitive","app-store","json-schema"],"repository":{"type":"git","url":"git+https://github.com/CharvAI/EconomyOS.git","directory":"spec/eps-1"},"license":"MIT","readme":"# EPS-1 — the EconomyOS Primitive Standard (v1)\n\nThe minimal, ERC-style interface a third-party **primitive** implements to plug\ninto the [EconomyOS App Store](../../design-docs/PRIMITIVE_APP_STORE.md). A\nprimitive is described by one JSON manifest, `economyos-primitive.json`,\ncontent-addressed by `keccak256` over its canonical encoding. That hash is the\n`claimHash` a creator anchors on-chain with\n`AgentRegistry.attest(subject = creator, claimHash)` — the permissionless,\ntamper-evident publication record the indexer reads (zero new contracts).\n\n## Contents\n\n- [`economyos-primitive.schema.json`](./economyos-primitive.schema.json) — the\n  normative JSON Schema (draft 2020-12).\n- [`example.economyos-primitive.json`](./example.economyos-primitive.json) — a\n  valid reference manifest.\n- `src/` — the runtime contract shared by publisher and indexer:\n  - `validateEps1Manifest(manifest)` → `{ valid, errors[] }` (zero-dep).\n  - `canonicalize(value)` → deterministic, key-sorted JSON string.\n  - `eps1ClaimHash(manifest)` → `0x…` 32-byte content-address.\n\n## Why one shared package\n\nPublish-side (`@economyos-xyz/sdk`) and discovery-side (agent-api indexer) MUST\ncompute the identical content-address, or the on-chain anchor and the re-hashed\nmanifest won't match. Keeping the validator + canonicalization here — one source\nof truth — guarantees they do.\n\n## Trust\n\n`trust.tier` and effective `trust.riskCaps` in a manifest are **advisory**. The\nauthoritative tier (`unverified` default, `verified` via a curator attestation)\nand the effective per-call cap are decided by the registry/indexer, never\nself-asserted (§3 rule 5, §6).\n","readmeFilename":"","_rev":"1-cd3f7b46498b9c45e0f0a9851e8ba8fa"}