Skip to main content

Telegram APY Alerts

YeldX can notify you via Telegram when the APY on one of your positions drops below a threshold you set.


Setting up an alert

  1. Open the Portfolio tab
  2. Find the position you want to monitor
  3. Click the bell icon in the top-right of the position card
  4. Enter your Telegram username and the APY threshold
┌─────────────────────────────────┐
│ Set APY Drop Alert │
│ │
│ Vault: USDC · Aave · Base │
│ Current APY: 8.12% │
│ │
│ Telegram: @yourhandle │
│ Alert when APY drops below: 5% │
│ │
│ [Save Alert] │
└─────────────────────────────────┘

How alerts work

sequenceDiagram
participant Cron as Cron (every 15 min)
participant API as YeldX API
participant LIFI as LI.FI Earn API
participant TG as Telegram Bot

Cron->>API: GET /api/alerts/cron
API->>LIFI: Fetch current APYs
LIFI-->>API: Latest vault data
API->>API: Compare each alert threshold
alt APY dropped below threshold
API->>TG: Send alert message
TG-->>User: "USDC/Aave APY dropped to 4.8%"
end

The cron job runs every 15 minutes. When an alert fires, you receive a Telegram message like:

⚠️ YeldX APY Alert

Your USDC position on Aave (Base) has dropped below your 5% threshold.

Current APY: 4.81%
Your threshold: 5.00%

View vault → yeldx.xyz

Alert storage

Alerts are stored server-side in a JSON file (/app/data/alerts.json). They persist across app restarts and container rebuilds.

Each alert records:

  • Vault slug and chain
  • Your Telegram username
  • Your APY threshold
  • Whether the alert has already fired (to avoid spam)

Telegram setup

You do not need to "start" a bot before receiving alerts. When you set an alert, the YeldX Telegram bot will send you a message directly.

If you never receive a message, verify:

  1. Your Telegram username is entered correctly (with or without @)
  2. You have not blocked the bot
  3. You have not set privacy settings that block messages from unknown bots

Managing alerts

To remove an alert, click the bell icon again on the same position card and delete the alert from the modal.

Each position can have one active alert at a time.