# How to Integrate with IPRoyal Pawns Using Email and Password in InternetIncome

> Integrate IPRoyal Pawns with InternetIncome easily. Set your credentials in properties.conf and run the script to start earning passive income. Learn how to begin today.

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

---

**To integrate IPRoyal Pawns with InternetIncome, set your credentials in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) and run [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh), which automatically pulls the `iproyal/pawns-cli` Docker image and launches a container with your email and password.**

InternetIncome orchestrates bandwidth-sharing services through isolated Docker containers. The **IPRoyal Pawns** integration authenticates using standard email and password credentials defined in the configuration file, enabling automated device registration and bandwidth sharing without manual CLI intervention.

## Configuration Prerequisites

Before starting, you need an active IPRoyal Pawns account. The system reads authentication details from the central configuration file [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) located in the repository root.

The script expects two specific variables:

- `IPROYALS_EMAIL` – Your registered IPRoyal account email address
- `IPROYALS_PASSWORD` – Your account password

Both values must be wrapped in **single quotes** to prevent shell interpretation of special characters.

## How the Integration Works

The integration follows a conditional containerization pattern implemented in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh). When you execute the start command, the script performs the following operations:

1. **Sources configuration** – Loads variables from [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) (lines 25–28)
2. **Validates credentials** – Checks if `IPROYALS_EMAIL` and `IPROYALS_PASSWORD` are non-empty (lines 33–41)
3. **Pulls image** – Downloads `iproyal/pawns-cli:latest` if not present locally
4. **Launches container** – Executes the CLI with your credentials and device parameters
5. **Accepts terms** – Automatically passes the `-accept-tos` flag to bypass manual agreement

The container naming convention follows the pattern `pawns${UNIQUE_ID}${i}`, allowing multiple instances if configured.

## Setting Up Your Credentials

Edit [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) to add your authentication details:

```bash

# IPRoyal Pawns credentials (lines 25-28)

IPROYALS_EMAIL='your.email@example.com'
IPROYALS_PASSWORD='YourSecurePassword123!'

```

Ensure you also configure the device identifier:

```bash

# Device name appears in your IPRoyal dashboard

DEVICE_NAME='ubuntu-server-01'

```

This `DEVICE_NAME` value populates both the `-device-name` and `-device-id` flags in the container startup command.

## Launching the Service

Start the integration by running the main orchestration script:

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

```

Upon successful initialization, you will see output confirming the container creation:

```text
Starting IPRoyals container..
Container pawns12345 started successfully.

```

The script automatically applies networking configurations including `$NETWORK_TUN`, `$LOGS_PARAM`, and `$DNS_VOLUME` to ensure compatibility with proxy setups and DNS-over-HTTPS settings.

## Understanding the Container Startup Logic

According to the source code in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh) (lines 33–41), the initialization block performs a conditional check:

```bash
if [[ $IPROYALS_EMAIL && $IPROYALS_PASSWORD ]]; then
    # Pull and run logic executes here

fi

```

If credentials are missing, the script outputs a warning message and skips IPRoyal initialization. When credentials are present, the Docker command constructs the following execution:

```bash
docker run --name "pawns${UNIQUE_ID}${i}" \
  ${NETWORK_TUN} ${LOGS_PARAM} ${DNS_VOLUME} \
  iproyal/pawns-cli:latest \
  -email=$IPROYALS_EMAIL \
  -password=$IPROYALS_PASSWORD \
  -device-name=$DEVICE_NAME$i \
  -device-id=$DEVICE_NAME$i \
  -accept-tos

```

This command authenticates your session, registers the device under your specified name, and immediately begins bandwidth sharing.

## Manual Docker Execution (Optional)

For testing or debugging outside the main script, you can run the IPRoyal CLI directly:

```bash
docker run --rm \
  iproyal/pawns-cli:latest \
  -email='your.email@example.com' \
  -password='YourSecurePassword123!' \
  -device-name='test-device' \
  -device-id='test-device' \
  -accept-tos

```

Note that this manual approach bypasses the proxy and logging configurations managed by [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh).

## Summary

- **Configuration location**: Set `IPROYALS_EMAIL` and `IPROYALS_PASSWORD` in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) using single quotes
- **Image source**: The script pulls `iproyal/pawns-cli:latest` automatically
- **Device identification**: Uses the `DEVICE_NAME` variable for both device name and ID
- **Automation**: The script handles image pulling, container naming, and Terms of Service acceptance
- **Proxy support**: Inherits networking settings from the global `$NETWORK_TUN` and `$DNS_VOLUME` variables

## Frequently Asked Questions

### What happens if I leave the credentials empty in properties.conf?

The script checks for non-empty values in `IPROYALS_EMAIL` and `IPROYALS_PASSWORD` at lines 33–41 of [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh). If either variable is empty, the script prints a warning message and skips the IPRoyal container initialization entirely, continuing with other configured services.

### Can I use special characters in my IPRoyal password?

Yes, but you must wrap the password in **single quotes** within [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf). This prevents the shell from interpreting special characters like `$`, `!`, or `*` during variable expansion. For example: `IPROYALS_PASSWORD='MyP@ss$word!'`.

### How does InternetIncome handle multiple IPRoyal Pawns instances?

The script supports multiple instances through the `${i}` index variable in the container name pattern `pawns${UNIQUE_ID}${i}`. Each instance receives a unique device identifier by appending the index to your base `DEVICE_NAME`, allowing you to run several containers simultaneously while maintaining distinct device entries in your IPRoyal dashboard.

### Where can I view the logs for the IPRoyal container?

Logging is controlled by the global `ENABLE_LOGS` flag in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf). When enabled, the script passes log configuration through the `$LOGS_PARAM` environment variable to Docker. You can view real-time logs using `docker logs pawns<UNIQUE_ID>0` (adjusting the suffix for your specific container instance).