merkle supports bundles on both Ethereum and BSC. Bundles are accepted through the standard eth_sendBundle endpoint:
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_sendBundle",
"params": [
{
txs, // Array[String], A list of signed transactions to execute in an atomic bundle
blockNumber, // String, a hex encoded block number for which this bundle is valid on
minTimestamp, // (Optional) Number, the minimum timestamp for which this bundle is valid, in seconds since the unix epoch
maxTimestamp, // (Optional) Number, the maximum timestamp for which this bundle is valid, in seconds since the unix epoch
revertingTxHashes, // (Optional) Array[String], A list of tx hashes that are allowed to revert
replacementUuid, // (Optional) String, UUID that can be used to cancel/replace this bundle
}
]
}
The RPC will return a bundle hash:
{
"id": 1,
"result": "0x......" // bundle hash
}
Bundles can be cancelled on Ethereum using the eth_cancelBundle RPC endpoint with the replacement UUID.
Bundle cancellation is "best effort", not guaranteed! Cancelling a bundle close to the end of the slot might not work.