npm / mppx
mppx
What changed in mppx 0.4 to 0.15, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.
5 breaking5 security9 new APIs and options2 behavior and defaults3 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initmppx 0.159 changes
Breaking changes 4
Custom WebSocket routes must return the canonical challenge or set an explicit amount.
The CLI no longer pays when
--insecureis enabled.HTTPS hostnames are preserved for certificate validation, and local HTTPS names use the system resolver.
Standalone credential APIs now require a configured matching realm or trusted route context.
Behavior and default changes 2
Setup carries an authenticated encrypted key token in the challenge, using one persistent sealing key instead of per-request pending state.
A new subscription challenge's bound key is selected before a previously retained billing key, allowing an expired subscription to be activated again for the same payer.
Fixes and other changes 3
Expiry remains enforced before activation.
Successful charge receipts are preserved when a challenge expires during settlement, preventing a fresh payment challenge after funds moved.
JSON replacers, spacing, and escaping are preserved before payment response wrapping.
mppx 0.1410 changes
Breaking changes 1
Settles the largest accepted voucher at or below spent; throws "nothing to settle" when no accepted voucher is within spent.
New APIs and options 9
Exported for developers to use.
Exported for developers to use.
Accepts a settlementSchedule in raw token units and settles open channels whose spend crosses it, within spend, reporting them as settled.
Accepts a block number.
Accepts a Store as well as a channel store.
Accepts an idempotencyKey so retries with the same key and amount return the recorded charge without charging again; reusing the key with another amount throws IdempotencyKeyConflictError.
Returns an amount to a channel's spent at most once per key, with outcomes for credited, declined, or unknown.
Resolves the largest accepted voucher at or below spent for settlement.
Limits fee-payer-sponsored opens and top-ups to five per verified transaction signer per UTC day, counted in a Store.AtomicStore.
mppx 0.82 changes
Security 2
mppx: Gas Draining with access list
mppx: Gas Draining with padding
mppx 0.43 changes
Security 3
mppx has Stripe charge credential replay via missing idempotency check
mppx: Tempo has a session close voucher bypass vulnerability due to settled amount equality
mppx has multiple payment bypass and griefing vulnerabilities