メインコンテンツへスキップ

読了時間:10分

概要

Machine Payments Protocol(MPP)を利用すると、HTTPリクエストと連動してAPIへのアクセス料金を支払うことができます。アカウントもAPIキーも不要で、ウォレットとステーブルコインの残高さえあれば十分です。支払いはリクエスト自体の一部として行われ、レスポンスには領収書が添付されます。

これは、ブロックチェーン のデータにアクセスする際に特に役立ちます。サポート のMPPが公開するRPCプロバイダーは、どのウォレットからでも呼び出せる標準的なJSON-RPCエンドポイントを提供しています。リクエストごとに、 Tempoブロックチェーン 、プロバイダーはデータを返す前に支払いを検証します。 エージェント、スクリプト、およびアプリケーションは、登録手続きを経ることなく、直ちにブロックチェーン の状態の照会を開始できます。flow

Tempo ここでは2つの役割を担っています。MPP取引の決済を行う決済インフラであると同時に、 Foundryのフォーク その結果、 キャスト ネイティブ MPPサポート 。 キャスト は、RPC呼び出し、トランザクションの送信、およびスマートコントラクトとのやり取りを行うためのFoundryのコマンドラインツールです。Tempo のフォークをインストールすると、 キャスト ハンドル 402 支払いに関する課題を単独で解決すること。

このガイドでは、Tempo を使用した Foundry の設定方法、および キャスト. ここでは QuicknodeのMPPエンドポイント 以下の例では、プロバイダーとして使用します。

無料プラン

Quicknode各ウォレットには MPPx402。標準のRPCリクエストは1回につき1 APIクレジットを消費しますが、SQL Explorerでは、by でのクエリ実行に要したAPIクレジットが消費されます。

必要なもの

  • Tempo CLI インストール済み(ウォレット管理および キャスト MPPサポート)
  • ファウンドリー インストール済み(~用) キャスト メソッド)

主な業務内容

  • 「Machine Payments Protocol」とは何か、そしてその存在意義を理解する
  • Tempo ウォレットを設定し、FoundryのTempo フォークをインストールする
  • 以下の方法で有料のRPC呼び出しを行う キャスト chargeインテントとsessionインテントの両方を使用する
  • Quicknode のMPPエンドポイントからブロックチェーン のデータにアクセスする
  • 支払いセッションの管理と取引の確認オンチェーン

マシン・ペイメント・プロトコル(MPP)とは何ですか?

Machine Payments Protocol は、IETF に提案されたオープンスタンダードであり、任意の HTTP にインライン決済機能を追加するものです エンドポイント。これはby TempoStripeと共同で、特定の課題を解決するために設計されました。それは、プログラムによるクライアント(エージェント、スクリプト、ボット)が、人間が事前に課金設定を行わない限り、APIへのアクセス料を支払う適切な手段を持たないという問題を解決するために設計され、Stripeと共同で提案されたものです。

従来の決済フローは、チェックアウトフォーム、ブラウザセッション、視覚的なCAPTCHAなどに依存していますが、これらはすべて人間向けに設計されたものです。MPPは、これらをHTTP上に構築された機械可読な決済ネゴシエーションに置き換えます。 402 支払が必要です、HTTP/1.1の時代から存在していたステータスコードですが、これまで正式に標準化されたことはありませんでした。

MPPの実際の運用方法

このプロトコルは、標準的なHTTPヘッダーを用いたチャレンジ・レスポンス方式を採用しています:

  1. リクエスト- クライアントは、有料の エンドポイント。
  2. 課題 - サーバーは次のように応答します 402 支払が必要です そして、a WWW-Authenticate: 支払い ヘッダー。このヘッダーには、価格、利用可能な通貨、受取人の住所、および利用可能な支払い方法が記載されています。
  3. 支払い- クライアントは支払い方法を選択し、その手続きを完了します(ステーブルコインの送金に署名する、Stripeの請求書を支払うなど)。
  4. 再試行 - クライアントは、 承認:支払い 支払いの証明が記載されたヘッダー(以下「証明書類」という)。
  5. 配達する - サーバーは支払いを確認し、応答を返します。その応答には 領収書 ヘッダー。

次のようなクライアントライブラリ mppx また、FoundryのTempo は、ステップ2~4を自動的に処理します。コードの観点から見れば、リクエストはただ単に正常に動作するだけです。

Payment Intents:Charge と Session の違い

MPPでは、課金の仕組みを制御する2つの支払いインテントを定義しています:

請求セッション
パターンリクエストごとに1回限りの支払い決済チャネルを通じた従量課金
決済オンチェーン での即時取引オフチェーン・バウチャー、オンチェーン による定期的な決済
こんな方に最適時折寄せられる問い合わせ、簡単な連携高頻度のリクエスト、 エージェント、従量課金制

セッションは、by を開き、オンチェーン への支払いチャネルを初期入金で開設することで機能します。その後の各リクエストには、署名済みのバウチャー(「現在、合計 X まで消費しました」)が含まれており、サーバーはこれを単一の ecrecover (EVMチェーンで使用される暗号署名復元関数)、リクエストごとにオンチェーン トランザクションを行う必要はありません。セッションが終了すると、サーバーは最終残高をオンチェーン で精算し、未使用のデポジットを返金します。

SDKおよびツール

このガイドでは、2つのクライアントサイドツールを使用しています:

  • Tempo CLI- 「Tempo 」ウォレット(鍵、残高、入金)を管理します。
  • Foundry(Tempo のフォーク) - FoundryはEVM開発用のツールキットであり、 キャスト オンチェーン へのRPC呼び出しを行うためのコマンドラインツールです。Tempo のフォークでは、ネイティブのMPPサポート が追加されています。 キャスト. これはTempo CLIからウォレットの認証情報を読み取るため、まずTempo ウォレットを設定しておく必要があります。

詳細については、Tempo のCLIドキュメントおよびTempo FoundryのSDK ドキュメントを参照してください。

Tempo ウォレットとFoundryの設定

有料のRPC呼び出しを行うには、2つのものが必要です。1つはTempo ウォレット(支払いの署名用)、もう1つはFoundryのTempo フォーク( キャスト MPP(サポート )。Foundryのフォーク版は、Tempo CLIからウォレットの認証情報を読み込むため、まずTempo のウォレットを設定する必要があります。

手順 1:Tempo CLI をインストールする

curl -fsSL https://tempo.xyz/install | bash

後で更新するには、次のコマンドを実行してください。 tempoup. 以下の方法で確認してください tempo --version.

ステップ 2:Tempo ウォレットを作成して接続する

情報

tempo ウォレットへのログイン 初回認証にはブラウザが必要です。 エージェント および自動化スクリプトの場合、次のようにスコープ付きアクセスキーを作成できます。 tempo ウォレットの鍵 初回ログイン後。これらの鍵にはそれぞれ独立した利用限度額が設定されており、使用するためにブラウザでの操作は必要ありません。

tempo ウォレットへのログイン

これにより、ブラウザでflow が開き、Tempo ウォレットの作成または接続が行われます。ウォレットをお持ちでない場合は、flow によって作成されます。ログインしたら、すべての準備が整っていることを確認してください:

tempo ウォレット whoami

ウォレットのアドレス、残高、アクセスキー、および利用限度額が表示されているはずです:

ウォレット:0xb9eb3aa4bd212928fb92def7f17318e0149bfc10
残高:1.000000 USDC.e

キー:0x1697b73624b7515f4e1464415d86b83b3956cae2
チェーン:tempo
有効期限:29日 23時間
上限:0.000000 / 100.000000 USDC.e(残り 100.000000)

ウォレットのアドレスと鍵が表示されていれば、ウォレットの設定は完了しており、 キャスト MPPの支払いに利用できます。

ステップ3:ウォレットへの入金

tempo ウォレットファンド

これにより、ウォレットでの資金調達手段が広がります。 メインネット、Tempo (チェーンID:4217)上のpathUSDまたはUSDC.eが必要です。また、USDCをTempo へブリッジしたり、Tempo のDEXでスワップしたりすることも可能です。

情報

QuicknodeのMPPエンドポイントは、MPPおよびx402 を合わせて、ウォレットごとに月間最大1,000,000 APIクレジットまで利用できる単一の無料枠の対象となります。RPCリクエストは1回につき1 APIクレジットを消費しますが、SQL Explorerでは、クエリby に使用されたAPIクレジットが消費されます。

以下の方法で テストネット 次のコマンドを実行すると、by の資金を入手できます

curl -X POST https://docs.tempo.xyz/api/faucet \
-H "Content-Type: application/json" \
-d '{"address": "<YOUR_ADDRESS>"}'

いつでも残高を確認できます:

tempo ウォレット whoami

ステップ 4: Foundry を以下の方法でインストールするTempo サポート

もしお持ちでない場合は foundryup とはいえ、まずはこれをインストールしてください:

curl -L https://foundry.paradigm.xyz | bash

次に、Tempo のフォークをインストールします:

foundryup -n tempo

これにより、Tempo と互換性のある以下のバージョンがインストールされます。 forge, キャスト, 金床anvil、および ノミ. インストールを確認してください:

forge -V

出力には以下を含める必要があります。 -tempo バージョン文字列内の(例: forge 1.6.0-nightly-tempo). もしそうなら、あなたは正しい分岐を進んでいます。

Quicknode のMPPを介してブロックチェーン のデータにアクセスする

Quicknode MPPエンドポイントを実行しており、これにより以下のネットワークにアクセスできます 140以上のブロックチェーン ネットワークに に、アカウントを作成することなくアクセスできます。このガイドのすべての例では、MPPエンドポイントを使用します。

Quicknode MPPエンドポイント

意図URLパターンリクエストあたりのコスト
請求https://mpp.quicknode.com/<network>$0.001
セッションhttps://mpp.quicknode.com/session/<network>$0.00001

置換 <network> サポートされているネットワークスラグを指定して。Quicknode MPPは、以下の140以上のネットワークをサポートしています。 Quicknode x402、すべてのテストネットを含みます。サポートされているスラグの完全なリストは、以下の方法で動的に取得できます:

curl https://x402.quicknode.com/networks

よく見られるナメクジ: tempo-メインネット, ethereum-メインネット, base-メインネット, polygon-メインネット, solana-メインネット, arbitrum-メインネット.

セッションは、リクエストごとの料金に比べて100倍も安くなります。呼び出しが数回程度を超える場合は、セッションを利用するのが得策です。

llms.txt ディスカバリーファイル

Quicknode 同社のMPPサービスに関する機械可読な説明を、以下のURLで公開しています:

https://mpp.quicknode.com/llms.txt

このファイルはllms.txt の規約に準拠しており、サポートされている決済方法、 エンドポイント パターン、クライアント設定コード、価格設定、レート制限、エラーコード、およびTempo とSolana の両方のウォレット生成スニペットが含まれています。もし、 エージェント RPCアクセスを独自に検出して支払いを行う必要がある場合は、このURLを指定してください。 エージェント このファイルを読み込むだけで、人の手を借りずにゼロから有料のRPC呼び出しを行うための十分な情報が得られます。

お支払い方法の選択

クライアントが「charge」 エンドポイント、サーバーは 402 利用可能なすべての支払い方法を一覧表示するという課題です。その後、クライアントは、あなたのウォレットに実際に保有されている残高に基づいて支払いを行います:

  • お持ちのウォレットにメインネット のステーブルコイン(pathUSDまたはUSDC.e)がある場合、それらを使って支払いが行われます。
  • ウォレットにテストネット のpathUSD(Tempo のModerato)しか含まれていない場合、 テストネット 資金が使用されます。これは、MPPおよびx402 を横断して、ウォレットごとに月間1,000,000 APIクレジットの共有無料枠を利用します。

レート制限とエラー

Endpoint上限
/:ネットワーク (料金)IPとネットワークの組み合わせごとに、10秒あたり1,000リクエスト
/session/:network (セッション)IP:セッション:ネットワークの組み合わせごとに、10秒あたり1,000リクエスト

よくあるエラー応答:

ステータスエラーコードその意味
402(MPPチャレンジ)お支払いが必要です -- WWW-Authenticate ヘッダーには課題が記載されています
403月間上限に達しましたこのウォレットの月間共有APIクレジット枠(1,000,000)を使い果たしました。引き続きご利用いただくには、 メインネット-資金が充当されたウォレットに切り替えてください。
404サポートされていないネットワークネットワークスラグが認識されません
429rate_limit_exceededリクエストが多すぎます。一旦中断して、後で再試行してください。
503mpp_not_configuredこの環境では MPP が設定されていません

Cast を使用した有料 RPC 呼び出し

Tempo ウォレットの設定が完了したら(tempo ウォレットへのログイン) および Foundry のTempo フォークがインストールされている(foundryup -ntempo)、MPPエンドポイントを通じてブロックチェーン のデータをクエリできます。 キャスト Tempo CLI からウォレットを読み取り、以下の処理を行います。 402 challenge-responseflow を自動的に実行します。

料金(一括払い)

この課金 エンドポイント は、リクエストごとに1回限りの支払いを処理します:

cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_blockNumber

キャスト を受け取る 402 challengeは、Tempo でステーブルコインの送金を署名し、支払い認証情報を使って再試行します。応答は、通常のRPC呼び出しと同様に返ってきます:

0x...

標準的なJSON-RPCメソッドであれば、どれでも使用できます:

# 最新のブロックを取得する
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getBlockByNumber "latest" false

# 口座残高を確認する
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getBalance "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" "latest"

# 現在のガソリン価格を確認する
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_gasPrice

セッション(従量課金制)

リクエストを繰り返す場合は、セッションを使用してください エンドポイントを使用してください。最初のリクエストでは、ウォレットがオンチェーン のエスクロー契約に0.1 USDC.eを預け入れ、ペイメントチャネルを開設します。その後のリクエストは、near で署名されたオフチェーンのバウチャーを使用して支払われます。これにより、レイテンシがゼロになり、リクエストごとにオンチェーン のトランザクションが発生しません。

cast rpc -r https://mpp.quicknode.com/session/tempo-メインネット eth_blockNumber

リクエスト1件あたり0.00001ドルのため、0.1 USDC相当の入金で最大10,000件のリクエストをカバーできます。セッションは、スクリプトやアプリ など、RPC呼び出しを連続して多数実行する場合に適しています。

での支払いの確認Tempo

Tempo のブロックエクスプローラーで、お支払い取引を確認してください:

ウォレットアドレスを検索して、各RPCリクエストごとのステーブルコインの送金履歴を確認してください。

ユースケース

これで、 キャスト, ここでは、Quicknode のMPPエンドポイントを使って実践できるいくつかの方法をご紹介します。

勘定科目および取引データを読み込む

対応しているネットワークであれば、どのネットワークでも口座残高、契約状況、取引履歴を確認できます:

# 住所の残高を確認するTempo メインネット
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getBalance "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" "latest"

# 契約のストレージスロットを読み取る
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getStorageAt "0xCONTRACT_ADDRESS" "0x0" "latest"

# 取引の領収書を受け取る
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getTransactionReceipt "0xTX_HASH"

モニターブロックとガス

ダッシュボード、アラート、または手数料の見積もりなどに役立ちます:

# 最新のブロック番号
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_blockNumber

# トランザクションを含むブロック全体
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_getBlockByNumber "latest" true

# 現在のガソリン価格
cast rpc -r https://mpp.quicknode.com/tempo-メインネット eth_gasPrice

Foundryスクリプトおよびテストでの使用

以来 キャスト MPPを自動的に処理するため、Quicknode のMPPエンドポイントは、 --rpc-url Foundryのワークフローにおいて:

# MPP を使用して、稼働中のネットワークに対して Forge スクリプトを実行する
forge スクリプト script/Deploy.s.sol \
--rpc-url https://mpp.quicknode.com/tempo-メインネット \
--放送

# MPP を使用してフォークに対してテストを実行する
forge test --fork-url https://mpp.quicknode.com/tempo-メインネット

注: その --放送 flag は、ライブトランザクションをネットワークに送信します。スクリプトをテストするだけなら、このフラグは省略してください。 --放送 ガスを消費したり、実際にデプロイしたりすることなく、デプロイをシミュレートするにはオンチェーン 。

よくある質問

MPPとは何ですか?

Machine Payments Protocol は、HTTP エンドポイントにインライン決済機能を追加するオープンスタンダード(IETF に提案済み)です。クライアントは、リクエストの一部として、 402 支払が必要です ステータスコードと標準的なHTTPヘッダー。Tempo のステーブルコイン、Solana のUSDC、Stripeなど、複数の決済方法に対応しています。

RPCプロバイダーのアカウントは必要ですか?

いいえ。MPPはアカウントベースのアクセスに代わるものです。必要なのは、ステーブルコインが入ったウォレットだけです。登録も、APIキーも、請求ダッシュボードも一切必要ありません。

「チャージ」と「セッション」の違いは何ですか?

Chargeは、リクエストごとにオンチェーン による1回限りの決済を処理します(オーバーヘッドは約500ms)。Sessionは、初期預金を含む決済チャネルを開設し、その後のリクエストではオフチェーンのバウチャーを使用してnear を実現します(ゼロレイテンシ)。時折の呼び出しにはChargeを、繰り返しリクエストを行う場合はSessionを使用してください。

Quicknode のMPPの料金はいくらですか?

課金リクエストは1件あたり0.001ドルかかります。セッションリクエストは1件あたり0.00001ドル(100万件あたり10ドル)です。セッションの方が100倍安くなるのは、オンチェーン の決済費用を多数のリクエストで分担できるためです。

MPPを無料で試すことはできますか?

はい。Quicknode の MPP エンドポイントは、x402 と共有されている、ウォレットごとに月間 1,000,000 API クレジットという無料枠を同様に利用します。RPC リクエストは 1 回につき 1 API クレジットを消費しますが、SQL Explorer では、クエリでby された API クレジットが消費されます。実際の金銭的な支払いは必要ありません。

MPPはどのようなステーブルコインを取り扱っているのかサポート ?

サービスプロバイダーによって異なります。Quicknode は、Tempo にてpathUSDおよびUSDC.e(ブリッジされたUSDC)を受け付けています。同サーバーは、対応通貨を 402 挑戦。

AIはどのようにして エージェント MPPエンドポイントをどのように検出するのでしょうか?

サービスプロバイダーは、機械可読な形式の llms.txt MPPサービスに関する説明ファイル。Quicknode のものは以下の場所にあります。 https://mpp.quicknode.com/llms.txt また、以下が含まれています エンドポイント Tempo およびSolana の両方に適用される、パターン、価格設定、クライアント設定コード、およびブートストラップの手順が含まれています。

無料枠を使い切ってしまった場合はどうなりますか?

サーバーはHTTPを返す 403 ~と { "error": "monthly_limit_reached" } また、支払いは一切発生しません。 メインネット資金が入ったウォレットに切り替えて、制限なくご利用ください。

まとめ

ここまで読み進めてくださった方は、Machine Payments Protocolとは何か、Tempo ウォレットの設定方法、そしてFoundryのTempo フォークを使用して有料のRPC呼び出しを行う方法について、すでにご理解いただけたことでしょう。 キャスト.ブロックチェーン のデータは、Quicknode のMPPエンドポイントからクエリできます。単発のリクエストには「charge」を利用し、高頻度のアクセスが必要な場合はセッションを利用することで、わずかなコストで利用可能です。

MPP、Tempo 、およびQuicknode について詳しく知りたい方は、以下のリソースをご覧ください: