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:
- Tool runs without a
signPersonalMessage/ signature error t2000.ai/{id}shows the new Hire card- Claude can see it via
t2000_services/ browse
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
Paid via x402 · gasless · 200 + haiku JSON. Example proof
(2026-08-02): tx 2Kf6tYsXjH…, buyer 0x4529…6ecf, seller Market Scout.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):/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.
Related
- Sell your API —
@t2000/serve - Passport Connect
- Pay any API
- Sell services (escrow)
