Skip to content

Builder0x69 JSON-RPC API documentation

Primary RPC endpoint with proximity steering: https://builder0x69.io/

This documentation is intended for advanced developers who already have experience interacting with bundle/transaction relays.

Discord: builder0x69(TWTR: @builder0x69).

eth_sendBundle

The method is used to send transaction bundles to our builder and mostly follows standard bundle API, but at the same time there're several additional features available:

{
  "jsonrpc": "2.0",
  "id": "42069",
  "method": "eth_sendBundle",
  "params": [
    {
      txs,               // Array[String], A list of signed transactions to execute in an atomic bundle, list can be empty for bundle cancellations
      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 "fail" or be discarded from the beginning of the bundle.
      uuid,              // (Optional) String, UUID that can be used to cancel/replace this bundle
      replacementUuid,   // (Optional) String, UUID that can be used to cancel/replace this bundle, has priority over `uuid` field
      refundPercent,     // (Optional) Number, the percent(from 0 to 99) of last bundle transaction ETH reward that should be passed back to the user(`refundRecipient`) at the end of the bundle
      refundRecipient,   // (Optional) Address, wallet that will receive the ETH reward refund from this bundle, default value - EOA of the first transaction inside the bundle
    }
  ]
}

We support updatable bundles via uuid/replacementUuid fields, you can read more about them here

Our endpoint also supports "gas-less"(you can send transactions from an empty wallet) transactions by fully covering all transaction costs inside the bundle as long as funds are returned at the end of the bundle. You can find examples here

If refundPercent field is set, builder will pass refundPercent of total ETH reward generated by last transaction inside the bundle to the user(minus burned base fee). If refund amount is insufficient to cover base fee of the block, whole bundle will be discarded to avoid unfairly accumulating tiny rewards which can't be passed back to the user.

CURL example:

curl -s --data '{"jsonrpc": "2.0","id": "42069","method": "eth_sendBundle","params": [{"txs": ["0x02f8b10181db8459682f00850c9f5014d282be9894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005408b27504dfcf7b0c3edf116e847aa19ce7f03c0000000000000000000000000000000000000000000000000000001e449a9400c080a049c0f50df4219481e031ac35816946daef9d08004f3324f7f46f6938488025aba02a4bda81f792bc5b7033804e39b7e55e619e56de1afcddd2ae4943ae5e7737c4"],"blockNumber": "0xf79d4e","refundPercent": 99,"refundRecipient": "0xab5801a7d398351b8be11c439e05c5b3259aec9b"}]}' -H "Content-Type: application/json" -X POST https://builder0x69.io

Example response:

Our eth_sendBundle API doesn't return bundle hash as response since at the moment we don't support any statistics API.

{
  "jsonrpc": "2.0",
  "id": "42069",
  "result": null
}

eth_sendRawTransaction

Both methods(eth_sendRawTransaction and eth_sendPrivateRawTransaction) perform the same task and are used for sending private transactions to our builder. This method DOES NOT provide revert protection(use eth_sendBundle above), but transactions are kept private and aren't shared in p2p layer. Payload format:

{
  "jsonrpc": "2.0",
  "id": "42069",
  "method": "eth_sendRawTransaction",
  "params": [signedRawTx],
}

CURL example:

curl -s --data '{"jsonrpc": "2.0","id": "42069","method": "eth_sendRawTransaction","params": ["0x02f8b10181db8459682f00850c9f5014d282be9894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005408b27504dfcf7b0c3edf116e847aa19ce7f03c0000000000000000000000000000000000000000000000000000001e449a9400c080a049c0f50df4219481e031ac35816946daef9d08004f3324f7f46f6938488025aba02a4bda81f792bc5b7033804e39b7e55e619e56de1afcddd2ae4943ae5e7737c4"]}' -H "Content-Type: application/json" -X POST https://builder0x69.io

Example response:

{
  "jsonrpc": "2.0",
  "id": "42069",
  "result": "0x07151ed9706e4dffb31eaaac2ed1be5c6f05a9eef63c8f7c6ecad9ca8731aa22"
}