v0.1 — Beta
What MPPPal is. Not a wallet app. Not a DeFi protocol. MPPPal is the API layer that makes money movement a programmable primitive for AI agents — the same way Stripe made card payments a programmable primitive for the web.

What MPPPal does

AI agents can browse the web, run code, and orchestrate complex tasks. The moment a task requires money to move — paying for an API call, compensating a sub-agent, settling a compute invoice — the agent hits a wall. Payment systems were built for humans. MPPPal removes that assumption.

MPPPal gives every agent:

  • A wallet — a USDC account on Solana, provisioned via a single API call, with a human-readable handle and a Solana public key
  • A spending policy — per-transfer caps, daily budgets, counterparty allowlists, category controls, enforced on-chain by the MPPPal Solana program
  • An on-chain ledger — every settled payment is a Solana transaction, permanently verifiable on Solana Explorer
  • MPP compatibility — agents pay any MPP-compliant service provider automatically, without per-integration setup

How payments work

MPPPal implements the Machine Payments Protocol (MPP) — an open HTTP 402-based standard co-authored by Stripe and Tempo. When an agent calls a paid service, MPPPal intercepts the payment challenge and resolves it transparently:

text
1. Agent calls  GET https://api.someservice.xyz/inference
2. Service returns  HTTP 402  +  WWW-Authenticate: Payment  challenge
3. MPPPal SDK intercepts — checks wallet balance and active policy
4. If policy allows: signs payment credential, retries request
5. Service returns resource  +  Payment-Receipt  header
6. MPPPal batches receipts → on-chain settlement on Solana

To the agent's application logic, this is invisible. The agent makes an HTTP request. The rest is infrastructure.

Core primitives

Quick example

Wrap any HTTP client — MPPPal handles all MPP payment challenges automatically:

typescript
import { MPPPal } from "@mpppal/sdk";

const agent = new MPPPal.Agent({
  wallet: process.env.MPPPAL_WALLET_KEY,
  policy: "default",
});

// Automatic MPP payment on HTTP 402 — agent logic unchanged
const client = agent.createHttpClient();
const result = await client.get("https://api.someservice.xyz/inference");

// Payment happened transparently. Receipt is on Solana.

Or use the REST API directly to provision a wallet and make a direct transfer:

bash
# 1. Provision a new agent wallet
curl -X POST https://api.mpppal.com/v1/accounts \
  -H "Authorization: Bearer $MPPPAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "research-agent-prod"}'

# → returns account_id, solana_address, usdc_token_account

# 2. Send USDC to another agent or service
curl -X POST https://api.mpppal.com/v1/transfers \
  -H "Authorization: Bearer $MPPPAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "acct_01j8...",
    "to": "acct_02k9...",
    "amount": "12.50",
    "memo": "Compute task #88 — data fetch completed",
    "idempotency_key": "task-88-settlement"
  }'

Built on MPP and Solana

MPPPal uses the Machine Payments Protocol as its payment layer and Solana as its settlement chain. MPP handles the HTTP 402 payment negotiation between agents and services. Solana handles final settlement — sub-second confirmation, sub-cent fees, and a public transaction record anyone can verify.

<400ms
Settlement finality
<$0.001
Per transaction
100+
MPP service providers
On-chain
Policy enforcement

Next steps