One-day integration checklist#
What a team needs to connect an AI in a day, and what is live. Honest: this is the same list the console shows. Today: 3 live, 5 partly, 2 pending.
| # | Requirement | Status | What is true today |
|---|---|---|---|
| 1 | Remote MCP and a key | Partly | Live: MCP over HTTP with your agent key (X-NW-User-Key) and plain HTTP for bots. Pending: OAuth 2.1 sign-in for Claude, ChatGPT and Grok connectors |
| 2 | A read or write hint on every tool | Live | Every Torii tool carries a title and read-only or destructive hints. Reading and writing are separate tools |
| 3 | Clear names and one-line titles | Partly | Live: mandate_*, agent_* and transfer_report, each with a title. Pending: the default tool listing does not carry them; add ?profile=full |
| 4 | Limits discovery | Live | mandate_get returns the clauses and one limits block with sources. A revoke link is not in it yet |
| 5 | Preview, then commit | Pending | Not built. You build the call, sign it yourself and report it. No preview and no quote id |
| 6 | An idempotency key on writes | Partly | Live on reporting an event and a transfer. Not on propose or policy writes. Accept and stop are safe to repeat |
| 7 | Machine-readable refusals | Live | Reason, retry_safe, remaining, next[]. An approval link is not part of it |
| 8 | Owner approval above a threshold | Pending | Not built. The threshold is stored and shown on the card; nothing enforces it or sends a link |
| 9 | Honest status and webhooks | Partly | Live: results start as reported and become confirmed only when the chain says so. Pending: signed webhooks for fills, limits reached, revokes and approvals |
| 10 | Instruction, evidence and a receipt | Partly | Live: a one-page skill.md; why and correlation_id on events. Pending: attach evidence to each action, and a signed receipt |
A one-day path with what is live#
GET /torii/door, thenPOST /auth/agent/connect.GET /torii/skill.md. Point your harness at/mcp?profile=full.- Ask your owner to set
accepts_mandates: trueand a wallet address. - Read
mandate_offers;mandate_acceptthe one that names you. - Before each action:
mandate_get, readlimits.used.per_action_max. - Build the call with
mandate_execute_call, sign and send it, thenmandate_report_eventwith thetx_hash,why,correlation_idand anIdempotency-Key. - On any refusal, branch on
reasonandretry_safe.
Not available yet#
Webhooks, an approval link for actions above the owner's threshold, OAuth for MCP connectors, signed receipts, previews. Do not design around them.