Tenderly offers a precise gas estimation mechanism through their Simulation API which enables CoinChoice to ensure an accurate deposit of ETH prior to the end-user’s original transaction.
Three distinct frontend components cooperate to deliver a decentralized frontend for an EVM Blockchain. The first is a Browser Extension that is capable of intercepting Smart Contract transactions inrder to inject swaps from a chosen cryptocurrency to a native gas currency in order to deliver the CoinChoice UX. A Metamask Snap allows end-users to top up their gas directly from within their MetaMask wallet. The Snap is accompanied by a React.js Web App that simplifies the installation of the Snap.
The Cypher Onboarding SDK’s value proposition is aligned with CoinChoice such that both UXs serve an experience to reduce the friction of Blockchain Interaction through contextual token management. CoinChoice, therefore, integrates the Cypher Onboarding SDK to simplify the top-up of a chosen gas currency without requiring the end-user to leave the currently viewed website/dApp.
OZ Defender is used to deliver a security mechanism whereby no single person or party can tamper with the administration and management of permissions of the CoinChoice Relayer Smart Contracts.
CoinChoice fundamentally improves the UX of wallets across blockchain ecosystems by reducing the friction required to engage in cross-activities, or by transferring assets across blockchain ecosystems. CoinChoice also wraps wallets to remove onboarding friction for new users such that Centralised Exchanges and their related multi-step security measures are no longer required in order of new crypto users to transfer and leverage their digital assets.
The 0x Protocol’s API is used to quote on swaps that are determined by end-users at the point of their transactions in order to determine how much of their chosen coin is required to satisfy the gas requirements of their transactions. Once the end-user permits the use of the transfer of their chosen coin, the CoinChoice relayer Smart Contracts integrate 0x’s Swap Router Smart Contracts to facilitate the Swap of the user’s chosen coin to the native gas currency.
CoinChoice integrates a MetaMask Snap to further alleviate the friction of gas management, such that gas can be acquired directly from within the MetaMask wallet user experience. A unique approach was applied to allow the Snap to initiate another Browser Extension. This serves as a benchmark for Snaps that are seeking more interesting and open transaction management experiences.
The Fluence Networks’ fRPC solution offers low-latency and decentralized backend transaction execution framework such that the RPC Endpoint remains local to the CoinChoice backend service.
Fireblocks offers a shared key management approach, perfect for securing the private key(s) used for CoinChoice’s backend service responsible for executing transactions against the Relayer Smart Contracts. This ensures that any security compromise does not jeopardise the integrity of the CoinChoice platform.
CoinChoice touches the heart of the EVM infrastructure by improving the way in which users interface with EVM gas spending, by directly integrating into well-known and trusted wallet and infrastructure providers. By reducing friction in interacting with Blockchains, CoinChoice improves the scalability of cryptocurrency adoption, specifically with regard to cross-chain transactions.
CoinChoice was developed to solve a fundamental problem experienced by managing cryptocurrency users & enthusiasts. This problem is that there is friction in token management when attempting to capitalise on opportunities across blockchain ecosystems. By solving this problem for users, there is a clear road to productisation therefore monetisation. This led to the investment of more time into a smoothly operable gas experience and associated interface.
A MetaMask & Browser Extension that gives you choice over which coins are used to pay gas.
Solving friction of fractionalized liquidity:
1. Go cross-chain sooner
2. Minimise steps to interact with Smart Contracts
3. Need ETH? Top up your gas directly from MetaMask
4. New crypto users no longer need to withdraw gas from a CEX
5. Stake and withdraw all of your ETH. Pay gas in another token.
How does it work?
1. Select a default coin for your gas fees
2. On each transaction, you will be prompted to cover gas in your chosen coin
3. Sign a message
4. A small amount of ETH is deposited into your wallet
5. Continue with your original transaction
Tech Overview:
1. All transactions are simulated using the Tenderly API
2. A gas estimate is compared to your chosen coin using the 0x Quote API
3. You are prompted to pay gas in your chosen coin
4. On approval, your meta-tx is used to swap from your chosen coin to ETH with the 0x Protocol
5. Finally, your original transaction will proceed as though you had ETH all along
This all happens in a single seamless user experience.
Target Audience:
A wallet user who’d rather capitalize on opportunities and staking pools across blockchains without needing to maintain 5+ different currencies, or even more when trading with different wallets.
CoinChoice can allow new crypto users to engage blockchains without needing to go through the typical CEX gas token withdrawal process.
ROI:
Margins can be added to each gas swap
Additional features can be incorporated that monetize the user base further
Future Features:
Receive any funds in your preferred currency
New wallet, no problem. We intend to integrate into the MetaMask Snap to enable native transfers powered by gas in your chosen currency
Partnerships with cross-chain bridges to allow funding of wallets on destination chains where non-native assets are bridged
Always have the right coins to stake in an LP Pool, or to stake into any pool with any currency
Challenges CoinChoice Overcame
1. Maintaining call-contexts when a user interacts with Smart Contracts required the dismissal of account abstraction.
2. We required many moving parts because of the restricted sandboxed environments that come with development MetaMask Snaps & Browser Extensions. We opted for an approach where our backend behaves as a message bus between the distinct frontend UIs, ie. the Snap and Extension.
3. Setting up a Snap in a stable environment is challenging without sufficient documentation.
4. Using a custom multi-sig wallet with OZ Defender is a challenge.
5. Prior to completion all of the Tesnet USDC/ETH pools were raided/drained. To solve this, we had to deploy a new USDC Smart Contract and supply sufficient liquidity within less than an hour to proceed with the creation of our demo.