# mpp v0.10.0 - Table of Contents > Elixir implementation of the Machine Payments Protocol (MPP) — HTTP 402 payment middleware for AI agents and machine-to-machine commerce. Supports Stripe, Tempo, and generic EVM payment methods with pluggable architecture. ## Pages - [MPP](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) - [Security Policy](security.md) ## Modules - [MPP](MPP.md): Elixir implementation of the [Machine Payments Protocol](https://mpp.dev) (MPP). - [MPP.AcceptPayment](MPP.AcceptPayment.md): Parse, format, and rank the `Accept-Payment` client-preference header. - [MPP.Amount](MPP.Amount.md): Amount and decimal helpers for converting human-readable amounts to base units. - [MPP.BodyDigest](MPP.BodyDigest.md): SHA-256 body digest computation and verification. - [MPP.Challenge](MPP.Challenge.md): Payment challenge — the 402 response that tells a client what to pay. - [MPP.Client.AcceptPolicy](MPP.Client.AcceptPolicy.md): Gates `Accept-Payment` header injection on outgoing HTTP requests. - [MPP.Client.MultiProvider](MPP.Client.MultiProvider.md): Wraps multiple payment providers and dispatches to the first match. - [MPP.Client.PaymentProvider](MPP.Client.PaymentProvider.md): Behaviour for client-side payment providers. - [MPP.Client.Transport](MPP.Client.Transport.md): Behaviour for client-side transports that bridge a protocol response/request pair and the MPP payment flow. - [MPP.Client.Transport.HTTP](MPP.Client.Transport.HTTP.md): HTTP implementation of `MPP.Client.Transport` over `Req`. - [MPP.Codec](MPP.Codec.md): Shared base64url→JSON token decoding for the wire-format modules (`MPP.Credential`, `MPP.Receipt`, `MPP.Methods.Tempo.SessionReceipt`). - [MPP.Credential](MPP.Credential.md): Payment credential — the client's response to a 402 challenge. - [MPP.DID](MPP.DID.md): Decentralized identifier (DID) helpers for MPP credential sources. - [MPP.Demo.Method](MPP.Demo.Method.md): Demo payment method — accepts a magic token for local testing. - [MPP.Demo.Router](MPP.Demo.Router.md): Demo router for `mix mpp.demo` — serves a protected endpoint behind MPP. - [MPP.Errors](MPP.Errors.md): RFC 9457 Problem Details for MPP payment errors. - [MPP.Expires](MPP.Expires.md): Expiration timestamp helpers for MPP challenges. - [MPP.Headers](MPP.Headers.md): Parse and format the three MPP protocol wire-format headers. - [MPP.Hex](MPP.Hex.md): Small internal hex-string helpers shared across the payment-method and wire-format modules. - [MPP.Intents.Charge](MPP.Intents.Charge.md): Charge intent request schema — the "Intent = Schema" half of MPP. - [MPP.JCS](MPP.JCS.md): RFC 8785 JSON Canonicalization Scheme (JCS) — MPP subset. - [MPP.Mcp](MPP.Mcp.md): MCP (Model Context Protocol) payment transport helpers. - [MPP.Method](MPP.Method.md): Behaviour for pluggable payment method verification. - [MPP.Methods.EVM](MPP.Methods.EVM.md): Generic EVM payment method — verifies on-chain ERC-20 or native ETH transfers. - [MPP.Methods.Shared](MPP.Methods.Shared.md): Verification helpers shared by the payment-method modules (`MPP.Methods.EVM`, `MPP.Methods.Tempo`, `MPP.Methods.Stripe`). - [MPP.Methods.Stripe](MPP.Methods.Stripe.md): Stripe payment method — verifies payment via Stripe PaymentIntent with SPT. - [MPP.Methods.Tempo](MPP.Methods.Tempo.md): Tempo payment method — verifies payment via on-chain TIP-20 token transfer. - [MPP.Methods.Tempo.FeePayerPolicy](MPP.Methods.Tempo.FeePayerPolicy.md): Sponsor (fee-payer) gas-economics policy for Tempo transactions. - [MPP.Methods.Tempo.HostedFeePayer](MPP.Methods.Tempo.HostedFeePayer.md): Hosted Tempo fee-payer JSON-RPC fill support. - [MPP.Methods.Tempo.Proof](MPP.Methods.Tempo.Proof.md): EIP-712 proof credentials for zero-amount Tempo charge flows. - [MPP.Methods.Tempo.SessionReceipt](MPP.Methods.Tempo.SessionReceipt.md): Session-intent receipt for Tempo — returned in the `Payment-Receipt` header for session/pay-as-you-go payments. - [MPP.Plug](MPP.Plug.md): Plug middleware implementing the MPP 402 payment handshake. - [MPP.Plug.Config](MPP.Plug.Config.md): Validated configuration for `MPP.Plug`. - [MPP.Plug.MethodEntry](MPP.Plug.MethodEntry.md): Per-method configuration within a multi-method endpoint. - [MPP.Receipt](MPP.Receipt.md): Payment receipt — proof-of-payment returned in the `Payment-Receipt` header. - [MPP.Telemetry](MPP.Telemetry.md): Server-side payment observability via standard `:telemetry` events. - [MPP.Tempo.ConCacheStore](MPP.Tempo.ConCacheStore.md): Built-in ETS-based dedup store using ConCache (TTL-enabled ETS wrapper by Saša Jurić). - [MPP.Tempo.Store](MPP.Tempo.Store.md): Behaviour for transaction dedup stores used by `MPP.Methods.Tempo`. - [MPP.Verifier](MPP.Verifier.md): Transport-neutral payment credential verification. ## Mix Tasks - [mix mpp.demo](Mix.Tasks.Mpp.Demo.md): Starts a local HTTP server demonstrating the full MPP 402 payment flow. - [mix mpp.manifest](Mix.Tasks.Mpp.Manifest.md): Generates a static `api_manifest.json` from the library's descripex annotations.