MPP.sol

Settlement layer connecting
Stripe-grade payments
to Solana DeFi.

Stripe brings tradfi merchant distribution. Solana brings DeFi yield distribution. mppsol is the connector — atomic on-chain settlement for payments originating in EVM contracts.

2 Anchor programs deployed on Solana devnet v0.2 cross-VM demo coming via soltempo Apache-2.0

Why this exists

Stripe and Tempo Labs shipped the Machine Payments Protocol — the IETF-draft HTTP 402 standard for machine payments. The Solana Foundation shipped @solana/mpp as the official Solana implementation in March 2026, covering Solana-native HTTP-402 flows in five languages.

What neither covers: payments that originate in EVM contracts and need to settle atomically on Solana with verifiable on-chain receipts. mppsol fills that gap with on-chain Anchor programs plus a Solidity contract pattern, composed over a real cross-chain bridge (Chainlink CCIP).

The distribution thesis: Stripe owns tradfi merchant distribution; Solana owns DeFi yield distribution. mppsol is the connector. soltempo is the first concrete consumer — Solana DeFi yield account for Tempo merchants, demonstrating the thesis end-to-end.

Architecture

┌──────────────────────┐ │ Tempo / Arc / etc. │ EVM L1 (Reth-based) │ Solidity contract │ emits cross-VM settlement intent └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ Chainlink CCIP │ cross-chain message └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ mppsol_cpi │ atomically receives + settles │ (Solana Anchor) │ emits Receipt PDA bound to origin └──────────────────────┘

mppsol_session

Solana Anchor program for cross-VM session payments. EVM-side payer pre-authorizes a Solana-side spending budget; off-chain debits batched and settled on-chain via Ed25519 voucher verification. Live on devnet.

mppsol_cpi

Solana Anchor program for atomic settlement. Other Solana programs CPI into it to receive cross-VM payment intents and emit Receipt PDAs that bind the settlement to its EVM origin. Live on devnet.

Tempo Solidity contract

Standardized cross-VM settlement intent emitter. Lives on Tempo (or any Reth-based EVM L1). v0.2 — coming.

CCIP integration

Bridge messaging via Chainlink CCIP — the canonical cross-chain rail Tempo activated at mainnet. v0.2 — coming.

Relationship to @solana/mpp

@solana/mpp owns Solana-native HTTP-402 payments. mppsol owns cross-VM settlement. They compose for users who need both.

LayerOwner
HTTP 402 wire protocol on Solana@solana/mpp (Foundation)
Solana payment session SDK@solana/mpp
Cross-VM settlement (EVM ↔ Solana)mppsol
Cross-chain messagingChainlink CCIP

mppsol does not depend on @solana/mpp at v0.1 (on-chain Anchor programs only — no npm dependency surface). A v0.2 TS SDK will depend on it (pinned exact version, types wrapped) where the cross-VM flow needs HTTP-402 composition.

v0.1 status — honest scorecard

CapabilityStatusNotes
mppsol_session Anchor program✓ on devnetPDA escrow, Ed25519 batched settle, Open/Settle/Topup/Revoke/Close lifecycle
mppsol_cpi Anchor program✓ on devnetAtomic settlement + Receipt PDA emission
Anchor tests✓ 12 passingLocalnet integration suite
Spec documents⚠ being rewrittenCurrently HTTP-402-era; cross-VM rewrite in progress
Tempo Solidity contracts⏳ planned v0.2Standardized cross-VM intent emitter
Chainlink CCIP integration⏳ planned v0.2Bridge messaging layer
End-to-end cross-VM demo⏳ planned v0.2Via soltempo
@mppsol/core, /server, /agent npm packages⚠ deprecatedUse @solana/mpp. Packages remain published at 0.1.0-draft.4 for existing consumers.
Mainnet Anchor deployment⏳ pendingAudit + multisig transition of upgrade authority

On-chain (Solana devnet)

ProgramID
mppsol_session B7joeuXq...VdfbI
mppsol_cpi 624xocts...AY14j
test_consumer test-only 65ndFCiY...y3Ex

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

Repositories

RepoWhat it isStatus
mppsol/spec This repo — cross-VM settlement spec + landing site at mppsol.org active
mppsol/cpi Two Anchor programs deployed on devnet active
mppsol/soltempo First consumer — Solana DeFi yield account for Tempo merchants scaffolded · v0.1 in build
mppsol/sdk TS packages — use @solana/mpp instead deprecated