Failed Solana transaction in, working transaction out. Exact cause, rebuilt tx, verifiable repair.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Explains why a transaction that landed on mainnet failed: the exact failing instruction in the call tree, the named error, its cause, and how to fix it. Read-only and fast. Use repair_transaction when you want a working transaction back.
Transaction signature or explorer URL.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Explains why a transaction that landed on mainnet failed: the exact failing instruction in the call tree, the named error, its cause, and how to fix it. Read-only and fast. Use repair_transaction when you want a working transaction back.
| Argument | Type | Description |
|---|---|---|
| signature* | string | Transaction signature or explorer URL. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"signature"
],
"properties": {
"signature": {
"type": "string",
"description": "Transaction signature or explorer URL."
}
}
}Looks up what a custom program error code means for a given program, using 1,800+ named errors from major Solana programs plus the runtime's own errors. Use it when you only have a code such as 6001 or 0x1771 from a simulation or an RPC response.
| Argument | Type | Description |
|---|---|---|
| code* | any | Error code as a number, or a hex string like 0x1771. |
| programId* | string | Base58 address of the program that raised the error. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"programId",
"code"
],
"properties": {
"code": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Error code as a number, or a hex string like 0x1771."
},
"programId": {
"type": "string",
"description": "Base58 address of the program that raised the error."
}
}
}Give it a Solana transaction that failed, or one you are about to send. It finds the cause and returns a rebuilt UNSIGNED transaction that has been simulated against live mainnet state to prove it passes. Fixes expired blockhashes, compute-unit limits, priority fees, loaded-data limits, slippage on plain Jupiter swaps (fresh quote, same tolerance), and slippage on direct Pump.fun, PumpSwap, Raydium AMM v4, Meteora DBC and Meteora DAMM v2 swaps (only the limit moves, never more than 25% against the user). Handles legacy, v0 and version 1 (SIMD-0385) transactions and durable nonces. When the failure cannot be fixed by rebuilding (not enough funds, a private program's own error), it says so and explains why instead of returning something that would fail again. Pass exactly one of `transaction` or `signature`. Sign the returned transaction with your own key and send it within about 60 seconds.
| Argument | Type | Description |
|---|---|---|
| signature | string | Signature (or explorer URL) of a transaction that already landed on mainnet and failed. |
| transaction | string | Base64 serialized transaction, signed or unsigned. Use this before sending, or after a send failed. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"signature": {
"type": "string",
"description": "Signature (or explorer URL) of a transaction that already landed on mainnet and failed."
},
"transaction": {
"type": "string",
"description": "Base64 serialized transaction, signed or unsigned. Use this before sending, or after a send failed."
}
}
}