Skip to main content
MPP is an HTTP-native payment protocol for paid APIs on Abstract. At a high level:
  • the server challenges a paid request
  • the client signs a payment credential
  • the request is retried with an authorization header
  • the server settles directly on-chain

Payment modes

Charge

Use charge payments for one-off requests.
  • one signed authorization per request
  • built around ERC-3009 transfer authorization
  • no channel state to maintain

Session

Use session payments when a client will make repeated requests.
  • open a channel once on-chain
  • send cumulative off-chain vouchers after that
  • settle when the server chooses

Why use MPP

  • one protocol for one-off and repeated machine payments
  • purpose-built for agentic HTTP flows
  • lower repeated-request overhead with session channels

MPP vs x402

x402MPP
Best entry pointFastest existing pathRicher protocol surface
One-off paymentsYesYes
Session micro-paymentsNot the core modelFirst-class

Abstract package and endpoints

Package@abstract-foundation/mpp
Demohttps://mpp.abs.xyz
RepositoryAbstract-Foundation/mpp-abstract
Mainnet USDC.e0x84A71ccD554Cc1b02749b35d22F684CC8ec987e1
Testnet USDC.e0xbd28Bd5A3Ef540d1582828CE2A1a657353008C61
Escrow contract0x29635C384f451a72ED2e2a312BCeb8b0bDC0923c

Get started

Charge Payments

Integrate one-off paid requests.

Session Payments

Open channels and settle cumulative vouchers for repeated requests.