मुख्य सामग्री पर जाएं

MPP Payments

को अपडेट
9 जून, 2026

अवलोकन

MPP (Machine Payments Protocol) on Quicknode provides pay-per-request access to blockchain endpoints across all supported networks. MPP is an open protocol by Tempo Labs and Stripe, submitted as an IETF Internet-Draft, that enables machine-to-machine stablecoin micropayments via standard HTTP authentication headers.

Any application or AI agent with a wallet can start making RPC calls immediately. No account, API keys, or subscription required.

MPP is an additive access method. It does not replace Quicknode's standard plans. Teams running production workloads benefit from standard plans with SLAs, dedicated support, and higher rate limits. MPP is designed for AI agents, rapid prototyping, and use cases where permissionless, per-request access is the priority.


संक्षेप में
  • MPP can be used two ways: one-shot RPC calls with a funded wallet and no account (covered on this page), or paying for an Agent Subscription to create a Quicknode account and receive a full platform API key for the full product suite
  • Two one-shot billing modes: Charge ($0.001/request, one on-chain settlement per call) and Session ($0.00001/request, escrow deposit with batched off-chain voucher settlement)
  • Install एमपीपीएक्स, which polyfills fetch to intercept 402 responses and handle payment negotiation automatically
जानकारी

MPP on Quicknode is currently in alpha.

# Fetch machine-readable MPP documentation for AI agents
curl https://mpp.quicknode.com/llms.txt

Quick Start

Install the एमपीपीएक्स package:

npm install mppx viem

This example uses the Tempo payment method with PathUSD. Fund your wallet before making requests.

import { Mppx, tempo } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'

const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`)

// Polyfills globalThis.fetch to handle 402 challenges automatically
Mppx.create({
methods: [tempo({ account })],
})

// Replace /tempo-mainnet with any supported network slug
const response = await fetch('https://mpp.quicknode.com/tempo-mainnet', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'eth_blockNumber',
params: [],
}),
})

const { result } = await response.json()
console.log('Block number:', BigInt(result))

With the polyfill active, standard fetch calls handle payment negotiation automatically. The client detects 402 responses, signs the required payment, and retries the request. The payment method is independent of the chain you query, so replace /tempo-mainnet in the URL with any supported network slug to call a different chain.


Looking for other setup options?

Use the एमपीपीएक्स सीएलआई to make paid RPC calls directly from the terminal. For paying with Solana USDC instead, see Solana Setup.

Supported Protocols

MPP endpoints support the following protocols:

  • JSON-RPC
  • REST

मूल्य निर्धारण

MPP supports two billing patterns (intents) that determine how payments are structured:

शुल्कसत्र
Cost per request$0.001$0.00001 ($10 per million requests)
EndpointPOST /:network/*POST /session/:network/*
समझौताOne on-chain transaction per requestOff-chain vouchers, batched on-chain settlement
के लिए सर्वश्रेष्ठSimple integrations, low volumeHigh volume, agents, metered usage

Intent Types

शुल्क

The charge intent is the simplest path. Each request triggers a single on-chain payment. There is no session state, no escrow, and no setup. The एमपीपीएक्स SDK handles the 402 challenge and payment signing automatically.

सत्र

The session intent uses payment channels for high-frequency access. The flow:


  1. The client deposits funds into an escrow contract (approximately 500ms initial setup).
  2. Each subsequent request sends a cumulative EIP-712 signed voucher instead of an on-chain transaction.
  3. The server verifies each voucher with a single ईक्रेकवर call, with no RPC or database lookup needed.
  4. The server closes the channel on its own schedule, settling in batches on-chain.
  5. Unused funds from the deposit are refunded when the channel closes.
import { Mppx, tempo } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'

const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`)

// Session-only — payment channels for 100x cheaper requests
Mppx.create({
methods: [tempo.session({ account })],
})

// First request opens channel on-chain (~500ms),
// subsequent requests use off-chain vouchers (microseconds)
// Replace /tempo-mainnet with any supported network slug
const response = await fetch('https://mpp.quicknode.com/session/tempo-mainnet', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'eth_blockNumber',
params: [],
}),
})

console.log(await response.json())

समर्थित भुगतान नेटवर्क

Stablecoin payments are accepted on the following networks:

NetworkToken
Tempo Testnet (chain 42431)पथयूएसडी
Tempo Mainnet (chain 4217)PathUSD / USDC.e
Solana MainnetUSDC

The payment network is independent of the chain you query. For example, you can pay with PathUSD on Tempo and query Ethereum, Solana, or any other supported chain.

निःशुल्क स्तर

Each wallet gets a single free tier of 1,000,000 API credits / month across Quicknode's agentic payment surfaces, including MPP and x402. RPC requests consume 1 API credit each, while SQL Explorer consumes the API credits used by the query. The bucket resets on the first of the month, and paid usage continues at the applicable per-model rate after the free tier is exhausted.

Solana Setup

For Solana-native integrations, use the solana-mpp package:

npm install solana-mpp mppx @solana/web3.js @solana/spl-token
import { Mppx, solana } from 'solana-mpp/client'
import { Keypair } from '@solana/web3.js'

const keypair = Keypair.generate()

Mppx.create({ methods: [solana({ wallet: keypair })] })

// Replace /solana-mainnet with any supported network slug
const response = await fetch('https://mpp.quicknode.com/solana-mainnet', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'getSlot',
params: [],
}),
})

const { result } = await response.json()
console.log('Slot:', result)

सीएलआई

The एमपीपीएक्स CLI lets you make paid RPC calls directly from the terminal:

npm install -g mppx

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

# Charge intent — $0.001/request (replace /tempo-mainnet with any supported network)
mppx -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' \
https://mpp.quicknode.com/tempo-mainnet

# Session intent — $0.00001/request (replace /session/tempo-mainnet accordingly)
mppx -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' \
https://mpp.quicknode.com/session/tempo-mainnet

दर सीमाएँ

MPP endpoints are rate limited to 1,000 requests per 10 seconds per IP:network combination.

Payment Receipts

Every successful response includes a भुगतान-रसीद header. You can parse it with the एमपीपीएक्स SDK:

import { Receipt } from 'mppx'

const receipt = Receipt.fromResponse(response)
console.log(receipt.status) // "success"
console.log(receipt.reference) // tx hash (charge) or channelId (session)

यह काम किस प्रकार करता है

The एमपीपीएक्स SDK handles the full payment flow automatically. Under the hood, each request follows this sequence:


  1. Send a request. POST a JSON-RPC or REST call to https://mpp.quicknode.com/:network (charge) or https://mpp.quicknode.com/session/:network (session).
  2. Receive a payment challenge. The server responds with HTTP 402 and a WWW-प्रमाणीकरण: भुगतान header containing the payment method, intent, amount, and recipient.
  3. Sign and retry. The client signs a token transfer and retries the request with an प्राधिकरण: भुगतान header carrying the payment credential.
  4. Receive the response. The server settles the payment, proxies the RPC request, and returns the result with a भुगतान-रसीद header containing the transaction reference.
# Challenge (server → client, on 402)
WWW-Authenticate: Payment id="...", realm="mpp.quicknode.com",
method="tempo", intent="charge", request="<base64url JSON>"

# Credential (client → server)
Authorization: Payment <credential>

# Receipt (server → client, on success)
Payment-Receipt: <receipt>

MPP vs Standard Quicknode Plans

एमपीपीStandard Plans
प्रमाणीकरणWallet-based (HTTP Payment auth)Account-based (API key)
बिलिंगPay per request (stablecoins)Monthly/Yearly subscription
सेटअप आवश्यक हैWallet + stablecoinखाता + एपीआई कुंजी
स्थितिअल्फाउत्पादन एसएलए
के लिए सर्वश्रेष्ठएजेंट, प्रोटोटाइपिंग, अनुमति रहित पहुंचटीमें, उत्पादन कार्यभार

संसाधन

बख्शीश

For managing Quicknode infrastructure through natural language, see Quicknode MCP. For giving AI coding agents accurate Quicknode API knowledge, see Blockchain Skills. For the x402 payment protocol, see x402 Payments.

हमें आपकी प्रतिक्रिया बहुत पसंद है!

यदि इस दस्तावेज़ के बारे में आपके कोई सुझाव या प्रश्न हैं, तो कृपया हमें बताएं । हमें आपकी प्रतिक्रिया जानकर खुशी होगी!

इस दस्तावेज़ को साझा करें