Show your RustChain mining status in Discord profile!
- ✅ Display hardware type (PowerPC G4/G5, POWER8, Apple Silicon, etc.)
- ✅ Show antiquity multiplier (2.5x for G4, 2.0x for G5, etc.)
- ✅ Real-time RTC balance
- ✅ Track RTC earned today
- ✅ Miner online status (based on last attestation)
- ✅ Current epoch and slot number
- ✅ Node health information
- Python 3.7+ installed
- Discord account with Discord running
- Discord Application for Rich Presence
- Active RustChain miner enrolled in the network
- Go to https://discord.com/developers/applications
- Click "New Application"
- Name it "RustChain Miner" (or any name you like)
- Click "Create"
- Copy the Application ID (you'll need this as
--client-id) - Go to "Rich Presence" > "Art Assets"
- Upload images (optional):
- Large image: RustChain logo
- Small image: Mining icon
- Enable Rich Presence
pip install -r discord_requirements.txtOr manually:
pip install pypresence requestsReplace YOUR_MINER_ID with your wallet/miner address and YOUR_CLIENT_ID with your Discord Application ID:
python3 discord_rich_presence.py \
--miner-id YOUR_MINER_ID \
--client-id YOUR_CLIENT_IDExample:
python3 discord_rich_presence.py \
--miner-id eafc6f14eab6d5c5362fe651e5e6c23581892a37RTC \
--client-id 123456789012345678--interval SECONDS- Update interval (default: 60 seconds)--miner-id ID- Your miner wallet address (required)--client-id ID- Discord Application ID (required for Discord connection)
When your miner runs, it displays your miner ID (wallet address):
[2026-02-13 12:34:56] Miner enrolled: eafc6f14eab6d5c5362fe651e5e6c23581892a37RTC
List all active miners:
curl -sk https://50.28.86.131/api/miners | jq '.[].miner'If you have your wallet address, use that.
When running, your Discord profile will show:
Top line (state):
🍎 PowerPC G4 2.5x · Online
Bottom line (details):
Balance: 118.35 RTC
Hover on large image:
PowerPC G4 (Vintage) (2.5x reward)
Hover on small image:
E62 · S9010
You must create a Discord Application to use Discord Rich Presence:
- Go to https://discord.com/developers/applications
- Create a new application
- Copy the Application ID
- Pass it as
--client-id YOUR_ID
- Make sure Discord is running on your computer
- Make sure you're logged in to Discord
- Check that you're not in "Invisible" status (appear "Online" or "Idle")
- Try restarting Discord
Your miner must be:
- Running and actively submitting attestations
- Enrolled in the current epoch
- Visible in the miners list API
Check your miner status:
curl -sk https://50.28.86.131/api/miners | jq '.[] | select(.miner=="YOUR_MINER_ID")'- Verify your miner ID is correct
- Make sure you're using the full wallet address (including "RTC" suffix if applicable)
- Check network connectivity:
curl -sk https://50.28.86.131/health
Linux (systemd):
Create /etc/systemd/user/rustchain-discord.service:
[Unit]
Description=RustChain Discord Rich Presence
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/path/to/Rustchain
ExecStart=/usr/bin/python3 /path/to/Rustchain/discord_rich_presence.py \
--miner-id YOUR_MINER_ID \
--client-id YOUR_CLIENT_ID
Restart=always
RestartSec=10
[Install]
WantedBy=default.targetEnable and start:
systemctl --user enable rustchain-discord
systemctl --user start rustchain-discord
systemctl --user status rustchain-discordmacOS (launchd):
Create ~/Library/LaunchAgents/com.rustchain.discord.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.rustchain.discord</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/path/to/Rustchain/discord_rich_presence.py</string>
<string>--miner-id</string>
<string>YOUR_MINER_ID</string>
<string>--client-id</string>
<string>YOUR_CLIENT_ID</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>Load and start:
launchctl load ~/Library/LaunchAgents/com.rustchain.discord.plist
launchctl start com.rustchain.discordThis script:
- ✅ Only reads public API data (miner list, balance, epoch info)
- ✅ Does NOT access your private key or seed phrase
- ✅ Does NOT store any sensitive information
- ✅ Tracks local state for earnings calculation (stored in
~/.rustchain_discord_state.json)
MIT License - Same as RustChain repository.
If you encounter issues:
- Check the troubleshooting section above
- Verify your miner is actively running
- Test API endpoints manually with curl
- Open an issue on GitHub: https://github.com/Scottcjn/Rustchain/issues
Happy Mining! 🍎