troubleshooter

When something's off

Most bot problems fall into a handful of shapes. Find yours below. 9 times out of 10, /check tells you.

First thing, always: Open /check on your bot's URL. The page shows every chain and platform's state with specific text about what's wrong. Most problems are diagnosed and half-solved right there.
My bot isn't replying when I mention it

Either the bot isn't running, isn't logged in, or isn't allowed to read messages.

  1. Open /check. If Discord, Telegram, Twitch, or X is red, the error text tells you — usually a wrong token or credential.
  2. If /check shows both green: in Discord, go to your app at discord.com/developers → your app → Bot → make sure Message Content Intent is enabled under "Privileged Gateway Intents." Without this, your bot literally can't see messages.
  3. Check that your bot has been invited to the server/group, and has permission to read and send messages in the channel you're testing.
I tipped but the bot didn't thank me

Check /check first — make sure the chain your tip went to is green.

  1. Did the transaction actually confirm on-chain? Check it in your wallet or a block explorer.
  2. Did the tip go to the right address? Look at /check — the address shown there is the one your bot is watching. Cross-check it against where you sent.
  3. Is an announcement channel configured? Without DISCORD_ANNOUNCE_CHANNEL_ID or TELEGRAM_ANNOUNCE_CHAT_ID, your bot sees the tip but has nowhere to post. Set one and redeploy.
  4. For Discord specifically: does your bot have permission to post in that channel?
/check page is all red / won't load

Usually means the bot process crashed on startup.

  1. Check your host's logs:
    • Railway: your service → Logs tab
    • Render: your service → Logs
    • Fly: fly logs
    • Self-host: wherever your npm start output is
  2. The error message is usually self-explanatory — often "OWNER_X is required" or "OWNER_X is not a valid address."
  3. Fix your config.env, redeploy.
"Couldn't find your XRPL account" at startup

The address you set doesn't exist on the network your bot is watching.

  1. If you're testing with a brand-new wallet: XRPL accounts need to be "activated" by receiving at least ~10 XRP first. An empty account doesn't exist on-ledger yet.
  2. Check your XRPL_WS_URL matches the network your account is on. Testnet addresses won't be found on mainnet URLs, and vice versa.
EVM watcher keeps disconnecting / erroring

Almost always the public RPC is rate-limiting you.

  1. Sign up for a free tier at Alchemy, Infura, or QuickNode.
  2. Create an app for Base (or Arbitrum, or both) and copy the WebSocket URL.
  3. Set EVM_BASE_RPC_URL and/or EVM_ARBITRUM_RPC_URL to your new URLs. Redeploy.
"This bot requires Node 22.6 or later"

Your host is running an older Node. Fix varies by host:

Thank-yous use an address, not a name

This is by design — the bot shortens the tipper's address (like 0x1234…5678 or 7xKX…YSBp) when it can't figure out a better name.

To show ENS names on EVM tips, set ENS_MAINNET_RPC_URL in your config. Any Ethereum-mainnet RPC works (Alchemy free tier is fine). Redeploy.

For XRPL and Solana, tippers include their name in the on-chain memo field when they send — the bot uses that.

"API_PUBLIC_URL must be HTTPS in production"

Your API_PUBLIC_URL starts with http://. Wallets refuse plain-HTTP links for security.

Fix: change it to your real HTTPS URL. For local testing only, set NODE_ENV=development.

Bot was working, now it's not

Your host probably restarted it. Check /check.

None of these match my problem

Open the FAQ or — if you're technical — the bot's own logs usually say something specific and actionable. The errors throughout this project were written on purpose to be readable.