Centralized FinTech services and merchants accepting account-based cryptocurrencies for deposits and payments are damaging the blockchain ecosystem.
The go to practices applied by business accepting deposits and payment in cryptocurrencies like Ethereum and its ERC20 tokens are plagued with wasteful collection practices. These industry norms overload the blockchain with millions of unnecessary transactions and cost the users hundreds of millions of dollars in service and gas fees. Do you think this is a problem worth understanding and solving?
Businesses accepting deposits and payments in popular account-based cryptocurrencies like Ethereum and its ERC20 tokens are at the root of this problem, but what takes place is not intentional. They are forced to be on the dark side. These businesses need to identify and credit every single transaction that was sent by each individual client as a transfer on the blockchain. This identification process creates millions of additional on-chain transactions, overloads the blockchain and drastically increases the price of gas.
This problem is found at every level of business from community dedicated services, to enterprises like Coinbase, Changelly, Trust Wallet and Binance. If you’re already in this business, you understand this costly pain point. If you’re considering getting into Blockchain FinTech as a service provider, you need to know this. Let’s discuss what’s being swept under the rug..
Our focus is on the original and most popular account based currency today — Ethereum and ERC20 Tokens, whose gas is paid in Ethereum. It is also the most expensive currency to send on the blockchain and Ethereum’s gas price can easily cost more than the transaction amount.
When it comes to identifying and matching a blockchain transaction to the user, let’s compare the differences between Ethereum and Bitcoin. Same as with Bitcoin transactions, Ethereum issues a unique proxy address dedicated to a single user and matches any deposit made to this proxy address to the user it was assigned to.
In the case of Bitcoin, it treats the proxy address as an extension of the parent wallet, allowing it to seamlessly receive the blockchain transaction via the proxy wallet, directly into the parent wallet.
Meanwhile Ethereum treats this proxy address as a newly generated wallet and in order to collect the funds from this proxy, the service provider has to perform another on-chain transaction, paying another gas fee for the transfer.
Now if you think it is redundant to perform two on-chain transactions for collecting 1 deposit/payment, it’s even worst with ERC20 tokens. With ERC20 tokens like USDT, gas is paid in Ethereum. This means that you have to send gas on-chain to the proxy address, pay gas for this on-chain transaction and then pay gas for another on-chain transaction to collect from the proxy address.
Let’s take a look at these two cases in more detail. In these examples we use the quite low historical averages for Ethereum and ERC20 gas prices recorded in May 2023:
– ERC20 Gas Fee ~65,000 gas limit / 84 Gwei (~$9.87 USD)
– Ethereum Gas Fee ~21,000 gas limit / 84 Gwei (~$3.18)
Scenario 1: ERC20 Deposit/Payment — 2 Gas Fees
1st Transaction – ERC20 Token is sent by user/customer as a blockchain transaction and received on a proxy address issued by a service/merchant. (On-chain transaction with gas paid by user/customer, but cost is not in this transaction example)
2nd Transaction – Service/merchant sends Ethereum to the proxy address on the blockchain and pays gas for this transaction ~$3.18 gas fee.
3rd Transaction – Proxy address uses the Ethereum it received to pay the gas and deducts the gas fee ~$9.87 to send the ERC20 Token balance on the blockchain to the service/merchant wallet.
Conclusion: The service/merchant paid $13.05 in gas fees to collect the amount sent by the user/customer. Being the most common transaction type using Ethereum to pay for gas, this cost makes stable coin cryptocurrencies like USDT a rather expensive and inefficient option for transacting on the blockchain. Accepting 1000 daily deposits/payments in ERC20 will cost your business (2023 averages) ~$397,000 per month.
Scenario 2: Ethereum Deposit/Payment — 1 Gas Fee
1st Transaction – Ethereum is sent by user/customer as a blockchain transaction and received on a proxy address issued by a service/merchant. (On-chain transaction with gas paid by user/customer, but cost is not in this transaction example)
2nd Transaction – Ethereum for the fee is deducted from this amount received on the proxy address to send the balance on the blockchain to the service/merchant wallet ~$3.18.
Conclusion: The service/merchant paid $3.18 in gas fees to collect the amount sent by the user/customer. At first glance this may seem like the more reasonable solution for accepting deposits and payments, but it is not. Unlike stable coins like USDT, Ethereum price comparison to USD is in a constant up and down. This fluctuation doesn’t allow for Ethereum to be an efficient payment method. Accepting 1000 daily deposits/payment in Ethereum will cost your business (2023 averages) ~$96,725 per month.
The only business solution is to reallocate the cost for collection to the end-user by raising the price of your products and service fees. But how do you account for the ups and downs in gas prices? If you’re a FinTech service business accepting regular deposits, how do you account for the collection fees associated with deposits? How do you feel about the fact that as many as 3 blockchain transactions are necessary for every single ERC20 token deposit/payment transaction? How does this reflect on the network and price of gas?
This cycle is costly and inefficient. It overloads the blockchain with unnecessary transactions, increases the price of gas and affects every party in the ecosystem, from businesses to consumers. With limited solutions at business disposal, this trend continues to grow as more and more users are shifting their trust into digital currencies.
Marionette.dev team believes that this is a problem worth solving, but we have to approach the solution as an industry by updating existing practices, outdated software and educating the end-user on best practices. As a team, we have a partial solution today, using our proprietary stack in combination with existing opensource software. Our goal is to build intelligent solutions and educate every layer of blockchain users, from businesses to their clients.