Iris Wallet manages RGB assets from issuance to spending and receiving, wrapping all functionality in a familiar-looking wallet application and abstracting away as many technical details as possible.
The RGB functionality is provided by rgb-lightning-node.
Before you begin, ensure you have the following installed:
- Python 3.12
- Poetry (Python dependency management tool)
- Rust (latest version for compiling the Lightning Node binary)
- Docker (required for running the regtest environment)
Open your terminal and clone the Iris Wallet Desktop repository:
git clone https://github.com/RGB-Tools/iris-wallet-desktop.git
This creates a directory named iris-wallet-desktop
.
Change into the cloned directory:
cd iris-wallet-desktop
Install Poetry using pip:
pip install poetry
Run the following command to install all required dependencies:
poetry install
Compile the resources with PySide6:
poetry shell
pyside6-rcc src/resources.qrc -o src/resources_rc.py
Create a directory for the Lightning Node binary in the iris-wallet-desktop
root directory:
mkdir ln_node_binary
In a different location, clone the RGB Lightning Node repository:
git clone https://github.com/RGB-Tools/rgb-lightning-node --recurse-submodules --shallow-submodules
Navigate to the root folder of the cloned RGB Lightning Node project:
cd rgb-lightning-node
cargo install --debug --path . --locked
Locate the rgb-lightning-node
binary in the target/debug
directory and copy it to the ln_node_binary
folder in the iris-wallet-desktop
directory.
Create a config.py
file in the iris-wallet-desktop
directory and add the following configuration. Replace placeholders with your actual credentials:
# Config file for Google Drive access
client_config = {
'installed': {
'client_id': 'your_client_id_from_google_drive',
'project_id': 'your_project_id',
'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
'token_uri': 'https://oauth2.googleapis.com/token',
'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
'client_secret': 'your_client_secret',
},
}
# Config for the error report email server
report_email_server_config = {
'email_id': 'your_email_id',
'email_token': 'your_email_token',
'smtp_host': 'smtp.gmail.com',
'smtp_port': '587'
}
-
Log In:
- Access the Google Developer Console.
- Sign in with the Google account for which you want to create credentials.
-
Create a New Project:
- Click on Select a Project in the top right corner.
- Click on New Project, enter a name for your project, and click Create.
-
Enable Google Drive API:
- Once logged in, use the search bar to find and enable Google Drive API.
-
Create Credentials:
- After enabling the API, click on Create Credentials.
- Provide the required information. When setting up the OAuth consent screen, select the Desktop app.
-
Download the JSON File:
- Once the credentials are created, download the JSON file. It will look something like this:
{ "installed": { "client_id": "your_client_id", "project_id": "your_project_id", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_secret": "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", "redirect_uris": ["redirect_uris"] } }
- Important: Remove the
"redirect_uris"
field from the JSON file.
- Once the credentials are created, download the JSON file. It will look something like this:
-
Update Your Configuration:
- Save the modified JSON file and add it to your
config.py
file.
- Save the modified JSON file and add it to your
Search for App Passwords in your Gmail account to create an app password for email access.
You can now start the Iris Wallet application using:
poetry run iris-wallet --network=<NETWORK>
Replace <NETWORK>
with either regtest
or testnet
:
-
For Testnet:
poetry run iris-wallet --network=testnet
-
For Regtest:
- First, run the
regtest.sh
script in thergb-lightning-node
directory:./regtest.sh
- Then, start the application:
poetry run iris-wallet --network=regtest
- First, run the
To build the application, ensure you have completed all previous steps and enter the Poetry shell:
poetry shell
build-iris-wallet --network=<NETWORK> --distribution=<DISTRIBUTION> --ldk-port=<port> [optional]
<DISTRIBUTION>
:{appimage,deb}
- If you want the application to run on a specific port, use the
--ldk-port
argument. This is optional and can be ignored if no specific port is required.
poetry run pytest
poetry run pytest unit_tests/tests<TEST_FILE.py>