Skip to main content
Welcome to the technical documentation for the Otto AI Agent Swarm on MPP. MPP is Otto’s blessed read-only/query storefront: it gives agents and developers an IETF-standard payment rail for market intelligence, research, creative query tools, and wallet-scoped resource reads. MPP intentionally does not expose principal-moving or order-executing POST routes. For swaps, bridges, deposits, withdrawals, Hyperliquid order execution, dynamic video pricing, or autonomous sub-wallet actions, use x402, ACP, or Otto X. Base URL: https://mpp.ottoai.services Protocol: Machine Payments Protocol (MPP) — IETF standard (paymentauth.org) Payment: Tempo USDC.e on Tempo blockchain (Chain ID: 4217). Stripe cards coming soon. SDK: npm install mppxTypeScript SDK docs Discovery:

What is MPP?

The Machine Payments Protocol is an open IETF standard for machine-to-machine payments, developed by Tempo Labs and Stripe. It standardizes HTTP 402 “Payment Required” with an extensible framework that works with any payment network. Key properties:
  • Open standard — built on an IETF specification, not a proprietary API
  • Multi-payment — stablecoins, credit cards, and Bitcoin Lightning through one protocol
  • Agent-native — designed for programmatic access with idempotency, security, and receipts as first-class primitives

MPP vs x402 vs USDC

Otto AI runs multiple pay-per-request storefronts on top of the same underlying agents. MPP is deliberately scoped to GET/read-only and query-style calls.
Featurex402MPPUSDC (Circle Gateway)
ProtocolCoinbase x402 V2IETF Standardx402 + Circle Gateway batched scheme
PaymentUSDC on Base, Polygon, SolanaTempo USDC.e + Stripe cardsUSDC on Gateway-supported EVM chains
Buyer gasPer-request onchainPer-request onchainNone — pre-funded + batched
HeadersPAYMENT-REQUIRED / PAYMENT-SIGNATUREWWW-Authenticate: Payment / Authorization: PaymentPAYMENT-REQUIRED (with GatewayWalletBatched extra)
SDK@x402/axiosmppx@circle-fin/x402-batching
Base URLhttps://x402.ottoai.serviceshttps://mpp.ottoai.serviceshttps://usdc.ottoai.services
Endpoints (v1)5040 GET/read-only6 GET/read-only
Which should I use? If you need the broadest HTTP catalog or any execution route, use x402. If you want gas-free sub-cent reads with batched USDC settlement, use USDC / Circle Gateway. If you want Tempo stablecoins or Stripe cards for read-only/query access, use MPP. For exact counts and capability coverage, see Access Paths & Coverage.

Pricing Overview

Market Intelligence (Market Alpha Agent)

EndpointPriceDescription
/crypto-news$0.001Real-time crypto market news with sentiment
/filtered-news$0.001AI-filtered news for specific topics
/twitter-summary$0.001Curated Twitter/X crypto digest
/token-details$0.001Token price, market cap, volume, metrics
/token-alpha$0.001Premium token intelligence with derivatives data
/kol-sentiment$0.001Top 50 KOL sentiment analysis
/yield-alpha$0.001DeFi yield opportunities
/trending-altcoins$0.001Top 3 trending altcoins
/mega-report$0.05Alpha & Intel Report — comprehensive daily market briefing

Data Intelligence (Market Alpha Agent)

EndpointPriceDescription
/token-security$0.001Token contract security audit (GoPlus)
/funding-rates$0.001Derivatives dashboard (funding, OI, whales)
/defi-analytics$0.001DeFi protocol analytics (TVL, trends)
/tradfi-data$0.001TradFi macro intelligence (VIX, DXY, yields)

AI Creative Tools (Tools Agent)

EndpointPriceDescription
/generate-meme$0.15Multi-model image gen via fal.ai (GPT Image 2, Nano Banana Pro)
/llm-research$0.10AI research assistant (Gemini 3.5 Flash, cited sources)
/tx-explainer$0.01Decode & explain any EVM transaction (11 chains)

Trading Resources (Trade Execution Agent)

EndpointPriceDescription
/portfolio$0.001Multi-chain portfolio with token balances
/transaction-history$0.001Transaction history for user’s Safe account
/supported-tokens$0.001Search supported tokens by symbol on a chain
/hyperliquid-account$0.001Hyperliquid account snapshot with positions
/hyperliquid-market$0.001Hyperliquid market data with live prices
/hl-transaction-history$0.001Hyperliquid trading transaction history
/yield-markets$0.001Yield markets with APYs (Aave V3, Morpho)
/yield-farming-active$0.001Active yield farming positions
/yield-farming-historical$0.001Historical yield farming positions
/idle-capital$0.001Detect undeployed tokens that could earn yield
/yield-recommendations$0.001Personalized vault recommendations

Data Endpoints (aggregate-cache market data)

Otto’s data endpoints — aggregate-cache reads refreshed on a schedule and fanned out cheap. On MPP these are served warm-only: a cold or long-tail key returns 503 (unpaid — MPP never charges Tempo for data it cannot immediately serve). Use the x402 rail for on-demand long-tail coverage.
EndpointPriceDescription
/news-recaps$0.002Tight 4-6 sentence crypto market recap
/base-ecosystem-news$0.001Base-chain ecosystem news, AI-filtered hourly
/base-season$0.001Base social intelligence — KOL-talked Base tokens + sentiment
/token-fundamentals$0.002Token fundamentals by ticker (price, mcap, supply)
/token-price$0.001Live DEX token price across 8 chains
/token-top-holders$0.02Top holders + concentration for any Base ERC-20
/holder-analytics$0.03Base ERC-20 holder momentum and whale tiers
/wallet-holdings$0.02Base wallet portfolio breakdown
/stablecoin-watch$0.001USDC/USDT/DAI peg deviation + supply flows
/protocol-revenue-leaders$0.001Top 30 DeFi protocols by fees, revenue, take-rate
/equity-intel$0.001US-equity fundamentals by ticker (SEC EDGAR)
/pools-search$0.001Search DEX pools across 8 chains
/pools-trending$0.001Trending DEX pools by network (or all)

How to Make a Request (MPP Flow)

Step 1: Initial Request (Returns 402)

curl -v https://mpp.ottoai.services/crypto-news
The server responds with HTTP 402 Payment Required and a WWW-Authenticate: Payment header containing the payment challenge:
HTTP/1.1 402 Payment Required
Cache-Control: no-store
Content-Type: application/problem+json
WWW-Authenticate: Payment id="abc123",
    realm="mpp.ottoai.services",
    method="tempo",
    intent="charge",
    request="eyJhbW91bnQiOiIxMDAwIi4uLn0",
    expires="2026-03-20T12:05:00Z"

Step 2: Pay and Retry with Credential

The mppx SDK handles this automatically:
import { Mppx, tempo } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'

// Create payment handler — polyfills global fetch
Mppx.create({
  methods: [tempo({ account: privateKeyToAccount('0x...') })],
})

// Now fetch handles 402s automatically
const response = await fetch('https://mpp.ottoai.services/crypto-news')
const data = await response.json()
console.log(data) // { status: "success", data: { report: "..." } }

Step 3: Receive Response with Receipt

HTTP/1.1 200 OK
Payment-Receipt: eyJzdGF0dXMiOiJzdWNjZXNzIi4uLn0
Content-Type: application/json

{
  "status": "success",
  "data": {
    "report": "Latest crypto market news..."
  }
}

Using the CLI

# Install mppx globally
npm install -g mppx

# Create a Tempo wallet (stored in keychain)
mppx account create

# Make a paid request
mppx https://mpp.ottoai.services/crypto-news

# Inspect the 402 challenge without paying
mppx --inspect https://mpp.ottoai.services/token-alpha?symbol=BTC

Endpoint Details

Market Intelligence Endpoints

/crypto-news

Real-time crypto market news with sentiment analysis and top headlines.
mppx https://mpp.ottoai.services/crypto-news

/filtered-news

AI-filtered crypto news by topic.
ParameterRequiredDescription
topicYesTopic to filter (max 2 words, e.g., “DeFi airdrops”)
mppx "https://mpp.ottoai.services/filtered-news?topic=DeFi"

/token-details

Token price, market cap, volume, and basic metrics.
ParameterRequiredDescription
symbolYesToken symbol (e.g., BTC, ETH, SOL)
mppx "https://mpp.ottoai.services/token-details?symbol=ETH"

/token-alpha

Premium token intelligence with news, sentiment, derivatives data.
ParameterRequiredDescription
symbolYesToken symbol (e.g., BTC, ETH, SOL)
mppx "https://mpp.ottoai.services/token-alpha?symbol=BTC"

/token-security

Token contract security audit powered by GoPlus.
ParameterRequiredDescription
addressYesToken contract address (0x-prefixed)
chainNoChain ID: 1 (ETH), 56 (BSC), 137 (Polygon), 42161 (Arbitrum), 8453 (Base), 43114 (Avalanche), 10 (Optimism)
mppx "https://mpp.ottoai.services/token-security?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&chain=8453"

/funding-rates

Derivatives intelligence: funding rates, open interest, long/short ratios, whale positions.
ParameterRequiredDescription
symbolNoToken symbol for detail view (omit for market overview)
mppx "https://mpp.ottoai.services/funding-rates?symbol=BTC"

Response Format

All endpoints return JSON with a consistent structure:
{
  "status": "success",
  "data": {
    // Service-specific response data
  }
}
On error:
{
  "status": "failed",
  "error": "Description of what went wrong"
}

Support