Skip to content

Machine Payments Protocol

Preview

Native RP1 charge, payment challenge, receipt, cancellation, and refund lifecycle for machine commerce.

Updated View as Markdown

The x/mpp module is a native RP1 charge rail for small, auditable machine payments. V1 settles native Cosmos bank transfers only.

Charge lifecycle

  1. MsgCreateCharge records creator, recipient, amount, denom, realm, description, expiry, optional external ID, and optional body digest.
  2. PaymentChallenge returns MPP-ready challenge data, including the chain ID, recipient, charge ID, base-unit amount, and RP1 prefix.
  3. A gateway can turn that data into an off-chain HTTP 402 Payment Required response.
  4. MsgPayCharge checks the expected amount, denom, and recipient before transferring native coins atomically.
  5. The gateway queries the charge or receipt and returns its off-chain API, tool, data, or MCP response.

Creators can cancel charges. Authorized requesters can refund a paid charge under the module’s lifecycle rules. Query surfaces list charges by ID, creator, recipient, status, and payment challenge.

Deliberate V1 boundary

Stripe SPTs, PaymentIntents, HTTP response handling, gateway credentials, webhooks, and MCP transport stay off-chain. RP1 stores and settles the native charge reference; it is not an in-consensus Stripe integration.

Integrator checklist

  • Bind a charge to the exact service request with body_digest where appropriate.
  • Honor expiry and status; never reuse a paid or cancelled charge.
  • Verify the committed receipt before returning a paid service result.
  • Keep gateway secrets and provider credentials out of the chain transaction and browser.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close