get_transaction_status
Poll a transaction's on-chain status across EVM chains, Solana, TRON, or Bitcoin. Returns pending, success, failed, or dropped status with drop detection for Solana when using durable nonce or block height fields.
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. |