---
title: "MPP 빠른 시작"
description: "Tempo USDC와 mppx 클라이언트로 TwexAPI 고급 검색 페이지 결제."
---

# MPP Quickstart

TwexAPI API 키 없이 pay-per-use 고급 검색 요청을 합니다. 이 가이드는 `mppx` 클라이언트로 HTTP 402 challenge에 응답하고 Tempo USDC로 결제한 뒤 요청을 자동 재시도합니다.

## 1단계: 클라이언트 의존성 설치

```bash
npm install mppx viem
```

`mppx`는 MPP challenge와 결제를 처리합니다. `viem`은 Tempo private key를 클라이언트 wallet 계정으로 변환합니다.

## 2단계: Tempo wallet 생성 및 충전

로컬 MPP 계정을 만든 뒤 private key 내보내기:

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

출력 주소에 Tempo USDC를 충전합니다. 내보낸 `0x...` private key를 환경 변수에 저장:

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

:::warning
  private key를 커밋하지 마세요. secret manager 또는 shell 환경에 두고, 통합이 허용하는 금액만 wallet에 충전하세요.
:::

## 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` challenge를 처리하도록 설정합니다. 적격 엔드포인트에서 서버 제공 Tempo offer를 결제하고 결제 credential으로 동일 요청을 재시도합니다. 정산 기록이 필요하면 `response.headers.get("Payment-Receipt")`를 확인하세요.

이전 페이지에서 이어갈 때 JSON 본문에 `next_cursor` 전달:

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

## 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`에서 호환 Tempo MPP 구현으로 `WWW-Authenticate: Payment` challenge 처리. 생성 credential으로 정확히 동일 요청 재시도:

```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 키 인증 및 전체 엔드포인트 카탈로그.
