Crypto Listing Alert
by @xyz-ass
Use when users want to subscribe, pay, or manage Crypto Listing Alert notifications for exchange listing events and need Telegram, Discord, or Email delivery...
clawhub install crypto-listing-alert📖 About This Skill
name: crypto-listing-alert description: Use when users want to subscribe, pay, or manage Crypto Listing Alert notifications for exchange listing events and need Telegram, Discord, or Email delivery with API-key login. version: 1.0.2
Crypto Listing Alert Skill
Use this skill for Crypto Listing Alert subscription operations: listing alert subscribe, payment order management, status query, and unsubscribe.
Search keywords: 币安,binance,okx,crypto,Crypto Listing Alert, exchange listing, listing alert, 上币提醒, 交易所上新, 新币通知, 邮箱订阅, Telegram, Discord, 支付订单, 订阅状态.
Supported exchanges: Binance, OKX, Bybit, Bitget.
The skill uses the node skills/crypto-listing-alert/index.cjs CLI tool to communicate with the backend API.
When To Use
Quick Intents
| User intent | Command path |
|-------------|--------------|
| 看套餐/价格 | plans --json |
| 创建订阅支付单 | list-orders --status pending --json -> pay ... --json |
| 继续支付订单 | check-payment --order-id |
| 取消未支付订单 | cancel-order --order-id |
| 查询订阅状态 | status --json |
| 取消订阅 | unsubscribe --json |
Channel Routing
telegram / discord first, then email as optional fallbackchannel=telegramchannel=discordchannel=email if user chooses email or lacks Telegram/Discord setupPrecondition
Before doing any subscription/payment action, always check login state first.
Run:
node skills/crypto-listing-alert/index.cjs check-login --json
logged_in = true: proceed normally.logged_in = false: immediately guide user to get API key from website first, then login: 1. Visit https://listingalert.org
2. Register/login and generate API key
3. Run:
node skills/crypto-listing-alert/index.cjs login --api-key --json
Do not continue subscription/payment commands before login is ready.
Important Operating Rules
1. Always use --json flag when calling the CLI.
2. First-time setup flow:
- User must first login website and generate API key at https://listingalert.org.
- Check local login state via check-login --json.
- If not logged in, run:
node skills/crypto-listing-alert/index.cjs login --api-key
3. Payment flow for paid plans (recommended):
- First check pending orders with list-orders --status pending --json.
- If pending orders exist, ask user:
"你有未支付的订单(订单号:XXX,金额:XXX USDT),是要继续支付该订单,还是取消后重新创建?"
- If user chooses 继续支付: run check-payment --order-id
- If user chooses 取消: run cancel-order --order-id then create new order
- Use pay command to create new payment order after pending-order decision
- Show payment amount, wallet address, and QR image link
- Use check-payment to wait for confirmation
- Once confirmed, subscription is automatically activated
4. Before calling pay, collect all required fields:
- Plan code
- Exchanges (comma-separated lowercase)
- Billing cycle (monthly or yearly)
- Channel (telegram or discord or email) - auto-detect from current user environment/message context
- Channel recommendation priority: Telegram/Discord first; Email is optional fallback
- Telegram channel needs telegram_chat_id + bot_token
- Discord channel needs discord_channel_id + bot_token
- Email channel needs email
5. Credential sources (must follow):
- telegram.chatId: parse from current message body/context metadata.
- telegram.botToken: read from openclaw config file.
- discord.botToken: read from openclaw config file.
- discord.channelId: read from openclaw config file.
- email: prefer current logged-in account email; if user provides another valid email, use user input.
- If any required value is missing, tell user to fix config/source first.
6. Never guess API key, bot token, chat/channel ID, or email.
7. Error handling: if command returns JSON error, show it clearly to user.
8. Exchanges must be lowercase comma-separated values.
Capabilities
0) Check login state
node skills/crypto-listing-alert/index.cjs check-login --json
Expected response (example):
{
"logged_in": true,
"api_url": "https://listingalert.org/api",
"config_path": ".../.exchange-alerts/config.json"
}
1) Login / Setup
node skills/crypto-listing-alert/index.cjs login --api-key --json
Optional custom server:
node skills/crypto-listing-alert/index.cjs login --api-key --api-url --json
2) List available plans
node skills/crypto-listing-alert/index.cjs plans --json
Present plans clearly (plan, monthly/yearly price, exchanges, signal types, limits).
3) List payment orders
node skills/crypto-listing-alert/index.cjs list-orders --status pending --json
Optional flags:
--status If there is an order id, generate QR image URL as:
qr_url = /payments//qr Then wrap per messaging channel:
点击查看支付二维码 or direct image URL.!payment-qr and fallback .3a) Cancel a payment order
node skills/crypto-listing-alert/index.cjs cancel-order --order-id --json
4) Create payment order (RECOMMENDED for paid plans)
Channel should be auto-detected from current user environment:
--channel telegram--channel discord--channel email when user chooses Email or cannot use Telegram/DiscordTelegram command template:
node skills/crypto-listing-alert/index.cjs pay --plan --exchanges --billing --channel telegram --telegram --bot-token --json
Discord command template:
node skills/crypto-listing-alert/index.cjs pay --plan --exchanges --billing --channel discord --discord-channel --bot-token --json
Email command template:
node skills/crypto-listing-alert/index.cjs pay --plan --exchanges --billing --channel email --email --json
Use server returned order.qr_url first; if absent, build via .
Then wrap per channel:
点击查看支付二维码!payment-qr plus fallback5) Check payment status
node skills/crypto-listing-alert/index.cjs check-payment --order-id --json
Optional flags:
--wait (default 300)Behavior:
After success:
6) Create subscription (compat/free use)
Telegram:
node skills/crypto-listing-alert/index.cjs subscribe --plan --exchanges --billing --channel telegram --telegram --bot-token --json
Discord:
node skills/crypto-listing-alert/index.cjs subscribe --plan --exchanges --billing --channel discord --discord-channel --bot-token --json
Email:
node skills/crypto-listing-alert/index.cjs subscribe --plan --exchanges --billing --channel email --email --json
7) Check subscription status
node skills/crypto-listing-alert/index.cjs status --json
If subscription is null, inform user no active subscription and suggest viewing plans.
8) Cancel subscription
node skills/crypto-listing-alert/index.cjs unsubscribe --json
Payment Flow (Recommended)
1. Check login state -> check-login --json
2. Show plans -> plans --json
3. Check pending orders -> list-orders --status pending --json
- If pending exists: ask continue vs cancel
4. Create payment order -> pay ... --json
5. Show:
- exact USDT amount
- wallet address
- wrapped QR image link (Telegram/Discord specific)
- exact-amount warning
6. Wait for payment -> check-payment --order-id
7. Confirm success and remind delivery prerequisites
Channel Delivery Notes
Telegram
User must have started chat with their configured bot (e.g. /start) or alerts may fail.
Discord
Bot must already be in target server and have permission to send messages in target channel.
Troubleshooting
| Error | Solution |
|-------|----------|
| "not logged in" | Run check-login --json, then login --api-key |
| "Invalid API key" | API key is wrong or revoked; regenerate from website |
| "You already have an active subscription" | Cancel with unsubscribe or verify existing subscription |
| "Exchange not allowed in this plan" | Choose a plan that includes the exchange |
| "You already have a pending payment order" | Use list-orders --status pending --json, continue paying or cancel first |
| "Payment order expired" | Create a new payment order |
| Payment not confirming | Verify exact amount, wallet address, network (BSC), token (USDT BEP-20) |
| Missing bot/chat/channel/email config | Read from required source (openclaw config or message context), ask user to fix config |
⚡ When to Use
📋 Tips & Best Practices
| Error | Solution |
|-------|----------|
| "not logged in" | Run check-login --json, then login --api-key |
| "Invalid API key" | API key is wrong or revoked; regenerate from website |
| "You already have an active subscription" | Cancel with unsubscribe or verify existing subscription |
| "Exchange not allowed in this plan" | Choose a plan that includes the exchange |
| "You already have a pending payment order" | Use list-orders --status pending --json, continue paying or cancel first |
| "Payment order expired" | Create a new payment order |
| Payment not confirming | Verify exact amount, wallet address, network (BSC), token (USDT BEP-20) |
| Missing bot/chat/channel/email config | Read from required source (openclaw config or message context), ask user to fix config |