machine payments protocol

DexterMPP on Solana

Stripe and Tempo launched MPP as the next standard for machine payments. Dexter brings it to Solana with managed settlement, gas sponsorship, and the only infrastructure that speaks both MPP and x402 on the same facilitator.

Sellers install one package. Buyers need zero SOL. The protocol runs on the same settlement engine that has processed over 25 million x402 payments across eight chains.

protocol-agnostic infrastructure

One Facilitator, Both Protocols

x402 and MPP both use HTTP 402 for machine payments. Most providers pick one. Dexter runs both on the same infrastructure. Same fee payer wallets. Same RPC connections. Same security validation. A seller on Dexter can accept x402 and MPP payments with a single account and a single wallet.

x402Live

8 chains. 25M+ settlements. Linux Foundation standard with Google, Stripe, and Visa backing. Dexter operates one of the most active facilitators in the ecosystem.

x402 Facilitator
MPPLive

Solana managed settlement. IETF draft standard co-authored by Stripe and Tempo. Charge mode with fee sponsorship. Sessions coming soon.

MPP Quick Start

MPP can express x402 payments natively. Services built on x402 can accept MPP-formatted payments without code changes. Dexter handles both directions.

managed settlement

What You Don't Run

The Solana Foundation's solana-mpp-sdk lets you self-host MPP settlement. That means operating RPC endpoints, funding fee payer wallets with SOL, securing signing keys, simulating transactions, handling retries, and monitoring balances. Or you install one package and Dexter does all of it.

You run it (solana-mpp-sdk)@dexterai/mpp
Solana RPC connectionsYou provision and manage RPC endpoints with failoverDexter
Fee payer walletYou fund a wallet with SOL and manage its balanceDexter
Key managementYou secure a signing key on your serverDexter
Transaction simulationYou simulate before broadcast to catch failuresDexter
Broadcast + confirmationYou send, poll for confirmation, handle retriesDexter
Blockhash expiryYou track lastValidBlockHeight and re-sign if expiredDexter
Fee payer monitoringYou alert when SOL runs lowDexter
Security policyYou decide which programs and compute limits to allowProgram allowlists, CU caps, fee payer isolation
coming soon

Managed Sessions on Solana

MPP sessions let agents deposit funds once and stream thousands of micropayments with only two on-chain transactions. Open a session, exchange off-chain vouchers at microsecond speed, settle once when done. Two transactions regardless of whether ten or ten thousand payments occurred in between.

Dexter is building managed session infrastructure on Solana. Non-custodial. Buyers retain fund ownership through smart wallet delegation with on-chain enforced spend limits, time expiry, and revocability. Dexter manages the session lifecycle, signs vouchers, and sponsors all gas. Sellers change nothing.

Non-custodial

Buyers keep their funds in a smart wallet with a scoped, revocable delegation to Dexter. On-chain enforced spend limits and TTL. Buyer can revoke access at any time.

Gas-free

Dexter sponsors gas on both the session open and close transactions. Voucher exchanges during the session are off-chain. Buyers need zero SOL for the entire session lifecycle.

Solana-native

Tempo's L1 handles sessions natively but cannot reach Solana. Dexter brings managed sessions to the chain where most x402 volume already settles.

how charge mode works

Per-Request Settlement

Charge mode settles each payment individually. The seller's server calls two Dexter endpoints. Everything else is handled: security validation, fee payer co-signing, Solana simulation, transaction broadcast, and on-chain confirmation.

1. Challenge

Client requests a resource. The seller's server asks Dexter for a fee payer address and a fresh blockhash, then returns a 402 challenge with payment details.

2. Client Signs

The client builds a USDC TransferChecked transaction using the fee payer and blockhash from the challenge. It partially signs with transfer authority only. The client never needs SOL.

3. Settlement

Dexter validates the transaction against its security policy, co-signs as fee payer, then submits to Solana for simulation, broadcast, and confirmation.

4. Receipt

Dexter returns the transaction signature and a settlement proof. The seller checks the proof against the challenge and serves the paid content with an MPP receipt.

integrate

Quick Start

npm install @dexterai/mpp

import crypto from 'node:crypto';
import { Mppx } from 'mppx/server';
import { charge } from '@dexterai/mpp/server';

const mppx = Mppx.create({
  secretKey: crypto.randomBytes(32).toString('hex'),
  methods: [charge({ recipient: 'YourSolanaWallet...' })],
});

app.get('/api/data', async (req, res) => {
  const result = await mppx.charge({
    amount: '10000', // 0.01 USDC
    currency: 'USDC',
  })(toWebRequest(req));

  if (result.status === 402) return sendChallenge(res, result);
  return sendWithReceipt(res, result, { data: 'paid content' });
});
See all four examples on GitHub
trust model

Security

Settlement Proof

Every successful response includes the verified recipient, amount, and asset. The SDK checks these match your challenge before issuing a receipt. No RPC needed.

On-Chain Verification

Pass verifyRpcUrl to independently fetch and verify the transaction after settlement. Trustless. Adds ~1-2 seconds.

Fee Payer Isolation

Dexter's fee payer can only sign for gas. It never appears in any instruction's accounts. ATA creation is blocked to prevent rent drain.

settlement api

Endpoints

x402.dexter.cash/mpp/*Settlement API
POST /mpp/prepare

Get fee payer address and fresh blockhash for challenge generation.

POST /mpp/settle

Submit signed transaction for co-signing, simulation, broadcast, and confirmation.

GET /mpp/stats

Live settlement statistics. Powers the stats display on this page.

before you start

Prerequisites

  • Recipient wallet must have a USDC token account. Any wallet that has ever held USDC already has one.
  • Buyers need USDC, not SOL. Dexter sponsors all transaction fees.
  • Supported networks: mainnet-beta and devnet.
  • USDC only. Mainnet: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Devnet: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU.
resources

Links