Skip to content
@mppsol

mppsol

MPP.sol

Machine Payments Protocol — on Solana.

Stripe + Tempo Labs co-authored MPP — the IETF-draft formalization of HTTP 402 Payment Required for machine-to-machine payments. Production settlement methods today: Tempo (EVM L1), Stripe cards, Lightning. MPP.sol adds Solana — and adds a CPI primitive that no other MPP adapter has.

🌐 mppsol.org · 📦 @mppsol on npm · 🔗 Devnet deployed · ⚖️ Apache-2.0


Repositories

Repo What it is
spec RFC-style spec (5 docs) + landing site at mppsol.org
core Shared TypeScript types + canonical encodings — @mppsol/core
server HTTP middleware (Hono adapter) — @mppsol/server
agent Client SDK with a single mppFetch() call — @mppsol/agent
cpi Two Anchor programs: mppsol_session (escrow + Ed25519 batch settle) and mppsol_cpi (the CPI primitive)

Status — v0.1.1

Direct mode (one-shot HTTP 402 payment) ✅ mainnet-shippable today
Session program (Open / Topup / Revoke / Settle / Close) ✅ on Solana devnet
CPI primitive (7 instructions, including v0.1.1 Receipt PDAs) ✅ on Solana devnet
Atomic on-chain payment-binding (was v0.2 — shipped early as v0.1.1) pay_with_receipt + verify_paid_result_with_receipt + claim_receipt
Tests ✅ 109 passing across the org (37 core + 40 server + 20 agent + 12 Anchor)
Mainnet deployment ⏳ pending audit + multisig transition of upgrade authority

Devnet program IDs

IDLs are uploaded on-chain — fetch via Program.fetchIdl(programId, provider).


Why Solana

  • ~400 ms confirmation, sub-cent fees, deep native USDC liquidity.
  • Largest deployed base of agents, bots, and on-chain automation — the explicit MPP use case.
  • SPL token accounts and PDAs map cleanly onto MPP's session model.
  • Atomic multi-instruction transactions + the Ed25519 precompile pattern make off-chain-signed message verification cheap on-chain — the structural reason Solana programs can become MPP consumers via CPI, and the structural reason EVM-based MPP adapters (Tempo included) cannot match it.

Quickstart

# Server side — drop-in middleware for any Hono/Express handler
npm install @mppsol/server@next hono

# Client side — single mppFetch() call from your agent
npm install @mppsol/agent@next

Full ~60-second walkthrough in spec/DEMO.md.


Relationship to upstream MPP

MPP.sol implements the MPP wire protocol as defined by Stripe and Tempo Labs. We track the IETF draft and intend to propose a Solana settlement-method registration once the spec stabilizes.

License & maintainer

Apache-2.0 across all repositories. Maintained by @psyto.

Popular repositories Loading

  1. spec spec Public

    Machine Payments Protocol for Solana — specification

    HTML

  2. core core Public

    Shared TypeScript types and canonical encodings for MPP.sol

    TypeScript

  3. server server Public

    HTTP middleware emitting MPP 402 challenges and verifying Solana payments. Hono adapter included.

    TypeScript

  4. agent agent Public

    Client SDK for paying MPP.sol-priced HTTP resources on Solana

    TypeScript

  5. cpi cpi Public

    Solana on-chain programs for MPP.sol — session + CPI primitive

    Rust

  6. .github .github Public

Repositories

Showing 8 of 8 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…