Custom Gas Fee Control added to Create transaction requests API
The Create transaction requests API (/wallet/send-many-transaction) now supports the following optional parameters for gas fee estimation when processing a transaction for EVM chains. This improves transaction confirmation rate and prioritises block inclusion speed over default cost savings by proving more control over gas fee price estimates.
| Object/ Parameter | Description | Type | Accepted Values |
|---|---|---|---|
| feeLevel | The fee level setting used to pay gas fee when processing a transaction for EVM chains. It is configured based on the blockchain network’s traffic. | String | market, custom, slow, aggressive |
| evmCustomFee | User defined custom fee per transaction. Applicable for EVM chains when feeLevel is custom. | String | - |
| evmCustomFee.maxPriorityFeePerGas | Enter fee value in Wei. | String | Positive number, example: “3000000000” |
| evmCustomFee.maxFeePerGas | The maximum fee (Wei) per unit of gas in a transaction. | String | Positive number, example: “20000000000” |
Note
maxPriorityFeePerGascannot be greater thanmaxFeePerGas.- The parameter values must be a positive number.
Refer to the Retrieve estimated gas fees and rates API (/get-approx-fees) to get the latest fee rates.
Transaction Lifecycle Timestamp and Metrics added to Transaction API References
The transaction APIs as part of the Express SDK now return additional timeline logs for withdrawal and deposit transactions. The system-level alerts provide insight into the timestamps of a transaction lifecycle to help users keep track of the real-time transaction progress.
The following API references return the timestamps and metrics objects when a transaction is processed in 200 OK responses.
- Retrieve a transaction
- Retrieve hot wallet transactions
- Retrieve all transactions by status
- Retrieve pending transactions
The following table explains the object values:
| Field | Description | Data Type | Applicable Transaction |
|---|---|---|---|
timestamps.initiatedAt | Indicates the time when a transaction is initiated. | String | Send transactions |
timestamps.signedAt | Indicates the time when a transaction is fully approved, i.e., final signature. | String | Send transactions |
timestamps.broadcastedAt | Indicates the time when a transaction is broadcasted on the network. | String | Send transactions |
timestamps.blockTimestamp | Indicates the time of a transaction’s on-chain block confirmation. | String | Send transactions |
timestamps.completedAt | Indicates the time when a transaction is fully processed by the Liminal system. | String | Send and Receive transactions |
timestamps.detectedAt | Indicates the time when a transaction is detected by the Liminal system. | String | Send and Receive transactions |
timestamps.webhookFirstAttemptAt | Indicates the time when the final webhook is attempted for the first time. | String | Send and Receive transactions |
timestamps.webhookDeliveredAt | Indicates the time when the final webhook is attempted for the first time. | String | Send and Receive transactions |
metrics.timeToConfirmInSec | Indicates the time (seconds) taken to confirm a transaction on chain. | String | Send transactions |
metrics.detectionLatencyInSec | Indicates the time (seconds) between on-chain confirmation and system detection. | String | Receive and Internal transactions |
metrics.totalProcessingTimeInSec | Indicates the total time taken (seconds) to process the transaction from when it was initiated to on-chain confirmation. Send transaction processes the time from when transaction is initated to completed (completedAt - initiatedAt). Receive transaction reports trsnaction from it is completed (completedAt - blockTimestamp) | String | Send and Receive transactions |
Response example of a Send transaction:
{
"timestamps": {
"initiatedAt": "2026-06-01T10:00:00.000Z",
"signedAt": "2026-06-01T10:00:05.000Z",
"broadcastedAt": "2026-06-01T10:00:06.000Z",
"blockTimestamp": "2026-06-01T10:00:18.000Z",
"completedAt": "2026-06-01T10:00:18.500Z",
"detectedAt": "2026-06-01T10:00:01.000Z",
"webhookFirstAttemptAt": "2026-06-01T10:00:19.000Z",
"webhookDeliveredAt": "2026-06-01T10:00:19.200Z"
},
"metrics": {
"timeToConfirmInSec": "10",
"detectionLatencyInSec": null,
"totalProcessingTimeInSec": "15"
}
}
