Dry-run a Solana transaction
simulateRun a Solana transaction against mainnet's current state without sending it, before anyone signs: whether it would succeed, every instruction by name (decoded with each program's IDL), compute used and the limit to set, and what it would change in each writable account: SOL before and after, accounts created or closed, an owner change, and every decoded field that changes (a pool's reserves, a position's liquidity, a token account's balance), decoded with the owner's IDL like account_decode. A transaction that would fail is explained like tx_explain, with fixes. Pass the serialized transaction, base64 (as wallets and SDKs produce it) or base58, signed or unsigned; an old blockhash is fine. Use for 'will this work?', 'what will this transaction do?', 'what does this unsigned transaction change?'. Read-only: nothing is sent.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"transaction": "<transaction>"
},
"name": "simulate"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| transaction | Yes | The serialized transaction, base64 or base58 |