Skip to main content
Version: v0.26.1

Creating a structure of the application

To create a structure for a blockchain application that enables users to lend and borrow digital assets from each other, use the Ignite CLI to generate the necessary code.

First, create a new blockchain called loan by running the following command:

ignite scaffold chain loan --no-module

The --no-module flag tells Ignite not to create a default module. Instead, you will create the module yourself in the next step.

Next, change the directory to loan/:

cd loan

Create a module with a dependency on the standard Cosmos SDK bank module by running the following command:

ignite scaffold module loan --dep bank

Create a loan model with a list of properties.

ignite scaffold list loan amount fee collateral deadline state borrower lender --no-message

The --no-message flag tells Ignite not to generate Cosmos SDK messages for creating, updating, and deleting loans. Instead, you will generate the code for custom messages.

To generate the code for handling the messages for requesting, approving, repaying, liquidating, and cancelling loans, run the following commands:

ignite scaffold message request-loan amount fee collateral deadline
ignite scaffold message approve-loan id:uint
ignite scaffold message repay-loan id:uint
ignite scaffold message liquidate-loan id:uint
ignite scaffold message cancel-loan id:uint

Great job! By using a few simple commands with Ignite CLI, you have successfully set up the foundation for your blockchain application. You have created a loan model and included keeper methods to allow interaction with the store. In addition, you have also implemented message handlers for five custom messages.

Now that the basic structure is in place, it's time to move on to the next phase of development. In the coming sections, you will be focusing on implementing the business logic within the message handlers you have created. This will involve writing code to define the specific actions and processes that should be carried out when each message is received.