두 가지 마이크로페이먼트 흐름: 요청별 결제와 선불 잔액
에이전트가 콜마다 결제하든 잔액을 사전 충전하든, 게이트웨이가 인보이스 생성, 온체인 검증, 업스트림 프록시를 자동 처리합니다.
요청별 결제
클라이언트가 게이트된 엔드포인트에 접근하여 인보이스가 포함된 402를 받습니다. 온체인으로 결제한 후 X-Payment-Proof 헤더로 재시도. 게이트웨이가 Neutaro에서 트랜잭션을 검증하고 업스트림으로 프록시.
선불 잔액
클라이언트가 /prepaid/deposit을 통해 NTMPI를 한 번 입금. 이후 요청은 X-Client-Id 헤더를 포함하고 게이트웨이가 콜당 차감 — 반복적인 온체인 거래 불필요.
AI 에이전트와 머신 간 거래를 위해 구축
머신 간 마이크로페이먼트 레이어에 필요한 모든 것, 불필요한 것은 없습니다.
온체인 검증
접근을 허용하기 전에 Neutaro REST API에 쿼리하여 결제 금액, 메모, 블록 확인을 확인.
라우트별 가격 설정
기본 가격을 설정하고 GATEWAY_ROUTES로 라우트별 오버라이드. 저렴한 읽기, 비싼 쓰기.
관리 API
내부 지갑, 트랜잭션, 경량 블록체인 원장을 위한 JWT 보호 엔드포인트.
리버스 프록시
인증된 요청을 업스트림 API로 투명하게 전달. 모든 백엔드, 모든 언어.
SQLite 스토리지
인보이스, 선불 잔액, 결제 로그를 단일 파일에 로컬 저장. 외부 종속성 없음.
Docker 지원
docker compose up 한 명령으로 배포. 베어메탈용 Ubuntu 배포 스크립트 포함.
게이트웨이 API 엔드포인트 레퍼런스
헬스 체크, 인보이스 조회, 잔액 쿼리를 위한 무료 엔드포인트. 나머지는 모두 402 게이트를 통과.
무료 — 결제 불필요
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /health | 게이트웨이 설정이 포함된 헬스 체크 |
| GET | /invoices/:id | 인보이스 상태 확인 (온체인 검증 트리거) |
| POST | /prepaid/deposit | 입금 등록 (먼저 온체인에서 tx 검증) |
| GET | /prepaid/balance/:clientId | 선불 잔액 확인 |
관리 — JWT 보호
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /manage/auth/register | 관리자 계정 등록 |
| POST | /manage/auth/login | 로그인, JWT 토큰 획득 |
| POST | /manage/wallet | 내부 지갑 생성 |
| GET | /manage/wallet | 지갑 목록 조회 |
| GET | /manage/wallet/:id | ID로 지갑 조회 |
| POST | /manage/transactions | 내부 트랜잭션 생성 |
| GET | /manage/transactions/:id | ID로 트랜잭션 조회 |
402 게이트 — 캐치올
| 메서드 | 경로 | 설명 |
|---|---|---|
| ANY | /* | 기타 모든 요청은 결제 또는 선불 잔액 필요 |
에이전트 통합: Python 및 TypeScript 예제
몇 줄로 402 흐름을 모든 에이전트에 연결. 게이트웨이가 인보이스 발행과 검증을 처리 — 코드는 결제와 재시도만.
import requests, subprocess, os res = requests.get("http://gateway:4020/api/data") if res.status_code == 402: inv = res.json()["payment"] # Pay with ClawPurse subprocess.run([ "clawpurse", "send", inv["address"], inv["amount"], "--memo", inv["memo"], "--yes" ]) # Retry with proof res = requests.get( "http://gateway:4020/api/data", headers={"X-Payment-Proof": inv["invoiceId"]} ) data = res.json()
async function paidFetch(url: string) { let res = await fetch(url); if (res.status === 402) { const { payment } = await res.json(); // Pay with ClawPurse const { send, loadKeystore } = await import("clawpurse"); const { wallet, address } = await loadKeystore( process.env.CLAWPURSE_PASSWORD! ); await send( wallet, address, payment.address, payment.amount, { memo: payment.memo } ); // Retry with proof res = await fetch(url, { headers: { "X-Payment-Proof": payment.invoiceId } }); } return res.json(); }
1분 안에 게이트웨이 설치 및 실행
# Clone and install git clone https://github.com/mhue-ai/clawpurse-gateway.git cd clawpurse-gateway && npm install # Configure cp .env.example .env # Set GATEWAY_PAYMENT_ADDRESS and JWT_SECRET # Start a test upstream npm run test:upstream # Start the gateway npm run dev # Test the 402 flow curl http://localhost:4020/api/test # Pay, then retry with proof: curl -H "X-Payment-Proof: <invoiceId>" \ http://localhost:4020/api/test
TypeScript 마이크로서비스 아키텍처
집중된 TypeScript 코드베이스 — 게이트웨이 로직, 4개의 내부 서비스, 미들웨어. 46개의 유닛 테스트가 모든 레이어를 커버.
환경 변수를 통한 게이트웨이 구성
모든 설정은 환경 변수 또는 .env 파일 경유.
| 변수 | 기본값 | 설명 |
|---|---|---|
| PORT | 4020 | 게이트웨이 리스닝 포트 |
| GATEWAY_UPSTREAM | http://localhost:3000 | 프록시할 업스트림 API |
| GATEWAY_PAYMENT_ADDRESS | — | Neutaro 지갑 주소 (필수) |
| GATEWAY_DEFAULT_PRICE | 0.001 | 요청당 기본 가격 (NTMPI) |
| GATEWAY_ROUTES | — | 라우트 가격 오버라이드 |
| GATEWAY_REST | https://api2.neutaro.io | Neutaro REST API 엔드포인트 |
| GATEWAY_MIN_CONFIRMATIONS | 1 | 필요한 블록 확인 수 |
| GATEWAY_INVOICE_TTL | 300 | 인보이스 유효 기간 (초) |
| GATEWAY_PREPAID | false | 선불 잔액 시스템 활성화 |
| GATEWAY_DB | ./gateway.db | SQLite 데이터베이스 경로 |
| JWT_SECRET | — | 관리 API JWT 시크릿 (필수) |
Timpi, Neutaro, ClawPurse 생태계의 일부
ClawPurse 지갑
암호화 키스토어, 가드레일, 스테이킹, 대상 허용 목록이 있는 로컬 NTMPI 지갑. 게이트웨이 결제의 레퍼런스 클라이언트.
Neutaro 블록체인
NTMPI를 구동하는 Cosmos SDK 체인. 모든 게이트웨이 결제는 Neutaro REST API에서 직접 검증 — 오라클 없음, 브릿지 없음.
Timpi 네트워크
프라이버시 우선 분산 검색과 오픈 데이터 API, DePIN 노드. ClawPurse Gateway로 Timpi 기반 서비스를 마이크로페이먼트로 수익화.
Timpi Drip 파우셋
CAPTCHA 대신 작업 증명 챌린지를 사용하는 에이전트 친화적 NTMPI 파우셋. OpenClaw 인증 에이전트는 더 높은 처리량의 드립을 획득.
Ledger Timpi
Free NTMPI cost basis calculator and tax tool. Auto-fetches transfers, staking rewards, and node payouts from the Neutaro chain — calculates USD cost basis with FIFO/LIFO/HIFO and generates IRS Form 8949.
x402 Payment Protocol
Coinbase's open HTTP 402 standard routes every payment through a centralized facilitator that controls settlement. ClawPurse Gateway takes the opposite approach: peer-to-peer payments verified directly on Neutaro — no middleman, no EVM lock-in, no Coinbase SDK. Add prepaid balances for zero-latency repeat access, route-level pricing in one env var, and a full audit trail in SQLite. One Docker command to deploy; zero external dependencies to operate.
자주 묻는 질문
ClawPurse Gateway란?
Neutaro 블록체인의 NTMPI 마이크로페이먼트로 모든 API를 게이팅하는 402 Payment Required 상태 코드를 구현한 오픈소스 HTTP 리버스 프록시. AI 에이전트, 자동화 스크립트, 머신 간 거래를 위한 요청별 결제 및 선불 잔액 흐름 지원.
HTTP 402 결제 흐름은 어떻게 작동하나요?
클라이언트가 게이트된 엔드포인트에 요청하면 invoiceId, amount, address, memo가 포함된 인보이스와 함께 402 응답을 받습니다. ClawPurse 또는 Neutaro 지갑으로 온체인 결제 후 X-Payment-Proof 헤더로 재시도. 게이트웨이가 Neutaro에서 트랜잭션 검증 후 업스트림으로 프록시.
NTMPI란 무엇이며 어떻게 얻나요?
NTMPI는 Neutaro 블록체인의 네이티브 토큰으로, Timpi 분산 검색 네트워크의 일부입니다. Timpi Drip 파우셋에서 무료 NTMPI를 받거나, MEXC 에서 NTMPI/USDT 스팟 페어로 구매하거나 Gravity Bridge를 통해 Osmosis로 브릿지하여 Keplr 또는 Leap 지갑으로 스왑할 수 있습니다.
AI 에이전트가 ClawPurse Gateway를 자율적으로 사용할 수 있나요?
네. 게이트웨이는 에이전트 AI와 머신 간 워크로드를 위해 설계되었습니다. 에이전트는 402 인보이스를 프로그래밍 방식으로 파싱하고, ClawPurse 지갑 API를 통해 온체인 결제 후 결제 증명 헤더로 재시도할 수 있습니다 — 모두 사람의 개입 없이.
Mhue에게 Timpi 커피 사주기 ☕
게이트웨이가 스택 운영 시간을 절약해 주고 있다면, 빌더에게 팁을 보내세요.
neutaro1e8xal8tqdegu4w48z3fphemd3hc07gech3pfek
메모는 선택사항 — 무엇을 빌드했는지 알려주세요!