agentic-wallet-mcp 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,15 +20,23 @@ VC issuance → identity proof → pay-per-use).
20
20
 
21
21
  | Tool | Does | Input | Output (shape) |
22
22
  |---|---|---|---|
23
- | `wallet_status` | Report holder DID/address/network + client-supplied held VCs | `{ heldCredentials? }` | `{ holderDid, zetrixAddress, network, credentials }` |
24
- | `prove_identity` | Answer an x401 `PROOF-REQUEST` → return the `PROOF-RESPONSE` header to replay | `{ proofRequest, vc, revealAttribute?, issuerKeys? }` | `{ proofResponseHeader, verified, presentationId }` |
23
+ | `wallet_status` | Report holder DID/address/network + held VCs (client-supplied, or the local cache) | `{ heldCredentials? }` | `{ holderDid, zetrixAddress, network, credentials }` |
24
+ | `prove_identity` | Answer an x401 `PROOF-REQUEST` → return the `PROOF-RESPONSE` header to replay | `{ proofRequest, vc?, revealAttribute?, issuerKeys? }` | `{ proofResponseHeader, verified, presentationId }` |
25
25
  | `pay_and_fetch` | Fetch a URL, auto-pay with x402 (self-pay via Wallet BE) on `402` | `{ url, method?, headers?, body? }` | `{ status, body, paymentMade, amountPaid, amountPaidHuman, asset }` |
26
- | `subscribe_and_issue` | Build the signed payload → pay x402 → MBI issues → return the VC | `{ templateId, attributes, expirationDate? }` | `{ issued, vcId, vc, txHash }` |
26
+ | `subscribe_and_issue` | Reuse a cached VC if still valid, else pay x402 → MBI issues → return the VC | `{ templateId, attributes, expirationDate?, dryRun?, forceReissue? }` | `{ issued, vcId, vc, txHash, fromCache? }` |
27
27
  | `create_holder_account` | Onboarding: manually mint an additional/replacement HSM account (the MCP already auto-creates one at startup if `ZETRIX_ADDRESS` is omitted — see Environment below) | `{ password, label?, purpose? }` | `{ zetrixAddress, holderDid, publicKeyHex, message }` |
28
28
 
29
- > The wallet **never persists VCs** — the client holds them and passes them in (e.g. `vc` on
30
- > `prove_identity`, `heldCredentials` on `wallet_status`). All Ed25519 signing goes through
31
- > Wallet BE HSM; no plaintext private keys.
29
+ > **VCs are cached locally**, keyed by `templateId`, under `~/.agentic-wallet-mcp/vc-cache/`
30
+ > (scoped per network + holder — different identities or networks never share a cache).
31
+ > `subscribe_and_issue` checks the cache before paying: a still-valid cached VC is returned
32
+ > immediately with `fromCache: true` and **no payment made**; pass `forceReissue: true` to pay
33
+ > and issue fresh regardless. `wallet_status`/`prove_identity` fall back to the cache
34
+ > automatically when you don't pass `heldCredentials`/`vc` explicitly — `prove_identity` only
35
+ > auto-selects when there's exactly one valid cached VC; with zero or several, it errors and
36
+ > asks you to pass `vc` explicitly. Explicitly passing `vc`/`heldCredentials` (including `[]`)
37
+ > always overrides the cache. Validity is read from the VC's own `validUntil` field, falling
38
+ > back to the `expirationDate` requested at issuance; a VC with neither is cached indefinitely.
39
+ > All Ed25519 signing still goes through Wallet BE HSM; no plaintext private keys.
32
40
 
33
41
  > `create_holder_account` mints a **brand-new** keypair — Wallet BE's `/account/create` has no
34
42
  > way to provision a pre-chosen address. It returns the new `zetrixAddress`/`holderDid` for you