Getting started

How it works

Every ROXI action follows the same path: the agent prepares, your wallet authorizes, the chain settles.

Four roles#

RoleWhat it doesOwns
AgentUnderstands your request and decides which tools to call.Reasoning
MCP serversLook up data, encode calls and compile code. They never sign.Preparation
Your walletShows each transaction and signs it only if you approve.Authorization
The chainExecutes the signed transaction and records the result.Settlement

Prepare, then sign#

Tools that build something onchain don't send it. They return a small instruction saying what to do next and with what data. For example, prepare-transfer from erc20-mcp returns:

prepare-transfer result
{
  "prepareForAction": "send-transaction",
  "address": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
  "data": "0xa9059cbb000000000000000000000000…"
}

prepareForAction names the metamask-mcp tool that finishes the job, and the agent passes address to it as to. There are three kinds:

  • call — a read. The agent runs call, which needs no signature, then decodes the result with the matching resolve-* tool.
  • send-transaction — a state change, such as a transfer or approval. MetaMask asks you to confirm it.
  • deploy-contract — a new contract. MetaMask asks you to confirm the deployment.

One request, end to end#

Here's what happens when you ask to send 50 USDC on Sepolia:

tool calls
you        Send 50 USDC to 0xA11c…e5 on Sepolia
agent  →   metamask-mcp  get-account           # is a wallet connected?
agent  →   metamask-mcp  switch-chain          # chainId 11155111 (you approve)
agent  →   metamask-mcp  get-token             # USDC has 6 decimals
agent  →   erc20-mcp     prepare-transfer      # encodes transfer(to, 50 USDC)
agent  →   metamask-mcp  send-transaction      # MetaMask shows it; you sign
agent  →   metamask-mcp  wait-for-transaction-receipt
agent      Sent. Transaction 0x9f2c… confirmed in block 7,214,903.

The agent never sees a private key at any step. If you reject the prompt in MetaMask, nothing is sent and the agent is told the request was declined.

Read-only versus signing tools#

Most tools only read: balances, blocks, receipts, ENS names, contract views, chain lists and compilation. They run without asking you anything. Only four metamask-mcp tools produce a signature: send-transaction, write-contract, deploy-contract and sign-message. switch-chain also asks for your approval, but signs nothing.

Note. The metamask-mcp reference marks every tool that asks for a wallet signature.