ビットコイン · トロン · EVM · Solana — 入力欄はひとつ
トランザクションが失敗したのはなぜ?
トランザクションハッシュ、署名、エクスプローラーのリンクを貼るだけ。チェーンは自動判定され、失敗したプログラム/コントラクト、デコードしたエラー、そして実際に効く対処法が返ります。
診断の仕組み
3 ステップ、ブラックボックスなし。すべて検証ノードが実際に記録したトランザクションから導きます。
壊れた命令を特定
失敗したトランザクションには命令のインデックスとエラーが残ります。そのインデックスから、拒否したプログラム(System、SPL Token、Jupiter、Raydium、Pump.fun など)を特定します。
エラーコードをデコード
カスタムコードはプログラム固有です。6001 は Jupiter ではスリッページですが、別のプログラムでは意味が違います。コードを投げたプログラムに対応づけ、それでも分からないときはプログラム自身のログ行を読みます。
コードではなく解決策を提示
診断は具体的な次の行動で終わります。スリッページを上げる、SOL を補充する、トークンアカウントを作り直す、クォートを更新する。あわせて生の証拠も表示するので、自分で確認できます。
入力欄ひとつで 9 チェーン
ネットワークを選ぶ必要がないので、選び間違えも起きません。入力形式で系統を判断し、ハッシュはその系統の全チェーンに並行で問い合わせます。
よく見る 5 つの失敗
各行から、原因・対処リスト・実際のログ例を含む詳細ページに移動できます。
| 表示されるもの | 意味 | すぐできる対処 |
|---|---|---|
スリッページ許容値を超過custom program error 0x1771 |
価格がスリッページ上限を超えたため、不利な価格で約定せずスワップが取り消されました。 | スリッページを少し上げるか、取引量を減らします。 |
手数料を払う SOL が不足InsufficientFundsForFee |
手数料を支払うアカウントに、ネットワーク手数料と新規アカウントのレントを賄う SOL がありません。 | ウォレットに 0.01 SOL 程度を送って再試行します。 |
ブロックハッシュが見つからない(失効)BlockhashNotFound |
ブロックハッシュの有効期間(約 60〜90 秒)を超えて待機したため失効しました。 | そのまま再試行を。ウォレットが新しいハッシュで署名し直します。 |
トークン残高が不足custom program error 0x1 |
送る数量よりトークン残高が少ないか、2 つの命令が同じ残高を消費しました。 | 残高を更新し、少ない数量で再試行します。 |
トークンアカウントが凍結custom program error 0x11 |
トークン発行体がこのアカウントを凍結しました。解除できるのは発行体だけです。 | 発行体に連絡してください。他の誰も解除できません。 |
チェーン別のエラー事典
各項目で、エラーの意味・返しているプログラムやコントラクト・解消する具体手順を説明します。
失敗したとき、チェーン上で実際に何が起きているか
Solana のトランザクションはアトミックです。すべての命令が成功するか、1 つも成立しないかのどちらかです。あるプログラムが命令を拒否すると、ランタイムはトランザクション全体を巻き戻しますが、手数料は徴収されます。検証ノードは処理とブロックへの取り込みをすでに済ませているからです。失敗したスワップで数千 lamports を失い、トークン残高はそのままなのはこのためです。
ウォレットに表示されるエラーは表面にすぎません。その下には 3 つの異なるシグナルがあり、しかも一致しないことがよくあります。
- ランタイムエラー — 失敗した命令のインデックスを伴う
InstructionErrorと、InsufficientFundsのような組み込み名、または{"Custom": 6001}のようなプログラム定義コード。 - プログラムのコード — 各プログラムは独自の enum を公開しています。6001 は Jupiter ではスリッページですが、別のプログラムでは権限チェックかもしれません。誤ったプログラムでデコードすると、自信たっぷりに間違った答えを返します。エラー解説ツールで最も多いバグがこれです。
- プログラムログ — 失敗直前にプログラムが出力するメッセージ。これが ground truth です。
Program JUP6… failed: custom program error: 0x1771の 1 行で、プログラムとコードの両方が分かります。
Tx Doctor はこの 3 つをすべて読み、そのうえで説明を出します。見たことのないコードに当たったときは推測せず、はっきりそう言い、生のログも表示するので自分で結論を検証できます。
失敗に見えて失敗ではないケース
よくある問い合わせのうち 2 つは、オンチェーンの失敗ですらありません。1 つはブロックハッシュの失効です。署名はされたもののチェーンに載らなかったので、トランザクションは存在せず、資金も動いていません。もう 1 つはウォレット側のシミュレーション警告です。多くの UI は送信前にスワップをシミュレーションするため、怖い赤い文字は予測であって記録された結果ではありません。チェーン上で署名が見つからないなら、何も起きていません。安心して再試行してください。
よくある質問
Solana のトランザクションが失敗したのはなぜ?
多くは 4 種類に分かれます。スワップのスリッページ超過、手数料やレント用の SOL 不足、凍結または未作成のトークンアカウント、ブロックハッシュの失効です。上に署名を貼ると、どのプログラムが拒否したかとエラーコードの意味が分かります。
ウォレットや秘密鍵は必要ですか?
いいえ。読み取り専用の RPC 呼び出しで公開オンチェーンデータを読むだけです。ウォレット接続、署名、シードフレーズの入力を求めることはありません。それを求めるものは詐欺です。
失敗したトランザクションにも手数料はかかりますか?
はい。ロールバックされる前に取り込まれ実行されているため、基本手数料と優先手数料は支払われます。通常は 1 セント未満です。
custom program error 0x1771 とは何ですか?
0x1771 は 6001 で、Jupiter ではスリッページ許容値の超過を意味します。価格が上限を外れたため、ルーターは不利な価格で約定させずスワップを取り消しました。
Ethereum、Base、ビットコイン、TRON でも使えますか?
はい。0x のハッシュは Ethereum、Base、Arbitrum One、OP Mainnet、Polygon、BNB Chain を並行して調べ、実際に実行したチェーンでデコードします。64 桁のハッシュはビットコインと TRON を、base58 の文字列は Solana を調べます。
トランザクションが見つかりません。どうすれば?
数秒前に送信した、チェーンに載る前に失効した、あるいはテストネットの可能性があります。少し待って再試行するか、ブロックエクスプローラーでハッシュを開いてください。