Skip to content

MPP 0.2 compatibility and migration

Current contracts

This repository targets the current upstream MPP HTTP auth, charge intent, session-capable XRPL profile, discovery draft-01, and MCP transport contracts. The MPP repository is the authority for generic protocol behavior; Ripple's XRPL SDK is the interoperability reference for XRPL payloads and Payment Channels.

Clean-break changes from 0.1

0.1 form 0.2 form
xrpl:0, xrpl:1 mainnet, testnet (devnet also supported)
XRP:native XRP
CODE:issuer JSON {"currency":"CODE","issuer":"r..."} string
one assumed payment header default Authorization or selected Payment-Authorization
one challenge assumption multiple challenges plus Accept-Payment ranking
non-canonical JSON encoding RFC 8785 JCS plus unpadded base64url
reusable prepaid session credential signed cumulative XRPL PaymentChannel claim
request-usage and refill actions open, voucher, and close
receipt-specific required fields four-field core plus method extensions

Do not dual-accept legacy network, currency, or session wire values in a production 0.2 endpoint. Regenerate persisted challenge/credential objects, update both buyer and seller together, and clear or migrate state deliberately.

Discovery is advisory

Discovery draft-01 publishes x-service-info and per-operation x-payment-info. Its offer schema covers charge and session; it does not cover the separate subscription intent draft. Clients must validate the fresh runtime challenge regardless of discovery metadata.

Subscription support

The core model permits future intent tokens, but an extensible parser is not a settlement implementation. This repository does not advertise, sign, verify, or settle XRPL subscriptions.

MCP error mapping

Native MCP payment processing uses these exact JSON-RPC codes:

Condition Code
payment required -32042
payment verification failed -32043
malformed credential metadata -32602
internal payment processor failure -32603

Servers check root and MCP-nested _meta, reject conflicting placement, bind the challenge to the paid operation, and include a receipt in successful result metadata.