{"id":47593771,"url":"https://github.com/tempoxyz/mpp-specs","last_synced_at":"2026-04-24T05:03:30.385Z","repository":{"id":345382172,"uuid":"1128606548","full_name":"tempoxyz/mpp-specs","owner":"tempoxyz","description":"Specifications for the Machine Payments Protocol - powered by the \"Payment\" HTTP authentication scheme","archived":false,"fork":false,"pushed_at":"2026-04-22T22:49:40.000Z","size":5396,"stargazers_count":64,"open_issues_count":11,"forks_count":28,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-23T00:26:45.231Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://paymentauth.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tempoxyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-05T22:26:21.000Z","updated_at":"2026-04-21T15:17:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tempoxyz/mpp-specs","commit_stats":null,"previous_names":["tempoxyz/mpp-specs"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/tempoxyz/mpp-specs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fmpp-specs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fmpp-specs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fmpp-specs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fmpp-specs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tempoxyz","download_url":"https://codeload.github.com/tempoxyz/mpp-specs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fmpp-specs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32209897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-01T17:49:32.956Z","updated_at":"2026-04-24T05:03:30.367Z","avatar_url":"https://github.com/tempoxyz.png","language":"Python","funding_links":[],"categories":["Commerce protocols"],"sub_categories":["MPP (Machine Payments Protocol)"],"readme":"# Machine Payments Protocol (MPP)\n\nThe open protocol for machine-to-machine payments.\n\n* **[IETF Draft](https://datatracker.ietf.org/doc/draft-ryan-httpauth-payment/)** — the core specification submitted to the IETF\n* **[Full Rendered Spec](https://tempoxyz.github.io/payment-auth-spec/)** — all specs including methods and extensions\n* **[Learn more](https://mpp.dev)**\n\n## Overview\n\nMPP lets businesses offer services to agents, apps, and humans via a standard HTTP control flow. The protocol defines a payment-method agnostic core alongside extensions for specific payment method flows, discovery, and identity.\n\n```mermaid\nsequenceDiagram\n    participant Client\n    participant Server\n\n    Client-\u003e\u003eServer: GET /resource\n    Server--\u003e\u003eClient: 402 Payment Required\u003cbr/\u003eWWW-Authenticate: Payment ...\n\n    Note over Client: Client fulfills payment challenge\n\n    Client-\u003e\u003eServer: GET /resource\u003cbr/\u003eAuthorization: Payment credential\n    Server--\u003e\u003eClient: 200 OK\n```\n\n1. **Client** requests a protected resource\n2. **Server** responds with `402 Payment Required` and a `WWW-Authenticate: Payment` challenge describing what payment is needed\n3. **Client** fulfills the payment (off-band, via the specified payment method)\n4. **Client** retries the request with an `Authorization: Payment` credential proving payment\n5. **Server** validates the credential and grants access\n\n## Design Principles\n\nMPP is designed to be simple, secure, and performant, holding the following design principles as guides:\n\n* **Extensible core**: Minimal protocol designed for safe extension.\n* **Network agnostic and multi-rail**: Designed to support a number of payment networks and settlement layers, including bank rails, credit cards, and stablecoins.\n* **Currency agnostic**: No implicit advantages for any currency or asset.\n* **Durable by design**: All designs follow web standards and are designed for security and replay protection as first class concerns.\n\nSee [STYLE.md](STYLE.md) for the full design principles and RFC writing conventions.\n\n## Architecture\n\nThe specification is modular, separating stable protocol mechanics from evolving payment ecosystems:\n\n* **[Core](specs/core/)**: HTTP 402 semantics, headers, IANA registries.\n* **[Intents](specs/intents/)**: Abstract payment patterns—charge, authorize, subscription. Define *what* kind of payment without specifying *how*.\n* **[Methods](specs/methods/)**: Concrete implementations for specific networks (Tempo, Stripe, ACH).\n* **[Extensions](specs/extensions/)**: Optional protocol additions, such as discovery and identity.\n\n## Contributing\n\nThe Machine Payments Protocol specification is currently maintained by the following organizations:\n\n* [Tempo Labs](https://tempo.xyz)\n* [Stripe](https://stripe.com)\n\nWe welcome contributions from a wide variety of individuals and organizations.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for building instructions and contribution guidelines.\n\n## License\n\nSpecifications: [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/) (Public Domain)\n\nTooling: [Apache 2.0](LICENSE-APACHE) or [MIT](LICENSE-MIT), at your option\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempoxyz%2Fmpp-specs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftempoxyz%2Fmpp-specs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempoxyz%2Fmpp-specs/lists"}