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.
User intentCommand path看套餐/价格plans --json创建订阅支付单list-orders --status pending --json -> pay ... --json继续支付订单check-payment --order-id <ID> --json取消未支付订单cancel-order --order-id <ID> --json查询订阅状态status --json取消订阅unsubscribe --json
telegram / discord first, then email as optional fallbackchannel=telegramchannel=discordchannel=email if user chooses email or lacks Telegram/Discord setupBefore doing any subscription/payment action, always check login state first.
Run:
bash
node skills/crypto-listing-alert/index.cjs check-login --json
If logged_in = true: proceed normally.
If logged_in = false: immediately guide user to get API key from website first, then login:
https://listingalert.orgbash
node skills/crypto-listing-alert/index.cjs login --api-key <KEY> --json
Do not continue subscription/payment commands before login is ready.
Always use --json flag when calling the CLI.
First-time setup flow:
https://listingalert.org.check-login --json.node skills/crypto-listing-alert/index.cjs login --api-key <KEY> --jsonPayment flow for paid plans (recommended):
list-orders --status pending --json.check-payment --order-id <ID> --jsoncancel-order --order-id <ID> --json then create new orderpay command to create new payment order after pending-order decisioncheck-payment to wait for confirmationBefore calling pay, collect all required fields:
monthly or yearly)telegram or discord or email) - auto-detect from current user environment/message contexttelegram_chat_id + bot_tokendiscord_channel_id + bot_tokenemailCredential 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.Never guess API key, bot token, chat/channel ID, or email.
Error handling: if command returns JSON error, show it clearly to user.
Exchanges must be lowercase comma-separated values.
bash
node skills/crypto-listing-alert/index.cjs check-login --json
Expected response (example):
json
{
"logged_in": true,
"api_url": "https://listingalert.org/api",
"config_path": ".../.exchange-alerts/config.json"
}
bash
node skills/crypto-listing-alert/index.cjs login --api-key <API_KEY> --json
Optional custom server:
bash
node skills/crypto-listing-alert/index.cjs login --api-key <API_KEY> --api-url <URL> --json
bash
node skills/crypto-listing-alert/index.cjs plans --json
Present plans clearly (plan, monthly/yearly price, exchanges, signal types, limits).
bash
node skills/crypto-listing-alert/index.cjs list-orders --status pending --json
Optional flags:
--status <pending|paid|expired|cancelled>If there is an order id, generate QR image URL as:
qr_url = <api_url>/payments/<order_id>/qrThen wrap per messaging channel:
[点击查看支付二维码](<qr_url>) or direct image URL. and fallback <qr_url>.bash
node skills/crypto-listing-alert/index.cjs cancel-order --order-id <ORDER_ID> --json
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:
bash
node skills/crypto-listing-alert/index.cjs pay --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel telegram --telegram <CHAT_ID> --bot-token <TOKEN> --json
Discord command template:
bash
node skills/crypto-listing-alert/index.cjs pay --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel discord --discord-channel <CHANNEL_ID> --bot-token <TOKEN> --json
Email command template:
bash
node skills/crypto-listing-alert/index.cjs pay --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel email --email <EMAIL> --json
Use server returned order.qr_url first; if absent, build via <api_url>/payments/<id>/qr.
Then wrap per channel:
[点击查看支付二维码](<qr_url>) plus <qr_url> fallbackbash
node skills/crypto-listing-alert/index.cjs check-payment --order-id <ORDER_ID> --json
Optional flags:
--wait <SECONDS> (default 300)Behavior:
After success:
Telegram:
bash
node skills/crypto-listing-alert/index.cjs subscribe --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel telegram --telegram <CHAT_ID> --bot-token <TOKEN> --json
Discord:
bash
node skills/crypto-listing-alert/index.cjs subscribe --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel discord --discord-channel <CHANNEL_ID> --bot-token <TOKEN> --json
Email:
bash
node skills/crypto-listing-alert/index.cjs subscribe --plan <PLAN_CODE> --exchanges <EXCHANGE_CSV> --billing <monthly|yearly> --channel email --email <EMAIL> --json
bash
node skills/crypto-listing-alert/index.cjs status --json
If subscription is null, inform user no active subscription and suggest viewing plans.
bash
node skills/crypto-listing-alert/index.cjs unsubscribe --json
check-login --jsonplans --jsonlist-orders --status pending --json
pay ... --jsoncheck-payment --order-id <ID> --jsonUser must have started chat with their configured bot (e.g. /start) or alerts may fail.
Bot must already be in target server and have permission to send messages in target channel.
ErrorSolution"not logged in"Run check-login --json, then login --api-key <KEY> --json"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 orderPayment not confirmingVerify exact amount, wallet address, network (BSC), token (USDT BEP-20)Missing bot/chat/channel/email configRead from required source (openclaw config or message context), ask user to fix config