Modules
Elixir implementation of the Machine Payments Protocol (MPP).
Parse, format, and rank the Accept-Payment client-preference header.
Amount and decimal helpers for converting human-readable amounts to base units.
SHA-256 body digest computation and verification.
Payment challenge — the 402 response that tells a client what to pay.
Gates Accept-Payment header injection on outgoing HTTP requests.
Payment-aware MCP client orchestration.
Wraps multiple payment providers and dispatches to the first match.
Behaviour for client-side payment providers.
Built-in Stripe charge provider using Shared Payment Tokens (SPTs).
Built-in Tempo charge provider.
Payment-aware Req plugin.
Returned when payment-aware retry cannot complete a 402 challenge.
Transport-neutral challenge selection and ordering.
Behaviour for client-side transports that bridge a protocol response/request pair and the MPP payment flow.
HTTP implementation of MPP.Client.Transport over Req.
JSON-RPC implementation of MPP.Client.Transport for generic (non-MCP) RPC.
JSON-RPC implementation of MPP.Client.Transport for MCP.
WebSocket implementation of MPP.Client.Transport.
Reconnect and payment-retry policy for MPP-over-WebSocket.
Shared base64url→JSON token decoding for the wire-format modules
(MPP.Credential, MPP.Receipt, MPP.Methods.Tempo.SessionReceipt).
Payment credential — the client's response to a 402 challenge.
Decentralized identifier (DID) helpers for MPP credential sources.
Demo payment method — accepts a magic token for local testing.
Demo router for mix mpp.demo — serves a protected endpoint behind MPP.
Generates OpenAPI 3.1.0 discovery documents for MPP-enabled HTTP operations.
Parser and normalizer for the discovery specification's x-payment-info extension.
RFC 9457 Problem Details for MPP payment errors.
Expiration timestamp helpers for MPP challenges.
Parse and format the three MPP protocol wire-format headers.
Small internal hex-string helpers shared across the payment-method and wire-format modules.
Shared contract implemented by payment-intent schemas.
Charge intent request schema — the "Intent = Schema" half of MPP.
Session intent request schema — the "Intent = Schema" half of MPP for pay-as-you-go / metered sessions.
Shared recurring-subscription intent schema.
RFC 8785 JSON Canonicalization Scheme (JCS) — MPP subset.
MCP (Model Context Protocol) payment transport helpers.
Behaviour for pluggable payment method verification.
Generic EVM payment method — verifies on-chain ERC-20 or native ETH transfers.
EIP-3009 transferWithAuthorization credential for Circle USDC/EURC.
NEAR Intents charge method backed by the 1Click Swap API.
Verification helpers shared by the payment-method modules
(MPP.Methods.EVM, MPP.Methods.Tempo, MPP.Methods.Stripe,
MPP.Methods.Solana, MPP.Methods.XRPL, MPP.Methods.NearIntents).
Solana payment method — verifies native SOL and SPL token charge payments.
Parse and match Solana payment instructions for MPP.Methods.Solana.
Stripe payment method for one-time charges and recurring subscriptions.
Stripe Billing activation, renewal accounting, and cancellation for the shared subscription intent.
Tempo payment method — verifies payment via on-chain TIP-20 token transfer.
Sponsor (fee-payer) gas-economics policy for Tempo transactions.
Hosted Tempo fee-payer JSON-RPC fill support.
Tempo subscription key-authorization wire codec and verifier.
Canonical first-party machine-token (MPP Credits / machineUSD) charge routes.
EIP-712 proof credentials for zero-amount Tempo charge flows.
Session-intent receipt for Tempo — returned in the Payment-Receipt header
for session/pay-as-you-go payments.
Atomic aggregate in-flight accounting for Tempo fee sponsorship.
Tempo recurring-subscription activation and renewal.
XRPL charge verification for native XRP, issued currencies and MPTs.
Payment-channel claim message and signature verification.
Bounded XRPL Payment, PaymentChannelCreate and PaymentChannelClaim codec.
XRPL session verification over native payment channels.
Plug middleware implementing the MPP 402 payment handshake.
Validated configuration for MPP.Plug.
Per-method configuration within a multi-method endpoint.
Payment receipt — proof-of-payment returned in the Payment-Receipt header.
Server-side session credential action handlers.
State and identity for an MPP payment channel.
ETS-backed default implementation of MPP.Session.Store.
Convenience use wrapper that implements MPP.Method.verify/2 by dispatching
session credential actions through MPP.Session.Actions.
Session credential payload schema, discriminated on action.
Behaviour and dispatch helpers for pluggable session-channel persistence.
TIP-1034 Tempo Channel Reserve voucher and EIP-712 signature verification.
Single-node atomic ETS store for recurring subscriptions.
Persisted recurring-payment authority and settlement state.
Behaviour and dispatch helpers for method-neutral recurring-subscription persistence.
Server-side payment observability via standard :telemetry events.
Built-in ETS-based atomic store using ConCache (TTL-enabled ETS wrapper by Saša Jurić).
Behaviour for atomic Tempo state stores used by MPP.Methods.Tempo.
Bare JSON-RPC 2.0 payment transport (non-MCP).
Plug adapter for the bare JSON-RPC payment transport.
Server-side WebSocket adapter for JSON-RPC plus MPP payment challenges.
Transport-neutral payment credential verification.
Mix Tasks
Starts a local HTTP server demonstrating the full MPP 402 payment flow.
Generates a static api_manifest.json from the library's descripex annotations.
Generates an OpenAPI 3.1.0 discovery document from an Elixir config file.