{"_id":"@clavestraorbital/x402-ecash","name":"@clavestraorbital/x402-ecash","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@clavestraorbital/x402-ecash","version":"0.2.0","description":"Fedimint eCash payment scheme for x402","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest","lint":"eslint src/"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./facilitator":{"types":"./dist/facilitator/index.d.ts","default":"./dist/facilitator/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"}},"keywords":["x402","ecash","fedimint","payments","ai-agents","bearer-tokens"],"author":{"name":"Clavestra Orbital","email":"dev@clavestra.ai"},"license":"MIT","devDependencies":{"@types/node":"^22.0.0","@x402/core":"^2.7.0","typescript":"^5.7.0","vitest":"^4.1.0"},"peerDependencies":{"@x402/core":">=2.0.0"},"gitHead":"1b1f528bd09ebda13e91482f255eefcebfdb3b20","_id":"@clavestraorbital/x402-ecash@0.2.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-f9W2ybG9wZUhLfUWlIw5oUK6pAbTJZzyCC9EAL+4u9BGNBwNCgRugR9/e3QMqbog/qJmsbPWrS0dhRWrIf5QzA==","shasum":"bcb41631264333784944b8df98a5257da3ae87cd","tarball":"https://registry.npmjs.org/@clavestraorbital/x402-ecash/-/x402-ecash-0.2.0.tgz","fileCount":38,"unpackedSize":54463,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICsStz4ouuXmK672yvzfvozNtfppdVMzdGJQbSM97M4mAiEA3H7Y1QdVBqpX37PyCeaFXLO1Q8WYLFinECDqhZfNtVQ="}]},"_npmUser":{"name":"clavestraorbital","email":"vincent.soons@clavestra.com"},"directories":{},"maintainers":[{"name":"clavestraorbital","email":"vincent.soons@clavestra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/x402-ecash_0.2.0_1775838014793_0.8194999877016609"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T16:20:14.671Z","0.2.0":"2026-04-10T16:20:14.946Z","modified":"2026-04-10T16:20:15.232Z"},"maintainers":[{"name":"clavestraorbital","email":"vincent.soons@clavestra.com"}],"description":"Fedimint eCash payment scheme for x402","keywords":["x402","ecash","fedimint","payments","ai-agents","bearer-tokens"],"author":{"name":"Clavestra Orbital","email":"dev@clavestra.ai"},"license":"MIT","readme":"# @clavestraorbital/x402-ecash\r\n\r\nFedimint eCash payment scheme for [x402](https://github.com/coinbase/x402). Accept and pay with eCash via HTTP 402.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @clavestraorbital/x402-ecash\r\n```\r\n\r\n## Quick Start\r\n\r\n### Server (accept eCash payments)\r\n\r\n```typescript\r\nimport { registerExactEcashScheme } from \"@clavestraorbital/x402-ecash\";\r\n\r\nconst scheme = registerExactEcashScheme({\r\n  clientdUrl: \"http://localhost:5000\",\r\n  clientdPassword: \"your-password\",\r\n  federationId: \"your-federation-id\",\r\n});\r\n```\r\n\r\n### Client (pay with eCash)\r\n\r\n```typescript\r\nimport { ExactEcashClient } from \"@clavestraorbital/x402-ecash/client\";\r\n\r\nconst client = new ExactEcashClient({\r\n  clientdUrl: \"http://localhost:5000\",\r\n  clientdPassword: \"your-password\",\r\n  federationId: \"your-federation-id\",\r\n});\r\n\r\nconst payload = await client.createPaymentPayload(paymentRequirements);\r\n```\r\n\r\n## How It Works\r\n\r\n1. Agent requests a resource\r\n2. Server returns `402 Payment Required` with eCash payment requirements\r\n3. Agent spends eCash notes via `fedimint-clientd`\r\n4. Agent sends OOBNotes in `PAYMENT-SIGNATURE` header\r\n5. Server reissues notes against the federation (atomic verify + settle)\r\n6. Server returns the resource\r\n\r\nNo Lightning. No channels. No facilitator. Server redeems directly.\r\n\r\n## Architecture\r\n\r\nThree independent scheme classes implementing `@x402/core` interfaces:\r\n\r\n| Class | Subpath | Role |\r\n|-------|---------|------|\r\n| `ExactEcashClient` | `@clavestraorbital/x402-ecash/client` | Spends eCash, creates payment payloads |\r\n| `ExactEcashFacilitator` | `@clavestraorbital/x402-ecash/facilitator` | Verifies and settles payments |\r\n| `ExactEcashServer` | `@clavestraorbital/x402-ecash/server` | Extracts and validates payment headers |\r\n\r\n## Network Identifier\r\n\r\n```\r\nfedimint:<federation_id>\r\n```\r\n\r\nCustom CAIP-2 style identifier. Each federation is a unique payment network.\r\n\r\n## Configuration\r\n\r\n```typescript\r\nimport type { FedimintConfig } from \"@clavestraorbital/x402-ecash\";\r\n\r\nconst config: FedimintConfig = {\r\n  clientdUrl: \"http://localhost:5000\",  // fedimint-clientd REST API\r\n  clientdPassword: \"your-password\",     // clientd auth\r\n  federationId: \"your-federation-id\",   // federation to use\r\n  timeoutMs: 30_000,                    // optional, default 30s\r\n};\r\n```\r\n\r\n## Requirements\r\n\r\n- `fedimint-clientd` running and connected to a federation\r\n- `@x402/core` >= 2.0.0 (peer dependency)\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md","_rev":"1-6e01a46c4867e957f38e756aec8acf7a"}