Are you a start-up founder or an enterprise leader with plans to launch a financial services application? You might be wondering whether, and indeed, how to use blockchain for this.

Industry observers highlight the steady growth of blockchain in the financial services market.

A Markets and Markets report states that the FinTech blockchain market will grow from $0.23 billion in 2017 to $6.2882 billion by 2023. The report projects a CAGR of 75.9% during the 2018-2023 period.

You are no doubt wondering how to build blockchain financial services applications? Read on, as I will help answer this question for you.

What Kind of Blockchain You Can Use: Public vs Private

You need to decide the kind of blockchain to use. This depends on your business model. Consider the following scenarios:

1. You plan to restrict your financial products or services to registered customers only

Do you want to restrict your proposed products or services to customers that register with your business? You are likely already following the relevant KYC (Know Your Customer) process to enroll customers. It is likely that you will choose that only such customers can access your new financial services app.

If so, then you need to use a permissioned blockchain in this scenario. Enterprise blockchains fit your bill. They allow you to implement access control, and they allow only trusted parties to view sensitive information.

You can use any of the following enterprise blockchain frameworks/platforms:

2. You plan to offer your product or services to anyone

This scenario includes even anonymous or pseudonymous users. Anyone can view transactions, and there’s no access control. If you want to launch a decentralized financial services application, you want a public blockchain.

Many entrepreneurs have built DeFi (Decentralized Finance) applications using the Ethereum blockchain platform. Ethereum provides the following for this:

Note 1: I provide a quick overview of a DApp here, which is as follows:

DApps are web apps.

Note 2: In this guide, I assume that you will build a DeFi app on Ethereum.

How You Can Build a Blockchain Financial Services App on the Ethereum Network

You need to take the following steps:

1. Hire a software development team and onboard it in a staggered manner

You need the following roles in an Ethereum blockchain development team:

Note 3: I assume that you will offer a web app. You need to hire mobile developers if you plan to offer mobile apps.

I recommend the following:

Why do I suggest you to onboard the team in a staggered manner? The reasons are as follows:

Onboard the other roles before entering the coding phase. You can onboard the development and testing leads during the planning phase.

2. Define the Project Scope and Plan the Project

Specify your goals to your team. Indicate the kind of DeFi you want to build and exactly what it should be able to do.

The following are a few types of DeFis:

There are more types of DeFis.

Business analysts need to talk to the business stakeholders and gather requirements. The PM and architect need to plan the project, and they need to focus on the following:

3. Install the Required Development and Testing Tools

You can now onboard the rest of the development team. The team needs to install and configure the following tools:

3a. MetaMask

MetaMask is a crypto wallet. It also provides a simple way to connect to blockchain-based apps. You can use it to connect to the Ethereum blockchain network.

MetaMask is available as a browser extension and mobile app. Your development team needs to download the browser extension.

You can buy and store Ether (ETH) in your MetaMask wallet. For testing your Ethereum blockchain app, you need dummy Ether. You can get them on MetaMask.

3b. Ganache

Ganache is a blockchain client. You can use it for Ethereum DApp development, and it’s a part of the larger Truffle suite of tools. Programmers can use it to run tests and execute commands.

You can use the Ganache UI. It’s a desktop application. You can also use the Ganache CLI (Command Line Interface), which was earlier known as TestRPC. Read the Ganache documentation to use it.

3c. Web3.js

Web3.js is an Ethereum JavaScript API. It’s also a collection of important libraries. Ethereum blockchain developers can use Web3.js to interact with a local or remote Ethereum node. Install and configure it by using the Web3.js documentation.

3d. Truffle suite

Truffle suite is a collection of tools for Ethereum blockchain development. It includes a development environment and testing framework. You can deploy Ethereum smart contracts using Truffle, and there’s extensive Truffle documentation.

Note 4: You need to use more tools for Ethereum DApp development. However, you don’t need to install them. These are as follows:

4. Configure the Tools

You now need to configure the tools.

Note 5: I suggest you read two detailed articles that show how to configure these Ethereum blockchain development tools. Alex Miller wrote the first one. It’s a guide to Ethereum DApp development. I refer to it as the “reference article 1”. Merunas Grincalaitis wrote the second one, which is a guide to convert web apps to DApps. Let’s call it the “reference article 2”.

Do the following:

4a. Configure the MetaMask crypto wallet and browser extension

You need to take the following steps:

4b. Configure Ganache, Web3.js, and Truffle

Take the following steps to configure Ganache, Web3.js, and Truffle:

5. Design and Develop the Front-End of the DApp

Having installed and configured the tools, you can start coding. Design and develop the front-end of the DApp first. Do the following:

6. Code Smart Contracts

Now’s the time to code your smart contracts, the building blocks for the back-end. Take the following steps:

6a. Review relevant smart contracts to get useful ideas

Ethereum DApp development projects are open-source. Software engineers can review smart contracts of other projects to get ideas, which is an advantage.

You can also review smart contracts of relevant projects. Choose DApp projects that are similar to your project, e.g.:

6b. Code smart contracts

Use the Remix IDE to code smart contracts. I recommend you keep the code simple. I say this due to the following reasons:

Document your smart contracts well. Organize them using Truffle.

7. Implement a Structured Smart Contract Audit Process

You need thorough audits of your smart contracts. Remember that you can’t modify a smart contract after deploying it. This makes testing and code review doubly important.

However, testing can’t catch all bugs. This makes code review of smart contracts very important. You can find bugs earlier if you implement a structured code review process.

Finding experienced code reviewers can be hard in any project. An Ethereum DApp development project involves niche skills, therefore, finding expert reviewers can be harder.

Have a sufficient budget. Plan for a high lead time to engage independent smart contract auditors.

Experienced smart contract auditors should focus on the following:

7a. Conducting a structured smart contract audit

A smart contract audit shouldn’t be ad-hoc. Independent reviewers should follow a systematic approach. They need to do the following:

You need to ensure the closure of any issues found in the smart contract audit.

7b. Identifying the known smart contract vulnerabilities

Reviewers should keep their eyes open for known smart contract vulnerabilities. The following are examples of prominent smart contract vulnerabilities:

8. Test Smart Contracts

You now need to test your smart contracts. At the outset, you should create a comprehensive test plan. The test plan should have enough test cases to cover all paths and branches of the smart contracts. You need a structured review of the test plan.

Subsequently, do the following:

Check out the “reference article 1” for more information.

9. Deploy Smart Contracts

Now that you have tested the smart contracts, you need to deploy them. Do the following:

Refer to the “reference article 1” for detailed instructions.

10. Connect Your Smart Contracts to the Web App Front-End

You have already coded the front-end of your web app, and you now need to connect the smart contracts to it. Take the following steps:

Read “reference article 1” if you need more guidance.

11. Initialize Your Smart Contracts

You now need to initialize the smart contracts that you have deployed. This involves the following steps:

11a. Getting the contract ABI (Application Binary Interface)

Ethereum uses data encoding schemes called ABIs to communicate with smart contracts. Do the following to get the ABIs:

Consult “reference article 1” for more guidance on this.

11b. Getting the contract address

Navigate to the “Run” tab of the Remix IDE. Get the contract address, and paste it in a variable called the “const contractAddress” in your code.

11c. Updating the different functions of the web app to use smart contracts

You have coded your smart contracts to cater to different functions in your DApp. You coded the front-end in JavaScript, and now you need to update the functions with the corresponding smart contracts.

Do the following:

Read “reference article 1” for more details on this.


Conclusion

I have covered the different kinds of blockchain networks for building a financial services application. You will need to choose the right one for your requirements.

I then explained how you can build a decentralized financial services app using the Ethereum blockchain platform to show you how you can go about building your own blockchain-based financial services application. Best of luck with your project.