---
title: "MPP クイックスタート"
description: "Tempo USDC と mppx クライアントで TwexAPI 高度検索ページを支払う。"
---

# MPP Quickstart

TwexAPI API キーなしで従量課金の高度検索リクエストを行います。このガイドでは `mppx` クライアントで HTTP 402 チャレンジに応答し、Tempo USDC で支払い、自動リトライします。

## Step 1: クライアント依存関係をインストール

```bash
npm install mppx viem
```

`mppx` が MPP チャレンジと支払いを処理。`viem` が Tempo 秘密鍵をウォレットアカウントに変換。

## Step 2: Tempo ウォレットを作成・入金

ローカル MPP アカウントを作成し、秘密鍵をエクスポート:

```bash
mppx account create
mppx account export
```

表示アドレスに Tempo 上の USDC を入金。エクスポートした `0x...` 秘密鍵を環境変数に:

```bash
export TEMPO_PRIVATE_KEY="0x..."
```

:::warning
  秘密鍵をコミットしない。シークレットマネージャーまたはシェル環境に置き、統合が許可する額だけウォレットに入金。
:::

## Step 3: MPP リクエストを実行

`mpp-search.ts` を作成:

```ts
import { Mppx, tempo } from "mppx/client";
import { privateKeyToAccount } from "viem/accounts";

Mppx.create({
  methods: [
    tempo({
      account: privateKeyToAccount(
        process.env.TEMPO_PRIVATE_KEY as `0x${string}`,
      ),
    }),
  ],
});

const response = await fetch(
  "https://api.twexapi.io/twitter/advanced_search/page",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      searchTerms: ["openai"],
      sortBy: "Latest",
    }),
  },
);

if (!response.ok) {
  throw new Error(`TwexAPI request failed: ${response.status}`);
}

console.log(await response.json());
```

`Mppx.create()` は `fetch` を MPP `402 Payment Required` チャレンジ処理用に設定。対象エンドポイントではサーバー提供 Tempo オファーを支払い、支払い認証情報付きで同一リクエストをリトライ。決済記録が必要なら `response.headers.get("Payment-Receipt")` を確認。

前ページから継続する場合は JSON ボディに `next_cursor` を渡す:

```json
{
  "searchTerms": ["openai"],
  "sortBy": "Latest",
  "next_cursor": "cursor-from-the-previous-response"
}
```

## Step 4: 生 HTTP フローを実装

`mppx` なしでは、まず検索ページを通常リクエスト:

```bash
curl -i --request POST 'https://api.twexapi.io/twitter/advanced_search/page' \
  --header 'Content-Type: application/json' \
  --data '{"searchTerms":["openai"],"sortBy":"Latest"}'
```

`402` では `WWW-Authenticate: Payment` チャレンジを互換 Tempo MPP 実装で処理。生成した認証情報で同一リクエストをリトライ:

```bash
curl -i --request POST 'https://api.twexapi.io/twitter/advanced_search/page' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Payment eyJjaGFsbGVuZ2UiOnsi...' \
  --data '{"searchTerms":["openai"],"sortBy":"Latest"}'
```

成功レスポンスには TwexAPI 通常 JSON エンベロープと `Payment-Receipt` レスポンスヘッダー。照合が必要ならレシートを自前リクエスト記録と保存。

## 次のステップ

- [Machine Payments Protocol](/mpp/machine-payments-protocol) — サポート操作、支払いシーケンス、API キー比較。
- [API overview](/api-reference/overview) — API キー認証と完全エンドポイントカタログ。
