skills/t2000-pay/SKILL.md
Pay for an MPP-protected API service using the t2000 wallet. Use when asked to call an AI model, search the web, generate images, send email, buy gift cards, send physical mail, check weather, execute code, or any task that requires a paid API. Handles the full MPP 402 challenge automatically. Use t2000_services to discover all available services first.
npx skillsauth add mission69b/t2000-skills t2000-payInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Active — bundled with @t2000/cli (no separate install).
USDC payment is gasless. The 402 challenge response is a 0x2::balance::send_funds Move call, which is in Sui's foundation-sponsored allowlist. The wallet can pay even with 0 SUI in the gas reserve.
Make a paid HTTP request to any MPP-protected endpoint. Handles the 402 challenge, pays via Sui USDC, and returns the API response.
Before calling t2 pay, discover available services:
# CLI — search by name / category / endpoint
t2 services search "image" # find image-gen services
t2 services search "chat" # find chat/completion endpoints
t2 services search "" # list everything
# CLI — inspect a service or endpoint
t2 services inspect https://mpp.t2000.ai/openai
t2 services inspect https://mpp.t2000.ai/openai/v1/chat/completions
# MCP — full catalog JSON
t2000_services
All services are hosted at https://mpp.t2000.ai/. See the t2000-services skill for the full discovery workflow.
t2 pay <url> [options]
| Option | Description | Default |
|--------|-------------|---------|
| --method <method> | HTTP method (GET, POST, PUT) | POST |
| --data <json> | Request body for POST/PUT | — |
| --max-price <amount> | Max USDC per request | $1.00 |
| --header <key=value> | Additional HTTP header (repeatable) | — |
| --timeout <seconds> | Request timeout in seconds | 30 |
| --dry-run | Show what would be paid without paying | — |
The live catalog is the only source of truth for what's available and what it costs. Discover services and current per-endpoint prices with
t2000_services(MCP) orGET https://mpp.t2000.ai/api/services. Inspect one witht2 services inspect <url>. Prices are NOT listed here on purpose — they would drift from the catalog. Resolve the real price at call time (the--max-priceceiling guards against overpaying), or runt2 pay <url> --dry-runto see what would be charged before paying.
The catalog spans every major AI + data API, grouped roughly as:
This list is a capability map, not the exhaustive endpoint set — always discover via the catalog before calling.
t2 pay https://mpp.t2000.ai/openai/v1/chat/completions \
--data '{"model":"gpt-4o","messages":[{"role":"user","content":"Explain quantum computing in 3 sentences"}]}'
t2 pay https://mpp.t2000.ai/brave/v1/web/search \
--data '{"q":"latest Sui blockchain news"}'
t2 pay https://mpp.t2000.ai/fal/fal-ai/flux/dev \
--data '{"prompt":"a futuristic city at sunset, cyberpunk style"}'
t2 pay https://mpp.t2000.ai/openweather/v1/weather \
--data '{"q":"Tokyo"}'
t2 pay https://mpp.t2000.ai/resend/v1/emails \
--data '{"from":"[email protected]","to":"[email protected]","subject":"Hello","text":"Sent by an AI agent"}'
t2 pay https://mpp.t2000.ai/judge0/v1/submissions \
--data '{"source_code":"print(42)","language_id":71}'
# Send a postcard
t2 pay https://mpp.t2000.ai/lob/v1/postcards \
--max-price 2 \
--data '{
"to":{"name":"Jane Doe","address_line1":"123 Main St","address_city":"San Francisco","address_state":"CA","address_zip":"94105"},
"from":{"name":"AI Agent","address_line1":"456 Oak Ave","address_city":"Palo Alto","address_state":"CA","address_zip":"94301"},
"front":"https://example.com/front.png",
"back":"https://example.com/back.png",
"use_type":"operational"
}'
# Send a letter
t2 pay https://mpp.t2000.ai/lob/v1/letters \
--max-price 2 \
--data '{
"to":{"name":"Jane Doe","address_line1":"123 Main St","address_city":"San Francisco","address_state":"CA","address_zip":"94105"},
"from":{"name":"AI Agent","address_line1":"456 Oak Ave","address_city":"Palo Alto","address_state":"CA","address_zip":"94301"},
"file":"https://example.com/letter.pdf",
"use_type":"operational",
"color":false
}'
# Verify a US address
t2 pay https://mpp.t2000.ai/lob/v1/verify \
--data '{"primary_line":"123 Main St","city":"San Francisco","state":"CA","zip_code":"94105"}'
t2 pay https://mpp.t2000.ai/googlemaps/v1/directions \
--data '{"origin":"San Francisco, CA","destination":"Palo Alto, CA"}'
t2 pay https://mpp.t2000.ai/coingecko/v1/price \
--data '{"ids":"sui,bitcoin,ethereum","vs_currencies":"usd"}'
t2 pay https://mpp.t2000.ai/alphavantage/v1/quote \
--data '{"symbol":"AAPL"}'
t2 pay https://mpp.t2000.ai/newsapi/v1/headlines \
--data '{"country":"us","category":"technology"}'
t2 pay https://mpp.t2000.ai/deepl/v1/translate \
--data '{"text":["Hello, how are you?"],"target_lang":"ES"}'
t2 pay https://mpp.t2000.ai/exa/v1/search \
--data '{"query":"best practices for AI agent payments","numResults":5}'
t2 pay https://mpp.t2000.ai/jina/v1/read \
--data '{"url":"https://docs.sui.io/concepts/tokenomics"}'
t2 pay https://mpp.t2000.ai/serper/v1/search \
--data '{"q":"Sui blockchain TVL 2026"}'
t2 pay https://mpp.t2000.ai/screenshot/v1/capture \
--data '{"url":"https://example.com","format":"png","viewport_width":"1280"}'
t2 pay https://mpp.t2000.ai/qrcode/v1/generate \
--data '{"data":"https://t2000.ai","size":"400x400"}'
t2 pay https://mpp.t2000.ai/pdfshift/v1/convert \
--data '{"source":"https://t2000.ai/docs"}'
t2 pay https://mpp.t2000.ai/replicate/v1/predictions \
--data '{"model":"meta/llama-3-70b-instruct","input":{"prompt":"Explain DeFi in 3 sentences"}}'
t2 pay https://mpp.t2000.ai/hunter/v1/search \
--data '{"domain":"mystenlabs.com"}'
t2 pay https://mpp.t2000.ai/ipinfo/v1/lookup \
--data '{"ip":"8.8.8.8"}'
t2 pay https://mpp.t2000.ai/serpapi/v1/flights \
--data '{"departure_id":"LAX","arrival_id":"NRT","outbound_date":"2026-05-01","type":"2"}'
t2 pay https://mpp.t2000.ai/exchangerate/v1/convert \
--data '{"from":"USD","to":"EUR","amount":100}'
t2 pay https://mpp.t2000.ai/virustotal/v1/scan \
--data '{"url":"https://suspicious-site.com"}'
t2 pay https://mpp.t2000.ai/shortio/v1/shorten \
--data '{"url":"https://example.com/very/long/url/path"}'
t2 pay https://mpp.t2000.ai/pushover/v1/push \
--data '{"user":"USER_KEY","message":"Your agent has a message!"}'
PRICE_EXCEEDS_LIMIT: API asking more than --max-priceINSUFFICIENT_BALANCE: not enough available USDCUNSUPPORTED_NETWORK: MPP requires a network other than SuiPAYMENT_EXPIRED: payment challenge has expiredDUPLICATE_PAYMENT: nonce already used on-chainVia MCP: use t2000_services to discover services, then t2000_pay to call them.
development
Swap tokens on Sui via Cetus Aggregator (20+ DEXs, best-route across SUI, USDC, USDsui, USDT, USDe, ETH, GOLD, NAVX, WAL, vSUI, and more). Use when asked to swap, trade, convert, exchange, or "turn X into Y". Do not use for sending — use the t2000-send skill for transfers.
tools
Set up a t2000 Agent Wallet end-to-end on the user's machine. Use when the user says "set up t2000", "install the wallet", "create my Agent Wallet", "connect t2000 to Claude / Cursor", or pastes a one-prompt install URL. Covers wallet creation, optional spending limits, and MCP wiring. Read this first when bootstrapping a new user; the other skills assume this has run.
development
Discover MPP services payable via `t2 pay`. Use when the user asks "what can I pay for?", "what AI models are available?", "show me the service catalog", "is there a weather API?", or any other discovery question. Pairs with the t2000-pay skill (discovery first, then pay).
data-ai
Rebalance the wallet to a target allocation by executing multiple swaps in one atomic Payment Intent. Use when asked to rebalance, adjust allocation, "shuffle my positions", or move from one set of holdings to another. Every leg prices against the same on-chain snapshot — no cross-leg slippage drift; user signs once.