https://mcp.ottoai.services, supply an address you
control, and ask for a swap. What comes back is an unsigned execution plan:
the ordered steps, the decoded calldata, the address the plan is bound to, an
expiry, a digest, and the checks the constructor already ran on its own output.
You sign it and broadcast it yourself. Otto has no path in that response by
which it signs or submits.
The four otto_prepare_* constructors are free to call.
Try it in one call
accountProfile.address. Put in an address you control and the plan is one only
you can execute.
What comes back
Each constructor’s own description states it verbatim: “never signs or
submits.”
The plan states its own limits
replay_disclosure comes back on every envelope:
The twelve checks
Anotto_prepare_swap envelope carries twelve assertions, each reported with
its result in the response. A check that does not hold refuses the call by
name rather than returning a plan.
The four constructors
Connection details for Claude Code, Claude Desktop, Cursor, Codex CLI, and
ChatGPT, plus the full tool list, are on
Otto Intel MCP.
Optional: a bounded permission to submit
Signing it yourself is the default and needs nothing from Otto. If you would rather Otto submitted for you, you can grant a bounded, revocable permission for Base swaps, and take it back whenever you want.
The permission itself is fenced by a single project-scope policy, and that
fence is publicly readable — call
otto_delegation_fence_status with no
arguments and no header:
valid_until, that the account is one of your own, that the
envelope passes the verifier for exactly the request that produced it, and that
the plan sits inside the fence. Where the output lands is Otto’s own
server-side check. The three steps then go out in order, each waited to a
sealed block; a halt clears the allowance and reports the read-back.
Granting a permission today runs through otto-execute delegate, a command-line
tool that is built but not yet published. Until it is, the constructors
above are the reachable path, and the fence status is readable by anyone.
Which rail you are on
This page describes the agent rail. Otto’s/app deposit surface runs on a
different arrangement — a Safe your own wallet solely owns, carrying an
Otto-operated trading permission. The two are mapped side by side on
Your Safe Account & Custody. Read the
rail you are on.
Related
- Otto Intel MCP — connecting the hosted MCP, and the full tool list
- Your Safe Account & Custody — who signs on each Otto surface
- Empire Access Layer — paying Otto’s endpoints per call from your own agent’s wallet
- What’s Live & What’s Next — current product status
