Transaction Status API
API Endpoint for Querying your Transaction Status
Transactions that you submit to OpenMEV won't be observable in the public mempool.
This documentation refers to the latest version of OpenMEV (v2.0.0-draft), which is still being drafted
Potential statuses
PENDING
- The transaction was received and is currently being submitted to minersINCLUDED
- The transaction was included on-chainFAILED
- The transaction was submitted for 25 blocks and failed to be included on-chainCANCELLED
- The transaction was cancelled by the user and not included on-chainUNKNOWN
- The transaction was not received
Privacy
In order to receive a response from the status API you must provide a valid transaction hash to look up.
Response Message
OpenMEV Status API is flashbots compatible, meaning it covers at least version 0.6+ of Flashbots API.
To check the status of your transactions query the OpenMEV API Endpoint. Response messages are formatted as follows:
{
"status": "PENDING",
"hash": "YOUR_TX_HASH",
"maxBlockNumber": "latest",
"transaction": {
"from": "<SENDER>",
"to": "<RECEIVER>",
"gasLimit": "23000",
"maxFeePerGas": "300",
"maxPriorityFeePerGas": "10",
"nonce": "42",
"value": "1333333333337"
}
}
Typescript Library
// @see {@link https://github.com/manifoldfinance/libsushi/blob/master/src/SushiGuard/index.ts}
/**
* @package OpenMevTxState
* @version 2022.04
* @see {@link docs.openmev.org}
* @notice This is a flashbots-api compatible interface ( ~v0.6 )
*
* - UNCHECKED -> Tx status has not been checked and there's no information about it.
* - PROCESSING -> Tx checks are in place until a resolution happens: OK, INDETERMINATE, ERROR.
* - OK -> Relay received the Tx && all downstream miners accepted without complains && tx mined successfully
* - INDETERMINATE -> Relay received correctly the Tx && at least one miner accepted the TX && TX potentially mineable
* - ERROR -> Relay hasn't received the TX || none of the miners accepted the Tx || Tx was not mined successfully
*
*/
export enum PrivateTxState {
UNCHECKED = 'UNCHECKED',
PROCESSING = 'PROCESSING',
OK = 'OK',
INDETERMINATE = 'INDETERMINATE',
ERROR = 'ERROR',
}
export type RelayResponses = Record<string, RelayResponse>;
export interface RelayResponse {
response: JsonRpcResponse<any>;
error?: string;
}
export interface PrivateTxStatus {
transactionHash: string;
receivedAt: string;
relayedAt?: string;
minedAt?: string;
relayFailure?: boolean;
relayResponses?: RelayResponses;
}