> For the complete documentation index, see [llms.txt](https://docs.tuumio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tuumio.com/protocol-guide/build-a-dapp.md).

# Build a dApp

{% hint style="warning" %}
**Note:** Ensure that all fields and values adhere strictly to the protocol structure and specifications.
{% endhint %}

## Understand the structure of the `input.json` file

* Open the `input.json` file in a text editor.
* View or modify the [network details](/protocol-guide/build-a-dapp/network-configuration.md#network-metadata).
* In the network settings, fill in the [author details](/protocol-guide/build-a-dapp/network-configuration.md#author-details-and-countries) and specify the [supported countries](/protocol-guide/build-a-dapp/network-configuration.md#author-details-and-countries).
* Configure the [join network settings](/protocol-guide/build-a-dapp/network-configuration.md#join-network-settings) and set up [solve token usage](/protocol-guide/build-a-dapp/network-configuration.md#solve-token-settings).
* Define the [roles](/protocol-guide/build-a-dapp/roles-and-journeys.md#roles) and [journeys](/protocol-guide/build-a-dapp/roles-and-journeys.md#journeys).
* Declare the included [cards](/protocol-guide/build-a-dapp/card-definitions.md#cards), [events](/protocol-guide/build-a-dapp/events-and-event-handlers.md#events), and [event handlers](/protocol-guide/build-a-dapp/events-and-event-handlers.md#event-handlers).
* If necessary, include details about [tuumIO ledgers](/protocol-guide/build-a-dapp/tuumio-ledgers.md).
* Save and validate the `input.json` file.

## Define the data structure

* Create a [data definition file](/protocol-guide/build-a-dapp/tuumio-data-node.md#data-definition-file) based on how you want to organize data.
* Define the structure of the [transactional data](/protocol-guide/build-a-dapp/transactional-data.md).

## Create the definitions for cards&#x20;

* Define the [card structure](/protocol-guide/build-a-dapp/card-definitions.md#card-definition-structure), including [tiles](/protocol-guide/build-a-dapp/card-definitions/tiles.md) and [functions](/protocol-guide/build-a-dapp/card-definitions/functions.md).

## Create events and event handler definitions

* Configure the [events](/protocol-guide/build-a-dapp/events-and-event-handlers.md#events) and [event handlers](/protocol-guide/build-a-dapp/events-and-event-handlers.md#event-handlers).
* Configure [node event handlers](/protocol-guide/build-a-dapp/node-event-handlers.md).

## Configure Python event handlers

* Understand the predefined functions in the [Python template](/protocol-guide/build-a-dapp/python-event-handlers.md#python-event-handler-template).
* Perform the steps to configure an event based on the [use case example](/protocol-guide/build-a-dapp/python-event-handlers.md#use-case-example).
