Skip to main content
Welcome to the technical documentation for the Otto AI Agent Swarm on MPP. While our main Agent Swarm overview explains what our agents do, this page provides the specific endpoint details, request parameters, and examples needed for programmatic integration via the Machine Payments Protocol. All endpoints are accessible via the MPP protocol, allowing any developer or AI agent to pay for and consume our services using Tempo stablecoins or Stripe cards. 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

Otto AI supports both MPP and x402 for maximum distribution. Same data, same agents, different payment protocols.
Featurex402MPP
ProtocolCoinbase x402 V2IETF Standard
PaymentUSDC on Base, Polygon, SolanaTempo USDC.e + Stripe cards
HeadersPAYMENT-REQUIRED / PAYMENT-SIGNATUREWWW-Authenticate: Payment / Authorization: Payment
SDK@x402/axiosmppx
Base URLhttps://x402.ottoai.serviceshttps://mpp.ottoai.services
Endpoints30 (all 3 agents + execution)25 (all 3 agents, read-only)
Which should I use? If you hold USDC on Base/Polygon/Solana, use x402. If you want Tempo stablecoins or Stripe cards, use MPP. Both serve the same data from the same agents.

Pricing Overview

Market Intelligence (Market Alpha Agent)

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

Data Intelligence (Market Alpha Agent)

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

AI Creative Tools (Tools Agent)

EndpointPriceDescription
/generate-meme$0.50AI image generation (Gemini 3 Pro)
/llm-research$0.50AI research assistant (Gemini 2.5 Pro)
/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

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