Skip to main content
Version: 2.15.0

IncludedTransaction

type IncludedTransaction = Pick<PendingTransaction, "transaction" | "toJSON" | "toPretty" | "hash" | "data"> & {
inclusionBlockHeight?: number;
status: "included";
getDepth: Promise<TransactionDepthInfo>;
safeGetDepth: Promise<TransactionDepthInfo | null>;
waitForFinality: Promise<TransactionDepthInfo>;
};

Defined in: lib/mina/v1/transaction.ts:311

Represents a transaction that has been successfully included in a block.

Type Declaration​

inclusionBlockHeight?​

optional inclusionBlockHeight?: number;

The block height at which this transaction was included. May be undefined if not tracked (e.g., when using LocalBlockchain without block height simulation).

status​

status: "included";

Example​

try {
const includedTx: IncludedTransaction = await pendingTransaction.wait();
// If wait() resolves, it means the transaction was successfully included.
console.log(`Transaction ${includedTx.hash} included in a block.`);
} catch (error) {
// If wait() throws, the transaction was not included in a block.
console.error('Transaction failed to be included in a block:', error);
}

getDepth()​

getDepth(options?: DepthOptions): Promise<TransactionDepthInfo>;

Fetches the current depth (confirmation count) of this transaction. Depth represents the number of blocks built on top of the block containing this transaction.

Parameters​

options?​

DepthOptions

Optional configuration for the depth query

Returns​

Promise<TransactionDepthInfo>

TransactionDepthInfo with depth, block heights, and finality status

Throws​

Error if the transaction cannot be found in recent blocks or a network error occurs

Example​

const included = await pendingTransaction.wait();
const depthInfo = await included.getDepth();
console.log(`Depth: ${depthInfo.depth}, Finalized: ${depthInfo.isFinalized}`);

See​

https://docs.minaprotocol.com/mina-protocol/lifecycle-of-a-payment

safeGetDepth()​

safeGetDepth(options?: DepthOptions): Promise<TransactionDepthInfo | null>;

Safe variant of IncludedTransaction.getDepth that returns null instead of throwing.

Parameters​

options?​

DepthOptions

Optional configuration for the depth query

Returns​

Promise<TransactionDepthInfo | null>

TransactionDepthInfo if found, null otherwise

Example​

const depthInfo = await included.safeGetDepth();
if (depthInfo?.isFinalized) {
console.log('Transaction has reached finality!');
}

waitForFinality()​

waitForFinality(options?: WaitForFinalityOptions): Promise<TransactionDepthInfo>;

Polls the network until the transaction reaches the specified finality threshold. Returns the final TransactionDepthInfo once finality is reached.

Use the onProgress callback to receive updates on each poll — useful for updating UIs with confirmation progress.

Parameters​

options?​

WaitForFinalityOptions

Configuration for the finality wait

Returns​

Promise<TransactionDepthInfo>

TransactionDepthInfo once finality is reached

Throws​

Error if max attempts exceeded or transaction not found

Example​

// Simple usage — fire and forget
included.waitForFinality().then(info => {
console.log(`Finalized at depth: ${info.depth}`);
});

// With progress callback for UI updates
included.waitForFinality({
finalityThreshold: 10,
onProgress: (info) => {
console.log(`${info.depth}/${info.finalityThreshold} confirmations`);
},
});

See​

https://docs.minaprotocol.com/mina-protocol/lifecycle-of-a-payment