t2000-skills/skills/t2000-setup/SKILL.md
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.
npx skillsauth add mission69b/t2000 t2000-setupInstall 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.
Get a fresh user from "nothing installed" to "Agent Wallet ready" in under 5 minutes. This is the canonical entry point for the one-prompt install UX:
Run curl -sL https://t2000.ai/skills/t2000-setup, and use the returned setup
instructions to set up my Agent Wallet.
When invoked through that prompt, the LLM fetches this file, then executes the steps below in order.
t2 init errors, do not proceed to the next step; report the error and ask the user to retry.0o600 perms (matching the Sui CLI). The user owns the file; back it up via t2 export.t2000_pay. Discover the endpoint with t2000_services, then pay. Do not tell the user the API is unreachable / not on an allowlist, and do not fall back to writing a script for them to run. The wallet IS the connector.npm install -g @t2000/cli
Verify:
t2 --version
# Should print: 4.x.x
If npm is missing, point the user to https://nodejs.org/ (Node 18+).
Binary naming.
npm install -g @t2000/cliinstalls two equivalent bins:t2(canonical) andt2000(alias) — both point at the same CLI, sot2 <verb>andt2000 <verb>are interchangeable. If you gett2: command not foundright after a successful install, npm's global bin directory isn't on yourPATH— see Troubleshooting at the bottom of this skill.
t2 init # fresh wallet
t2 init --import # import an existing Bech32 secret (interactive prompt)
t2 init --import suiprivkey1xxx... # import via flag (warns: shell history exposure)
t2 init (no flag):
~/.t2000/wallet.key (mode 0o600).t2 init --import:
suiprivkey1... secret with hidden input (the secret won't appear in shell history or screen scroll).t2 export on the source box), or bringing in a key from another tool (Sui CLI, hardware wallet, etc.).Upgrading from v3 (PIN-encrypted)? v4 doesn't auto-migrate v3 AES wallets — a v3 file at
~/.t2000/wallet.keywill throwWALLET_CORRUPT. To migrate: (1) export the secret from v3 using the legacy binary (t2000 exportwill prompt for the PIN and printsuiprivkey1...), (2) move or delete the v3 file at~/.t2000/wallet.key, (3)t2 init --importand paste the secret. The same Bech32 secret produces the same address — funds carry over automatically. (Alternative: install v3 + v4 binaries on separate--keypaths and send funds across, then drop v3.)
t2 receive
Shows the deposit address + Payment Kit URI + an ANSI QR code. Tell the user:
t2 services list shows prices from $0.005).t2 limit set --per-tx 50 # cap every write at $50 USD
t2 limit set --daily 200 # cap every send at $200 USD
v4 ships with no default limits — wallets are unconstrained until the user opts in. The t2 limit command writes to ~/.t2000/config.json; CLI writes (t2 send, t2 swap, t2 pay) honor the caps and surface a LIMIT_EXCEEDED error when exceeded. Use --force on a write to override one time.
⚠️ Limits gate CLI writes only — NOT MCP (the AI-client path). Today
t2 limitconstrainst2 send/swap/payrun from the terminal. Writes initiated through the MCP server you wire up in Step 5 are not gated yet — enforcement parity is a Phase D item. Do not set a daily cap and then fund the wallet assuming the AI agent can't exceed it: the MCP path is exactly the one that currently bypasses the cap. Treatt2 limitas a CLI-only guardrail, and keep agent-wallet balances small, until parity ships.
To view current limits:
t2 limit show
To clear them:
t2 limit reset
Ask the user which AI client they use, then run:
t2 mcp install
This is interactive — it discovers installed clients (Claude Desktop, Cursor, Windsurf, Cline, Continue) and offers a multi-select. The CLI writes the correct config block into each chosen client.
After install, the user must restart the AI client for it to pick up the new MCP server.
6a — CLI smoke (in the same terminal):
t2 balance
Should print:
6b — AI client tool smoke (after restart):
What's my t2000 balance?
Should invoke the t2000_balance MCP tool and return the same numbers.
6c — AI client prompt smoke:
The MCP server doesn't just expose tools — it also exposes one skill-<name> prompt per t2000 skill (auto-registered from t2000-skills/skills/*/SKILL.md). Type / in the AI client's chat input to open the prompt picker. You should see:
skill-setup — this skillskill-send — sending USDC / USDsui / SUIskill-swap — swapping via Cetusskill-pay — paying for MPP servicesskill-receive — generating payment requestsskill-services — discovering MPP gateway servicesskill-check-balance — reading the walletskill-mcp — MCP integration deep-diveRun /skill-check-balance (or just type and accept the autocomplete). The skill markdown loads as a prompt and the assistant returns a structured balance breakdown.
Tip — triggering the wallet in a fresh session. When you start a brand-new chat and ask for an external/paid API by name (e.g. "generate an image via fal.ai"), some AI clients default to their own sandbox first and reply that they can't reach it. To route through your wallet from the first message, lead with "use t2 services" — e.g. "Use t2 services to generate a hero image via fal.ai and voice it with ElevenLabs." That tells the client to load the
t2000_*tools and pay via MPP. (The recipe prompts on developers.t2000.ai already start this way.)
After setup the user has:
~/.t2000/wallet.key (plain Bech32 JSON, 0o600 perms, no PIN).~/.t2000/wallet.key. To back up, the user runs t2 export manually — never volunteer this unless asked. v4 has no PIN, so anyone with read access to the file owns the wallet.t2 limit. v4 Phase B: the CLI writes (t2 send/swap/pay) honor the caps; MCP writes do NOT yet. Enforcement parity is a Phase D consolidation. Until then, MCP can read limits via t2000_limit for narration but writes proceed without gating.After verify succeeds, surface a short menu of natural next moves:
t2000-sendt2000-swapt2000-payt2000-receivet2000-servicest2000-mcpt2 --help or browse https://developers.t2000.ai/agent-wallet#skills| Symptom | Fix |
|---|---|
| t2: command not found after npm install | npm's global bin dir isn't on PATH. Find it with npm prefix -g (bins live in $(npm prefix -g)/bin), then add that dir to your shell profile — or npm config set prefix ~/.npm-global for a durable user-level prefix. Both t2 and t2000 ship in every install. |
| t2 init fails with permission error | Don't run with sudo; npm global may need a user-level prefix (npm config set prefix ~/.npm-global) |
| t2 init fails with WALLET_EXISTS | A file already lives at ~/.t2000/wallet.key. If it's a v3 file you no longer need, move/delete it. If you still need it, point v3 + v4 at separate paths via --key. v4 does not auto-migrate v3 wallets — see the v3 upgrade note in Step 2. |
| MCP server "doesn't do anything" when run manually | Working as designed — the server is a subprocess launched by the AI client, never run from a terminal. See the t2000-mcp skill. |
| AI client doesn't see t2000_* tools after install | Restart the client. If still missing, check the per-client config path printed by t2 mcp install. |
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).
development
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.
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.
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.