Forward - Enable Paying Gas in ERC20

Use Biconomy Forward to enable your users to pay transactions fees using their tokens!


Forward is a system we’ve made to make it easy for your users to cover their gas fees in ERC20 tokens. We've designed Forward to work for any Dapp on Ethereum, particularly Defi protocols and payments, where fees are impractical for teams to cover for their users, and users have the funds to cover gas (just not in ETH).
We're launching Forward to support payment using Dai, USDC & USDT, but have plans to support more tokens soon.
Our smart contracts are quite generalised and enable highly customisable implementations. However, we’re launching with a basic feature set that we plan to expand in the near future.
Note: if you’re developing a payment use case with expected average payments below $1, we recommend you consider Layer 2 options

Gasless != Free

Great, you’ve launched your Dapp/protocol on Ethereum mainnet and you’re considering using Biconomy to pay the gas for your users, well, this isn't sustainable. Ethereum gas fees are ridiculously high. On December 18th 2020, Uniswap related gas fees totalled roughly $3M. To put that in comparison, Uniswap received $11M in seed funding.

There’s no way that a Layer 1 Dapp could afford to cover gas costs for its users. Luckily, you don’t have to - your users can already afford to pay!!!

The majority of Defi use cases where meta transactions eliminate a pain point for the end-user already involve tokens! Examples include :
  • Depositing stablecoins into a lending protocol
  • Swapping tokens and more!
In addition, the majority of ERC20 token transfers on Ethereum Mainnet involve large amounts of capital - more than 90% of token transfers are above $1,000 in value.
We see Forward enabling you to improve UX for these use cases in two main ways for your end users
  1. 1.
    Allowing your end users to save their ETH
  2. 2.
    No stuck transactions when using DApps!
Since the Biconomy relayers handle the ETH gas fees in the backend, we ensure our relayers pay the most optimal gas fees at any given time meaning that transactions will never be stuck. In any moment of congestion, we automatically detect this and gradually bump up the gas fees. This ensures your end users never overpay. You can read more on how this works here.
Note: For use cases where it makes sense to pay for users, e.g. voting (to encourage active participation) - we recommend using our Trusted Forwarder directly.

Charging Users

With Forward, Biconomy takes ERC20 tokens from users as payment for meta transactions. We then use these tokens to replenish our relayers with ETH.
Biconomy charges users based on the following factors :
  • ETH/$PaymentToken Price: We source this from an oracle on-chain, such as Chainlink’s Price Feeds
  • Fee multiplier: A markup we set to offset risk and take revenue. In the future, we’ll give Dapps the option to set this figure higher and share revenue obtained from meta transactions.
  • Gas Usage: Much like a standard transaction, we give cost estimates via our SDK based on gas estimates. However, the real gas usage is determined at the point of transaction execution. This figure is calculated within the Forward call and used to charge the user.
    • Factors affecting gas usage charges within Forward include :
      • Recipient (your) contract call
      • Logic within our ERC20Forwarder & Trusted Forwarder contracts
      • The logic within your payment token’s smart contract
TransactionCost=TokenGasPriceGasUsage TransactionCost = TokenGasPrice * GasUsage

Tokens We Support

Given the volatility of the market, supporting arbitrary tokens is risky. For this reason, we’re supporting highly liquid stable coins, namely USDC, DAI and USDT. In the near future, we intend to adapt our trading models to support other kinds of tokens.