Secure, anonymous peer-to-peer chat over I2P
I2PChat says "Connection refused" or can't connect.
The SAM bridge isn't running or isn't reachable. Enable it in your router: Java I2P via http://127.0.0.1:7657/configclients (check SAM application bridge), i2pd via [SAM] enabled = true in i2pd.conf. Default port is 127.0.0.1:7656.
I2PChat connects but none of my contacts appear online.
I2P is a store-and-forward network — route updates take time. After connecting, wait 1–2 minutes for floodfill propagation. If contacts still show offline, they may not have SAM enabled on their end, or their I2P router is unreachable due to tunnel configuration or firewall settings.
Can I run I2PChat over a remote SAM bridge?
Not recommended. SAM listens on 127.0.0.1 by default for security. Exposing it to the network leaks unencrypted I2P traffic. If you must, bind SAM to 0.0.0.0 and enable SSL+auth on the bridge — but running I2PChat locally alongside your router is simpler and safer.
What's the difference between persistent and transient identity?
Persistent (default): your I2P destination key is saved to ~/.i2pchat/ and reused across restarts. Your contacts can always find you at the same address. Transient: a new keypair is generated each session — contacts will not recognize you unless you share your new destination every time.
I restarted I2PChat and my contacts can't find me.
Your I2P destination hasn't changed (it's stored in ~/.i2pchat/), but floodfill caches may have expired. Wait a few minutes for the network to re-learn your address. If you're using a transient identity, share your new destination with your contacts.
How do I change my I2P key / reset my identity?
Delete ~/.i2pchat/sam.privkey and restart I2PChat. A new keypair will be generated. You must share the new destination with all contacts.
Why was my message not delivered?
The recipient was offline when you sent it. I2PChat stores unsent messages in ~/.i2pchat/UnsetMessages.dat and delivers them automatically on next connection. Messages are delivered only while both peers are online simultaneously — I2PChat has no server-side store-and-forward.
Can I use I2PChat without an I2P router running?
No — I2PChat requires a local SAM bridge. Java I2P or i2pd must be running with SAM enabled. You can compose offline messages, but they won't be sent until both routers are online.
File transfer fails or never starts.
Both peers must be online simultaneously. Large files may timeout on slow I2P connections — try smaller files first to verify the channel works. Check that your tunnel configuration (length, quantity) allows enough bandwidth. File transfers open a dedicated I2P stream per transfer.
Where are received files saved?
In your configured download directory (Settings → File Transfer). Default is ~/Downloads/I2PChat/ on Linux, %USERPROFILE%\Downloads\I2PChat\ on Windows.
Where are my contacts and settings stored?
Linux: ~/.i2pchat/. Windows: %APPDATA%\Roaming\I2PChat\. Key files: users.config (contacts), userblocklist.config (blocked users), settingsGUI.config (UI settings), sam.privkey (your I2P identity), UnsetMessages.dat (offline message queue).
How do I back up or migrate I2PChat?
Copy the entire ~/.i2pchat/ directory to the new machine. That preserves your identity, contacts, and settings. Install I2PChat and a compatible I2P router on the target machine, then launch.
How do I reset I2PChat completely?
Quit I2PChat, delete the ~/.i2pchat/ directory, and restart. A fresh identity and configuration will be created. Your contacts will need your new destination.
How do I view debug logs?
Use the Debug Messages window (View → Debug Messages) for in-app logging. For more detail, run I2PChat from a terminal and watch stdout/stderr output.
I2PChat crashes on startup.
Try deleting ~/.i2pchat/settingsGUI.config to reset UI settings. If it still crashes, check that your I2P router is running and SAM is enabled. Run from a terminal to capture crash output.
Where can I report bugs or get help?
Open an issue at github.com/vituperative/i2pchat/issues with debug output, OS version, and I2P router type/version.
Licensed under GPLv3.