How to Use ITX on Ethereum & Polygon: A Step-by-Step Guide

Infura Transactions (ITX) is the simplest way to send Ethereum transactions without them being dropped, or your end users having to hold ETH

How to Use ITX on Ethereum & Polygon: A Step-by-Step Guide

Updated on Nov. 2, 2021, to reflect support of ITX on Polygon.

UPDATE: ITX is now available on Polygon! It's as easy as 1, 2, 3...

1. Enable Polygon in your account - this will be enabled for all projects. For more information click here

2. Do nothing for ITX! We have automatically enabled ITX for all of your projects. See below for more details of how to enable/disable

3. See below for how to use ITX and it really is as easy as that! The Gas Tank address (0x015C7C7A7D65bbdb117C573007219107BD7486f9) on Polygon is the same as all other networks and all other parts of the process are the same. All you need to do is enable both and hit the Polygon endpoints!

Pricing wise, we have priced it the same as Etherum Mainnet: gas used * 20 gwei

PLEASE NOTE: This is in Alpha mode and we look forward to hearing your feedback. Enjoy!

Infura Transactions (ITX) is the simplest way to send transactions on Ethereum and as of Nov. 1, the Polygon network. ITX handles all edge cases for transaction delivery and takes care of getting transactions mined while removing the need for developers to deal with the complexities around gas management and checking that your transaction is not dropped. It also allows end users of your dapp to send transactions without holding ETH.

If you wish to use the service to perform on-chain activities, such as allow users to transact with your dapp or deploy a new contract, you will send a signed relay request using a specific method, which instructs the ITX service to relay your request as a transaction on the Ethereum blockchain.

Currently in public beta, we have automatically enabled ITX within your projects. Should you wish to disable, please go to your project settings and disable using the toggle as pictured below:

If you wish to add the three methods for the ITX service to your API request method allow list, please go to your project security settings and add them there as pictured below.

Please note: if no methods are in this list, they are all allowed by default.

Please read the documentation for instructions on how to set up the ITX provider, create a signer account and check your ITX gas tank, and for copyable code snippets.

  1. On-chain deposit. Generate a private key and deposit some ETH with Infura’s on-chain deposit contract itx.eth (0x015C7C7A7D65bbdb117C573007219107BD7486f9). This action credits your ITX gas tank with the corresponding amount of ETH (after 10 block confirmations). Your ITX gas tank will be used to pay gas fees for the transaction to be mined. You will use your private key anytime you authorize spending from your ITX gas tank (i.e. when relaying a transaction).

Please refer to this resource for a link to a full script to make a deposit.

2. Send a relay request. You send a transaction relay request to your usual Infura endpoint using the relay_sendTransaction RPC call. ITX will first check if you have sufficient balance, then lock a portion of your funds and relay the transaction on your behalf to the Ethereum network.

3. Transaction mined and balance deducted. ITX will periodically increase the gas price and republish your transaction according to a predefined escalation schedule, in an attempt to minimize both confirmation time and final gas price paid. As soon as the transaction is mined and becomes part of the blockchain, the cost of the transaction which includes the network fee (gas price * gas used) + the ITX fee, will be subtracted from your gas tank balance. You can check your new balance using the relay_getBalance RPC call.

You have just sent a relay request via the ITX service. A full code sample is available in our demo repository.

For more information, please refer to the documentation which goes into more detail.
Please also visit the community where you can ask questions or report bugs. You can also use the support function to submit a ticket and receive an answer.