# How to Configure the Titan Network Identity Hash in InternetIncome

> Learn how to configure the Titan Network identity hash in InternetIncome. Set the TITAN_HASH variable in properties.conf and run internetIncome.sh to register your device and launch the edge node.

- Repository: [engageub/internetincome](https://github.com/engageub/internetincome)
- Tags: how-to-guide
- Published: 2026-03-01

---

**Set the `TITAN_HASH` variable in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) with your Titan Network identity hash, then execute [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh) to automatically register your device and launch the edge node.**

The InternetIncome repository by engageub automates passive income generation by orchestrating Docker containers for various decentralized networks, including Titan Network. To activate this integration, you must supply a unique identity hash that binds your physical device to your Titan account, enabling the script to pull the `nezha123/titan-edge` image and execute the required binding API call.

## Obtaining Your Titan Network Identity Hash

Before editing configuration files, generate your identity hash through Titan Network's registration flow.

- Visit the Titan Network registration page at `https://test1.titannet.io/intiveRegister?code=ILOgrq`.
- Complete the account creation process.
- Copy the displayed **hash** (a long alphanumeric string) that uniquely identifies your device.

This hash acts as your authentication credential for the Titan Network edge node.

## Configuring TITAN_HASH in properties.conf

The script reads your identity hash from the `TITAN_HASH` variable defined in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) at lines 62–64.

Open the configuration file and locate the section labeled "Titan Network Identity Code". Set the variable using single quotes to prevent shell interpretation errors:

```bash

# Titan Network Identity Code

TITAN_HASH='your-obtained-hash-here'

```

Alternatively, use `sed` to programmatically update the value:

```bash
sed -i "s/^TITAN_HASH=.*/TITAN_HASH='abc123def456ghi789'/" properties.conf

```

As implemented in engageub/internetincome, the script sources this file during startup and validates the presence of `TITAN_HASH` before attempting any Docker operations.

## Running the Script to Bind Your Device

Once configured, start InternetIncome to trigger the automated binding sequence:

```bash
sudo bash internetIncome.sh --start

```

During execution, the script performs the following actions defined in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh) (lines 1028–1050):

- Detects that `TITAN_HASH` is populated.
- Pulls the `nezha123/titan-edge` Docker image.
- Creates a persistent volume at `$PWD/$titan_data_folder/data$i` with 777 permissions.
- Launches the container with the volume mounted to `/root/.titanedge`.
- Executes the binding command:

```bash
sudo docker run --rm -it $titan_volume nezha123/titan-edge bind --hash=$TITAN_HASH https://api-test1.container1.titannet.io/api/v2/device/binding

```

If the hash is missing, the script outputs: "Titan Network Hash is not configured. Ignoring Titan Network."

## Technical Implementation Details

The Titan Network integration follows a specific orchestration pattern in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh). The script stores container state in a bind-mounted volume located at `$PWD/$titan_data_folder/data$i`, ensuring persistence across restarts.

Key implementation characteristics include:

- **Image**: `nezha123/titan-edge` (pulled only if `container_pulled` is false).
- **Volume mount**: `--mount type=bind,source=$PWD/$titan_data_folder/data$i,target=/root/.titanedge`.
- **API endpoint**: `https://api-test1.container1.titannet.io/api/v2/device/binding`.
- **Container naming**: `titan$UNIQUE_ID$i` with restart-always policy.

The binding API call uses a temporary container (`--rm`) that exits immediately after registering the device hash with Titan's servers.

## Single-Device Limitations and Constraints

The current implementation enforces strict single-device support per script instance.

If you attempt to run multiple Titan nodes, the script prints a reminder at line 1044: "The current script is designed to support only a single device for the Titan Network." To operate multiple devices, you must:

- Duplicate the entire InternetIncome script folder.
- Configure a different `TITAN_HASH` in each copy's [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf).
- Run each instance separately.

Additionally, do not delete the `$PWD/$titan_data_folder/data$i` directory unless you intend to reset the device binding and lose accumulated state.

## Summary

- **Obtain** your identity hash from the Titan Network registration portal.
- **Configure** the `TITAN_HASH` variable in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) (lines 62–64) using single quotes.
- **Execute** `sudo bash internetIncome.sh --start` to automatically pull the Docker image and bind your device via the API endpoint.
- **Limit** deployments to one device per script instance; duplicate the folder for additional nodes.
- **Preserve** the data folder at `$PWD/$titan_data_folder/data$i` to maintain device state and avoid re-binding.

## Frequently Asked Questions

### What happens if I don't set TITAN_HASH?

If the `TITAN_HASH` variable is empty or undefined in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf), the script skips Titan Network initialization entirely. According to lines 1046–1049 in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh), the script outputs "Titan Network Hash is not configured. Ignoring Titan Network.." and continues with other enabled services.

### Can I run multiple Titan Network nodes with one InternetIncome installation?

No. As explicitly coded in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh) at line 1044, the script supports only a single Titan device per instance. To run multiple nodes, create separate copies of the InternetIncome folder, configure unique hashes in each [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf), and execute them independently.

### Where is my Titan node data stored?

The script creates a bind-mounted volume at `$PWD/$titan_data_folder/data$i` (where `$i` represents the instance index). This directory maps to `/root/.titanedge` inside the container and stores your node's identity and state. Deleting this folder requires re-binding the device with Titan Network.

### How do I update my Titan identity hash after initial configuration?

Edit [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) to replace the existing `TITAN_HASH` value, then restart the script. However, if the node has already been bound, you may need to stop and remove the existing container (`docker stop titan$UNIQUE_ID$i && docker rm titan$UNIQUE_ID$i`) and delete the data folder to force a fresh registration with the new hash.