Semi-Private Transaction

Sending semi-private transactions reduces risk of front-running and sandwich attacks

Sending semi-private transactions using blxr_tx is available to users with an active account on an Enterprise plan or higher. Other users may use the bloXroute Protect RPC.

Semi-private transactions are currently supported only when sending transactions via Cloud-API. Gateway-API support coming soon!

When adding the next_validator and validators_only parameters to the blxr_tx request, the transaction will be sent directly to participating validators. Since the validator's node will propagate the transaction to the public network, the transaction will eventually become public (hence the name "semi-private").

In a recent benchmark of this feature, we observed 300-700ms delays before the validators_only transactions became public. For next_validator transactions, we expect the delay to be longer than if the transaction were sent using validators_only.

Semi-private transactions should be used by users under the following assumptions:

  • Not all 100% of the validators will receive the semi-private transactions.

  • Transactions will be publicly available after some time

next_validator

Available for Polygon

The next_validator attribute is used to send transactions via blxr_tx only to the validators that are next-in-turn, if they are accessible via the BDN. A validator is considered "next in turn" if they are slotted as the validator of either the n+1 or the n+2 blocks (where n is the latest block height) .

To view the accessibility of the validators of the n+1 and n+2 blocks, users may subscribe to the newBlocks or bdnBlocks stream and check the accessible field in future_validator_info.

For Polygon, when next_validator is enabled, you will also have the option to add the fall_back parameter to your blxr_tx request. fall_back will cause your transaction to be automatically propagated by the BDN as a normal transaction after the duration of the fall_back time you set (default: 0). If the fall_back value is 0, the transaction will never be propagated by the BDN as a normal transaction.

next_validator also provides the added benefit that the transaction will not appear in Cloud-API feeds.

Example

wscat -c wss://api.blxrbdn.com/ws --header "Authorization: <YOUR-AUTHORIZATION-HEADER>"
> {"jsonrpc": "2.0", "id": 1, "method": "blxr_tx", "params":
   {"transaction": "f86b0184...e0b58219", "next_validator": true, "fall_back": 0, "blockchain_network": "Polygon-Mainnet"}}
< ......

validators_only

Available for Polygon

The validators_only parameter can be used to send transactions via blxr_tx only to validators accessible via the BDN. Transactions sent with this param will not be sent to non-validator gateways

Example - validators_only

wscat -c wss://api.blxrbdn.com/ws --header "Authorization: <YOUR-AUTHORIZATION-HEADER>"
> {"jsonrpc": "2.0", "id": 1, "method": "blxr_tx", "params":
   {"transaction": "f86b0184...e0b58219", "validators_only": true, "blockchain_network": "Polygon-Mainnet"}}
< ......

Last updated