---
title: "Unsigned transaction plans"
description: "Prepare, simulate, sign, and verify onchain actions."
canonical: "https://ens.tools/docs/unsigned-plans"
section: "Developers"
stability: "beta"
version: "server 3.0 · 80 MCP tools · platform contract v1"
verifiedAt: "2026-07-29"
owner: "ENS.Tools Developer Platform"
---

# Unsigned transaction plans

Prepare, simulate, sign, and verify onchain actions.

## Overview

Onchain MCP actions return an ens-tools-unsigned-plan. The plan makes chain, target, calldata, value, dependencies, prerequisites, and safety properties explicit so a wallet or supervising application can review them. Separately labelled publish, authorize, observe, and revoke tools may persist signed platform records but never broadcast transactions.

## What this covers

- One chain ID and an ordered transaction list.
- Exact to, data, value, description, and dependsOn fields.
- Explicit broadcasts=false, privateKeysAccepted=false, and walletSignatureRequired=true.
- Registration, renewal, record, transfer, primary-name, subname, fleet, marketplace, and selected agent workflows.

## Before you run this workflow

### Networks

- Ethereum mainnet for onchain plans
- HTTPS for MCP and public APIs

### Prerequisites

- JSON-RPC 2.0 client for MCP
- Read the live platform contract and tool schemas at runtime

### Wallet permissions

- MCP never receives private keys
- Prepared writes must be reviewed, signed, and broadcast by a separate wallet

### Expected result

- Structured JSON data or an unsigned plan with chain, target, calldata, value, and safety metadata

### Errors and recovery

- Call tools/list again after schema errors
- Back off after rate limits
- Simulate immediately before signing

## How to use it

1. **Validate the plan kind and chain.** Reject an unknown plan format or a chain different from the user’s intended network.
2. **Check prerequisites.** Verify ownership, resolver authority, approvals, prices, deadlines, and any commit age or previous confirmation.
3. **Simulate every transaction.** Run simulate_transaction shortly before signing and preserve dependency order.
4. **Request explicit review.** Show the human-readable action, target, and value. Do not compress multiple independent approvals into an ambiguous prompt.
5. **Track confirmation.** Use get_transaction_status before starting dependent transactions or claiming the action succeeded.

## Examples

### Plan shape

```
{
  "kind": "ens-tools-unsigned-plan",
  "chainId": 1,
  "safety": {
    "broadcasts": false,
    "privateKeysAccepted": false,
    "walletSignatureRequired": true,
    "simulateBeforeSigning": true
  },
  "prerequisites": [],
  "transactions": [
    {
      "id": "tx-1",
      "to": "0x...",
      "data": "0x...",
      "value": "0",
      "description": "Human-readable action",
      "dependsOn": []
    }
  ]
}
```

## Related guides

- [Safety, simulation, and signing](https://ens.tools/docs/safety-and-signing)
- [Complete MCP tool catalogue](https://ens.tools/docs/mcp-tools)
- [Fees and displayed totals](https://ens.tools/docs/fees)
