get_transaction_status
Polls a transaction's final status from the blockchain. Returns pending, success, failed, or dropped—detecting unlandable Solana txs via durable nonce or block height.
Instructions
Poll a transaction's status via the chain's RPC (EVM / Solana) or TronGrid (TRON). Returns pending / success / failed, plus 'dropped' on Solana when the tx is mathematically unable to land. Pass chain='tron' with the bare hex txID for TRON; chain='solana' with the base58 signature for Solana. For Solana, ALSO pass whichever drop-detection field send_transaction returned: (a) durableNonce for nearly every send (native/SPL sends, nonce_close, jupiter_swap, all marginfi_* actions) — the tool reads the on-chain nonce account and reports 'dropped' if it rotated past the baked value; or (b) lastValidBlockHeight for legacy-blockhash txs (currently just nonce_init) — reports 'dropped' if current block height is past. Without either field the tool reports 'pending' forever for dropped txs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | EVM chain, 'tron', 'solana', or 'bitcoin'. | |
| txHash | Yes | Transaction identifier. EVM: 32-byte hex (0x-prefixed or bare). TRON: 32-byte bare hex. Solana: 64-byte signature as base58 (86–88 chars). Bitcoin: 32-byte bare hex. All four forms are accepted. | |
| lastValidBlockHeight | No | Solana only, legacy-blockhash txs (currently just `nonce_init`). Block-height ceiling for the tx's baked blockhash — returned by send_transaction for such txs. When supplied and `getSignatureStatuses` returns null, the poller compares against current block height and reports `dropped` if the window has passed. Omit for EVM / TRON; ignored on those chains. For durable-nonce Solana txs (every send this server builds except nonce_init), use `durableNonce` instead — it's authoritative. | |
| durableNonce | No | Solana only, durable-nonce txs (native_send, spl_send, nonce_close, jupiter_swap, all marginfi_* actions). Returned by send_transaction on these flows. When supplied and `getSignatureStatuses` returns null, the poller reads the on-chain nonce account: if the nonce rotated past `nonceValue` (or the account was closed), the tx can never land and is reported as `dropped` with diagnostic fields `nonceAccount` / `bakedNonce` / `currentNonce`. Without this field the poller reports `pending` forever for dropped durable-nonce txs — a known Phase 2 UX gap. |