Skip to main content

MPP (Machine Payment Protocol) Payments

Conto supports the Machine Payment Protocol (MPP) for session-based micropayments on the Tempo blockchain. MPP enables agents to open payment sessions, make incremental charges, and settle when done.

How It Works

Agent opens session  →  Makes requests (charges accrue)  →  Session closes  →  Settlement
  1. Agent calls an MPP-enabled service and receives a 402 challenge
  2. Agent pre-authorizes the session deposit through Conto policies
  3. Agent opens an MPP session with a deposit budget
  4. Agent makes requests, each consuming part of the deposit
  5. Session closes and unused deposit is returned

Pre-Authorization

Before opening an MPP session, validate against policies and budget limits:
curl -X POST https://conto.finance/api/sdk/mpp/pre-authorize \
  -H "Authorization: Bearer $CONTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 10.00,
    "recipientAddress": "0xServiceAddress",
    "resourceUrl": "https://api.service.com/stream",
    "intent": "session",
    "depositAmount": 10.00
  }'
Conto derives serviceDomain from resourceUrl, so you do not need to send it separately. Response (Approved):
{
  "authorized": true,
  "wallet": {
    "id": "wal_123",
    "address": "0xAgentWallet",
    "chainId": "4217",
    "availableBalance": 500.0
  },
  "reasons": ["Within MPP session budget", "Service domain allowed"]
}

Recording Transactions

After MPP charges are settled, record them in Conto:
curl -X POST https://conto.finance/api/sdk/mpp/record \
  -H "Authorization: Bearer $CONTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 3.50,
    "recipientAddress": "0xServiceAddress",
    "txHash": "0xabc123...",
    "resourceUrl": "https://api.service.com/stream",
    "sessionId": "mpp_session_xyz",
    "scheme": "mpp",
    "walletId": "wal_123",
    "chainId": "4217"
  }'
If you settle multiple calls together, keep the top-level fields for the aggregate settlement and send per-call detail records in batchItems:
curl -X POST https://conto.finance/api/sdk/mpp/record \
  -H "Authorization: Bearer $CONTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 3.50,
    "recipientAddress": "0xServiceAddress",
    "txHash": "0xsettlement123...",
    "resourceUrl": "https://api.service.com/stream",
    "sessionId": "mpp_session_xyz",
    "batchItems": [
      { "amount": 1.00, "resourceUrl": "https://api.service.com/stream?chunk=1", "credentialId": "cred_1" },
      { "amount": 2.50, "resourceUrl": "https://api.service.com/stream?chunk=2", "credentialId": "cred_2" }
    ]
  }'

Querying Services

View MPP services your agent has used:
GET /api/sdk/mpp/services

Budget Tracking

Check remaining MPP budget:
GET /api/sdk/mpp/budget
Pass ?sessionId=... to inspect budget consumption for a specific MPP session. If an agent has an active approved budget request, /pre-authorize returns a budgetRequest snapshot and /record decrements the remaining budget automatically.

Unified Machine Spend View

If this agent also uses x402 or multiple paid services, use the shared machine-spend endpoints for a combined view:
GET /api/sdk/service-spend/summary?protocol=mpp
GET /api/sdk/service-spend/services?protocol=mpp
See Machine Spend for the combined x402 + MPP analytics view.

MPP Policy Rules

Configure MPP-specific policies to control session-based payments. See Advanced Policies for the full rule type reference. Key rule types:
  • MPP_MAX_PER_REQUEST — Cap per individual charge
  • MPP_PRICE_CEILING — Hard price ceiling
  • MPP_SESSION_BUDGET — Maximum deposit per session
  • MPP_MAX_CONCURRENT_SESSIONS — Limit active sessions
  • MPP_MAX_SESSION_DURATION — Maximum session length
  • MPP_ALLOWED_SERVICES — Allowlist of service domains
  • MPP_BLOCKED_SERVICES — Blocklist of service domains

Supported Chain

MPP payments are currently supported on the Tempo blockchain:
PropertyValue
NetworkTempo Mainnet
Chain ID4217
CurrencyUSDC.e
Explorerhttps://explore.tempo.xyz
For Tempo Testnet and demo flows, use chain 42431 with pathUSD.

Next Steps

x402 Payments

HTTP 402 micropayments for APIs

Machine Spend

View unified x402 and MPP service spend

Advanced Policies

Configure MPP-specific policy rules