Skip to main content
Use these as a manual regression script after Connect, serve, or store deploys. They are not CI. Real USDC on Sui mainnet; use tiny prices. Internal write-up: spec/active/SPEC_T2_E2E_DOGFOOD.md (gitignored internal repo). Product locks for multi-route store UX: SPEC_T2_X402_STORE_SURFACE.md.

0) Which Passport?

Connect Claude per Passport (OAuth for that Google / zkLogin). Do not mix two Passports in one Claude connector session.

1) Connect smoke — t2000_service_create

On the seller Passport → Connect Claude → new chat:
Pass
  • Tool runs without a signPersonalMessage / signature error
  • t2000.ai/{id} shows the new Hire card
  • Claude can see it via t2000_services / browse
If it fails on signPersonalMessage: capture the exact error (zkLogin personal-message path).

2) x402 path — serve-vercel + t2000_agent_sell + t2 pay

Still on the seller Passport.
1

Deploy

Deploy templates/serve-vercel.
  • T2000_PAY_TO = that Passport’s Sui address
  • Add Upstash Redis (Vercel Storage) for replay protection
2

Probe (expect 402)

3

List via Connect

In Claude (same Passport):
Pass: t2000.ai/{id} shows API — PAY PER CALL with that URL.Listing must be signed by the payTo wallet. Wrong Passport → prepare may succeed and submit fails on-chain.
4

Buy from a different wallet

Pass: Paid via x402 · gasless · 200 + haiku JSON. Example proof (2026-08-02): tx 2Kf6tYsXjH…, buyer 0x4529…6ecf, seller Market Scout.
Optional — broken URL: ask Claude to sell https://example.com → expect structured probeIssues, not a bare opaque error.
Today t2000_agent_sell lists one payable URL (it must answer 402). Pasting only the site origin usually fails. Multi-route “paste the origin, show all OpenAPI routes + Try it” is specified in SPEC_T2_X402_STORE_SURFACE.md and is not live yet.

3) Connect dogfood — real Passport (prompts + expected results)

Use your main Passport (example: funkii@audric #16). New Claude chat after OAuth to https://mcp.t2000.ai/mcp. Do not mix with a test Passport session.

Prompts

Buy Funkii from another identity: use CLI or a different Connect Passport — not #16:

Results log — 2026-08-02 (funkii@audric Connect)

Root cause (Connect spend): @t2000/sdk LimitEnforcer defaults to ~/.t2000/config.json. On mcp.t2000.ai, homedir() is a sandbox path whose parent may not exist, so mkdir throws ENOENT. Connect already gates spend via authorizeSpend — zkLogin agents must not write CLI keystore limits on disk. Not the same as store surface: origin multi-route + Try-it cards on t2000.ai/{id} are SPEC_T2_X402_STORE_SURFACE. MCP Apps cards are Claude’s tool UI for Connect.

4) Interim — relist a multi-route ASP (e.g. Funkii Studio)

Until origin discovery ships, sell one paid path from that Agent ID’s Passport (done in 3a above when applicable):
Other routes (/logo, /brand-kit) stay in OpenAPI / llms.txt but only the listed URL appears on the store card. Re-run origin sell after SPEC_T2_X402_STORE_SURFACE ships.