It’s surprising to see how the coming of decentralized finance (DeFi) within the realm of crypto has ushered new traction worldwide. And it would be an understatement to say that DeFi is growing rapidly. Around the mid of 2018, the popularity of DeFi spread like wildfire across the globe. Subsequently, in the year 2019, it began associating itself with a market value of more than half a billion dollars! Currently, it has risen more than $26 Bn.
As the demand for decentralized finance skyrockets, it becomes mandatory to be vigilant about Defi security audits. For this, you need to be aware of implementing the skill set and knowledge of this field.
This blog will provide a step-by-step guide on creating and deploying a DeFi app using solidity. With the help of this DeFi app, you can deposit the ERC20 token into a smart contract. Together with this, it will mint and transfer Farm Tokens. You can burn the farm token when you wish to withdraw ERC20 tokens, and they will again be transferred back.
What Are Defi Apps?
The DeFi apps that are built on a specific Blockchain network are a boon for every blockchain user. Users get access to a wide plethora of financial services in a decentralized way across borders, thus, making it accessible for everyone.
These are some of the things that DeFi apps allow:
- Lending and borrowing funds
- Providing risk insurance
- Trade cryptocurrencies
- Earn interests
- Predict price movements
With teh advent of DeFi applications, it has become much simpler to make transactions without the interference of centralized intermediaries. Now, the new way is where the participants make the transactions directly, and smart contracts mediate this.
Now let us see how to build these applications.
How To Build Defi Applications?
These are the steps to build DeFi apps.
To start developing the DeFi applications, you need an environment setup. For this, the first step would be to install Truffle and Ganache.
Step 1: Install Truffle and Ganache.
If you wish to build smart contracts for Ethereum, you will require a testing and development framework for that. Truffle provides an easy way to do that. With this, you can easily create and deploy smart contracts to a blockchain.
Talking about Ganache, it helps create a local Ethereum blockchain so that you can test smart contracts. It plays the role of simulating the basic features of the network and also funds the first ten accounts with 100 test Ether. This way, it simplifies the process of deploying Smart contracts and makes it free. You can easily use it as a desktop application or a command-line tool.
Recommended: Smart Contract Audit Service
Here, a UI desktop application is used. To create a project, you need to execute the following commands.
- Contracts are the folder for Solidity smart contracts
- Truffle-config.js is the configuration file for Truffle
- Migrations are the folder that contains the deployment scripts
- The test is the folder for testing the smart contracts
Step 2: Create an ERC20 token
ERC20 is a fungible token that you will use to stake on the contract. To create this, you just need to install the OpenZeppelin library. In the library, you will get all the standards required for implementing ERC20 and ERC721. This is the command that you must use to run this command.
This will create an ERC20 token with the following code:
Step 3: Deploy the ERC20 token.
The next step is to create a file named 2_deploy_Tokens.js in the migrations folder. It will deploy both smart contracts. To deploy MyToken.sol contract:
Make sure to check the version of the solidity compiler version before compiling the smart contract.
The default version of solidity is v0.5.16. The token is written in 0.6.2. In this case, it will generate a compiler error message. Thus, it is important to check the version before compiling the contract.
Step 4: Create a Farm Token Smart Contract
This smart contract has three main functions that are as follows:
- deposit(uint256_amount): Transfer MyToken to FarmToken smart contract on behalf of the user. After that, mint the FarmToken and give it to the user.
- withdraw(uint256_amount): It is used to burn the user’s FarmToken and transfer MyToken to its address.
- balance(): Get MyToken balance on FarmToken smart contract.
Note that when you deploy the FarmToken, the address of the MyToken smart contract will be passed as a parameter. The next step will be to run truffle migrate and truffle compiler for deploying the contracts. Creating a script in this situation will help you automate the process.
Now that it’s been created let us see how to deploy the ERC20 token.
On the migrations folder, you will create 2_deploy_tokens.js. This is the file where we deploy both the tokn smart contracts.
Open Ganache and click on “Quickstart” to get started with a local Ethereum Blockchain. To deploy the contract, run:
The first address on the list of addresses that Ganache displays to us is the one where our contracts are deployed. We can launch the Ganache desktop programme to see if the first account’s ether balance has decreased as a result of the cost of using ether to deploy our smart contracts:
The blog described how to establish a Defi application that can deposit MyTokens, receive FarmTokens, and withdraw MyTokens by burning FarmTokens and setting up the project development environment with Truffle and Ganache.
After you’ve created and deployed your DeFi application, it is a good idea to be cautious with Defi security so that you can save yourselves from massive hacking exploits in the future!
- Deploy the token
- Create a FarmToken smart contract