Skip to content

Transaction Status

Check if a submitted transaction landed on-chain, with confirmation details and error info.

Requires API key.

GET /v1/tx/:signature

Parameters:

  • :signature — Transaction signature (base58, 87-88 characters)

Response (confirmed):

json
{
  "signature": "5Kx9abc...3nF",
  "status": "confirmed",
  "confirmationStatus": "confirmed",
  "slot": 410750000,
  "confirmations": 15,
  "error": null,
  "fee": 5000,
  "computeUnits": 145000
}

Response (failed):

json
{
  "signature": "5Kx9abc...3nF",
  "status": "failed",
  "confirmationStatus": "confirmed",
  "slot": 410750000,
  "confirmations": 15,
  "error": "Instruction 1: got less output than minimum (slippage)",
  "fee": 5000,
  "computeUnits": 95000
}

Response (not found):

json
{
  "signature": "5Kx9abc...3nF",
  "status": "not_found",
  "reason": "Transaction not found. It may still be processing, or the signature is invalid."
}

Status values:

StatusDescription
confirmedTransaction landed and confirmed (1+ confirmations)
finalizedTransaction finalized (32+ confirmations, irreversible)
failedTransaction landed but reverted (error details provided)
not_foundTransaction not found on-chain (still processing or invalid)
errorRPC error (could not check status)

Fields:

FieldDescription
confirmationStatusRaw Solana status: processed, confirmed, finalized
slotSlot the transaction was included in
confirmationsNumber of confirmations (null if finalized)
errorError details if transaction failed
feeTransaction fee in lamports
computeUnitsCompute units consumed

Usage with /v1/swap

typescript
// 1. Build swap
const { transaction, quoteId } = await venum.buildSwap(...);

// 2. Sign
const tx = VersionedTransaction.deserialize(Buffer.from(transaction, 'base64'));
tx.sign([wallet]);

// 3. Submit
const { signature } = await venum.submitSwap(signed, quoteId);

// 4. Check status
const status = await fetch(`https://api.venum.dev/v1/tx/${signature}`, {
  headers: { 'X-API-Key': key },
}).then(r => r.json());

if (status.status === 'confirmed') {
  console.log('Swap landed!', status.fee, 'lamports fee');
} else if (status.status === 'failed') {
  console.log('Swap failed:', status.error);
}