π‘β Transak One - Fiat to Smart Contract
What is Transak One?
Transak One enables our Partner apps to onboard their users directly from fiat to any dApp/smart contract on chain using in just one step.
This means users don't need to do any transactions for approval, have gas tokens or worry about the underlying blockchain complexity to use a dApp.
Just a single click of fiat payment, and user is onboarded to your dApp.
Integrating Transak One makes it even easier for DeFi, crypto games or any dApp using on-chain protocols to easily onboard their mainstream web2 users onto their platforms with fiat currencies and local payment methods.
Problem & Solution
User flow before Transak One
- Purchase the specific token required for the dApp with either fiat or another cryptocurrency
- Purchase the native cryptocurrency with fiat to pay transaction (gas) fees
- Send both cryptocurrencies to their personal wallet (if bought from a centralized exchange, or both tokens are present in different wallets)
- Trigger an approval transaction to give the dApp permission to use their tokens
- Then, finally, interact with the dApp protocol using their wallet
Each of these steps require technical understanding, time to execute different transactions, and charge transaction (gas) fees which might not be similar to the cryptocurrency accepted by the smart contract, resulting in more transactions for the user. This complexity unfortunately makes a lot of dApps unfriendly to the end user.
User flow after Transak One
π‘ FYI:
With Transak One integrated with your Web3 app, a user just needs to make one transaction, instead of 5 earlier!
User Flow for Transak One would be as shown below:
- First time users need to go through our simple one-time KYC
- Post this user can simply complete the fiat payment through their preferred mode of payment with a single click, every time they want to on ramp to a supported dapp. It's that simple!
- Behind the scenes we combine and perform all of the required transactions i.e. transferring the crypto as well as initiating and interacting with the dApp protocol smart contract on behalf of the user.
After a successful transaction, the user can interact with the dApp via their wallet as normal, as if they had interacted with the smart contract themselves.
Use cases & Examples
Transak One direct fiat to dApp onboarding can improve the user experience of any dApp that requires users to deposit crypto or interact with their smart contract.
Transak One Use Cases:
- DeFi apps which require their users to stake, swap, bridge, deposit some tokens on chain. For ex: You can stake directly on Lido, Uniswap, Aave, etc using Fiat.
- DEXs like DyDx which require their users to deposit some crypto to trade on their platform. For ex: Your users can directly start trading on your DEX using Fiat.
- Crypto games, where the user needs to purchase an in-game token and then send that token to a smart contract.
- Any dApps Social, NFT, Gaming, Loyalty & Rewards, etc and any other dApp you can think can be supported using Transak One.
Supporting Blockchains & Cryptocurrencies
We can support all EVM chains that support Solidity and Ethers Js.
Currently supported EVM blockchains:
- Arbitrum
- Binance smart chain
- Ethereum
- Immutable Zk-EVM
- Polygon
- Optimism
If you need support for any other blockchain, contact us at [email protected]
Supporting cryptocurrencies: The protocol transaction must use one of ourΒ Supporting Crypto Currencies. If another cryptocurrency is required you canΒ Request for us to add coverage of a cryptocurrency.
Understand your use case
Transak One is built to support variety of use cases that your dApp might have. But we have broadly divided it into 2 major categories depending on what happens after we execute your smart contract:
- You are sending a token back to the user
If Transak is executing your smart contract and you're sending any type of token back to the user's wallet, such as Liquid Staking Tokens or bridged tokens, you fall into this category. Ensure you provide details about this token in the "cryptoCurrencyData" query parameter.
For example, if a user stakes ETH in Lido and receives stETH as a receipt token, include details about stETH in the "cryptoCurrencyData" query parameter, and details about ETH in the "sourceTokenData" query parameter.
- You are not sending any token back to the user
If Transak executes your smart contract, and you are not sending any token back to the user, you fall into this category. This may involve updating the user's balance on your platform, activating a subscription, unlocking a new level in your game, or any other action after the smart contract execution.
For ex: If a user wants to trade in DyDx they need to deposit some crypto first. Here Transak will accept fiat from user and when we execute the smart contract, we'll send the required crypto and the user's wallet address so DyDx can update that user's balance on DyDx trading app. In this case, you don't need to include details in the "cryptoCurrencyData" query parameter, but do send the token and amount your smart contract accepts in the "sourceTokenData" query parameter.
Flow of Funds for Transak One
- The User does the fiat payment on Transak's widget
- After the fiat payment is received & reconciled by Transak, we trigger our smart contract to execute the transaction on chain on your smart contract.
- Transak Smart Contract does an allowance transaction by callingΒ the function of the partner's smart contract. We do this to avoid any issues like overspending or any kind of risk.
- Once the allowance transaction is completed. Our smart contract callsΒ the function of the partner's smart contract with the calldata sent to Transak through the query parameters.Β
- In the same transaction Transak does the following:
a. It sends the dataΒ like the user's wallet address, amount etc.
b. It also sends the crypto to the smart contract - Then you can configure the action on your end.For ex: Partner's smart contract can send the Liquid staking tokens back to the userβs wallet address or just update their balances on their DEX or activate their subscription of the product. The possibilities are endless!
Transak Smart Contract addresses
If you want to limit the addresses calling your contract, you can whitelist the following Transak's smart contract addresses:
Blockchain | Testnet Name | Testnet address | Mainnet address |
---|---|---|---|
Ethereum | Sepolia | 0xD84aC4716A082B1F7eCDe9301aA91A7c4B62ECd7 | 0xab88cd272863b197b48762ea283f24a13f6586dd |
Polygon | Amoy | 0xCB9bD5aCD627e8FcCf9EB8d4ba72AEb1Cd8Ff5EF | 0x4A598B7eC77b1562AD0dF7dc64a162695cE4c78A |
Binance Smart Chain | Binance Smart Chain Testnet | 0x0E9539455944BE8a307bc43B0a046613a1aD6732 | 0x4A598B7eC77b1562AD0dF7dc64a162695cE4c78A |
Arbitrum | Sepolia | 0x489F56e3144FF03A887305839bBCD20FF767d3d1 | 0x4A598B7eC77b1562AD0dF7dc64a162695cE4c78A |
Optimism | Goerli | 0x0E9539455944BE8a307bc43B0a046613a1aD6732 | 0x4A598B7eC77b1562AD0dF7dc64a162695cE4c78A |
Immutable zkEVM | Immutable zkEVM Testnet | 0x489F56e3144FF03A887305839bBCD20FF767d3d1 | 0x8b83dE7B20059864C479640CC33426935DC5F85b |
Updated 9 months ago