Price alerts
Price alerts notify you in real-time when a market’s price crosses a threshold you’ve set. They work independently from watchlist alerts — you can set specific directional thresholds on any market.Setting an alert
The AlertManager component appears in the market detail panel:Configure alert
In the alert section, set:
- Direction: Above or Below
- Threshold: Percentage (0-100%) — the price level that triggers the alert
- Recurring: Toggle on if you want the alert to re-trigger after firing (otherwise it fires once and deactivates)
Managing alerts
| Action | How |
|---|---|
| View all alerts | Your alerts appear in the alert manager panel and the notification center |
| Toggle on/off | Switch an alert between active and inactive without deleting it |
| Delete | Permanently remove an alert |
| Recurring alerts | When enabled, the alert resets after firing and will trigger again on the next crossing |
Notification delivery
When an alert triggers:- A notification is created in the
alert_notificationstable - The NotificationCenter bell icon (top-right of the Markets page) updates with an unread count badge
- A WatchlistAlertOverlay toast slides in from the bottom-right corner
- Distinct audio tones play — ascending for price up, descending for price down
Notification center
Click the bell icon to see all notifications:- List of alert notifications with timestamps
- “Mark all as read” button
- Click any notification to mark as read and jump to the market
- Unread count badge (red) on the bell icon
Toast alerts
TheWatchlistAlertOverlay component shows toast-style notifications:
- Market name, direction of movement, new price
- Auto-dismiss after 5 seconds if not interacted with
- Click to open the market detail panel
Data model
Each alert stores:| Field | Type | Description |
|---|---|---|
user_address | string | Your wallet address |
condition_id | string | Market identifier |
token_id | string | Specific outcome token |
outcome | string | YES or NO |
direction | above | below | Trigger direction |
threshold | number | Price threshold (0-100) |
is_active | boolean | Whether the alert is currently active |
is_recurring | boolean | Re-trigger after firing |

