- Ensure you succeeded with Step 1. Add testnet to Wallet
- Ensure you installed Docker on your desktop.
Install QAN XLINK Docker
Learn how to install QAN XLINK post-quantum cross-signer.
Prerequisites
Note:
What is QAN XLINK?
QAN XLINK a custom cross-signature protocol. This protocol enables seamless integration of every Ethereum-compatible wallet (such as MetaMask and Trust Wallet) with quantum-resistant signature-capable keypairs.
Install QAN XLINK with Docker
Make sure Docker is running on your device.
It is enough if Docker runs in the background.
- Open Terminal / Command Prompt on your device.
Copy-paste the following command in Terminal/Command Prompt and press Return/Enter key.
docker pull qanplatform/xlink:testnet docker run -d --name=xlink-testnet --restart=always --volume=xlink-testnet:/xlink qanplatform/xlink:testnetCopy-paste the following command in Terminal/Command Prompt and press Return/Enter key.
docker logs -f xlink-testnetYour new address is ready!
You just generated your new wallet address which has associated QAN XLINK post-quantum keys.
Done! You should see something similar in the output (you can safely ignore the low balance alert):
Created mnemonic file with a new securely generated mnemonic at /xlink/mnemonic.txt xlink initialized for address: 0xfaE0b7ED46f266cF360E52e0C8E33a37AAaa1a81 insufficient funds on address, waiting 1 minute before re-checking...
Warning:
QAN XLINK will only automatically cross-sign your future transactions in the background using post-quantum cryptography while Docker is running on your device.
Supporting Multiple Wallets
There are several approaches to run multiple addresses:
Option 1: Unique volume per wallet
# Wallet A
docker run -d --name=xlink-wallet-a --restart=always --volume=xlink-wallet-a:/xlink qanplatform/xlink:testnet
# Wallet B
docker run -d --name=xlink-wallet-b --restart=always --volume=xlink-wallet-b:/xlink qanplatform/xlink:testnet
Option 2: Mount different mnemonic files
# Wallet A
docker run -d --name=xlink-wallet-a --restart=always -v /path/to/mnemonic-a.txt:/xlink/mnemonic.txt qanplatform/xlink:testnet
docker run -d --name=xlink-wallet-b --restart=always -v /path/to/mnemonic-b.txt:/xlink/mnemonic.txt qanplatform/xlink:testnet
Option 3: Override mnemonic path via environment variable
docker run -d --name=xlink-wallet-b --restart=always \
-v my-volume:/xlink \
-e QAN_MNEMO=/xlink/wallet-b.txt \
qanplatform/xlink:testnet
Default Behavior
The XLINK image uses these environment variables:
- QAN_CREATE_MNEMO_IF_NOT_EXISTS=1 - automatically creates a new mnemonic file if one doesn't exist
- QAN_MNEMO=/xlink/mnemonic.txt - path to the mnemonic file inside the container
The current documented setup:
docker pull qanplatform/xlink:testnet
docker run -d --name=xlink-testnet --restart=always --volume=xlink-testnet:/xlink qanplatform/xlink:testnet
This creates a persistent Docker volume (xlink-testnet) to store the mnemonic file. The mnemonic is generated on first run and reused on subsequent runs.