Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.remlo.xyz/llms.txt

Use this file to discover all available pages before exploring further.

The MPP API is Remlo’s pay per use surface. Every endpoint declares a price in USD and a list of supported chains. Agents pay in USDC on whichever chain their wallet has balance on, and the server returns the response.

Why pay per call

Static API keys leak. Once stolen, they grant unbounded continuous access until rotated. Pay per call inverts the failure mode: each request costs USDC up front, so a leaked credential drains the agent’s wallet, not Remlo’s revenue. Rate limiting becomes a market function, abuse becomes economically irrational, and pricing becomes precise per action rather than per month.

How it works

The first request to a paid endpoint returns HTTP 402 Payment Required. The response body lists every accepted payment option in accepts. The WWW-Authenticate header carries an mpp protocol challenge for Tempo. The agent picks one option, signs the corresponding payment proof, and retries the same URL with the proof attached as a header. The server verifies, runs the handler, and returns the response.
GET /api/mpp/treasury/yield-rates HTTP/1.1
Host: www.remlo.xyz

HTTP/1.1 402 Payment Required
WWW-Authenticate: mpp realm="www.remlo.xyz", method="tempo", chainId="4217",
                      currency="0x20C00000...", recipient="0xC9231...",
                      amount="0.01"
Content-Type: application/json

{
  "x402Version": 2,
  "resource": { "url": "https://www.remlo.xyz/api/mpp/treasury/yield-rates" },
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "10000",
      "payTo": "0xC9231...",
      "maxTimeoutSeconds": 60
    },
    {
      "scheme": "exact",
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "10000",
      "payTo": "BxoTaz3...",
      "maxTimeoutSeconds": 60
    }
  ]
}
The agent picks Tempo (mpp protocol) by retrying with Authorization: mpp <credential>, or Base / Solana (x402 protocol) by retrying with X-PAYMENT: <base64 payload>. Server dispatches based on which header is present.

Rails and protocols

ChainProtocolStablecoinFacilitator
Tempo ModeratomppUSDC.e at 0x20C0...mppx embedded (Tempo’s own)
Base mainnetx402USDC at 0x8335...CDP at api.cdp.coinbase.com
Solana mainnetx402USDC at EPjF...CDP at api.cdp.coinbase.com
amount in accepts is in atomic units (USDC has 6 decimals, so 10000 means $0.01). payTo is an EOA on each rail. State mutating endpoints that touch Tempo treasury balances (payroll execute, fiat off-ramp) accept Tempo only.

Endpoint catalogue

Multi rail (Tempo + Base + Solana)

EndpointMethodPriceWhat it does
/api/mpp/treasury/yield-ratesGET$0.01Current APY, sources, allocation
/api/mpp/compliance/checkPOST$0.05Wallet check against TIP-403 policy
/api/mpp/memo/decodePOST$0.01Decode 32-byte ISO 20022 payroll memo
/api/mpp/escrow/postPOST$0.10Post escrow with auto validation
/api/mpp/escrow/deliverPOST$0.02Submit deliverable URI
/api/mpp/escrow/{id}/statusGET$0.01Read escrow lifecycle status
/api/mpp/agent/payPOST$0.05Agent to agent direct payment

Tempo only (state mutating)

EndpointMethodPriceWhy Tempo only
/api/mpp/payroll/executePOST$1.00Writes to Tempo PayrollTreasury + PayrollBatcher
/api/mpp/bridge/offrampPOST$0.25Pulls from Tempo treasury, posts to Bridge

Free reads

EndpointMethodPriceNotes
/api/reputation/{address}GET$0.00Cross-chain reputation aggregation
/openapi.jsonGET$0.00OpenAPI spec

Settlement model

Verification runs synchronously before the handler. Settlement runs fire and forget after the handler responds, so handler latency is not extended by the facilitator round trip. If settlement fails post handler, the error is logged but the response that already went out stands. The agent’s signed payment is on-chain regardless; settlement is the server claiming it. For Tempo, mppx attaches a Payment-Receipt header on the response when settlement is recorded. For Base / Solana, settlement happens out of band via the CDP facilitator and clients that need confirmation poll the facilitator with the payload they sent.

Discoverability

Agents can browse the catalogue without paying:
curl https://www.remlo.xyz/openapi.json
Or use AgentCash’s discovery tool:
npx -y agentcash@latest discover https://www.remlo.xyz
Both return the same endpoint metadata, prices, and accepted protocols.

Next

  • Multi-Rail Payments for the full payment flow with code samples.
  • Authentication for header formats and signature construction.
  • Endpoint reference pages under this same group for per route schemas.