Communitygithub.com

NeverSight/learn-skills.dev

This skill should be used when the user asks to 'check my wallet balance', 'show my token holdings', 'how much OKB do I have', 'what tokens do I have', 'check my portfolio value', 'view my assets', 'how much is my portfolio worth', 'what\\'s in my wallet', or mentions checking wallet balance, total assets, token holdings, portfolio value, remaining funds, DeFi positions, or multi-chain balance lookup. Supports XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and 20+ other chains. Do NOT use for general programming questions about balance variables or API documentation. Do NOT use when the user is asking how to build or integrate a balance feature into code.

learn-skills.dev 是什麼?

learn-skills.dev is a Claude Code agent skill that this skill should be used when the user asks to 'check my wallet balance', 'show my token holdings', 'how much OKB do I have', 'what tokens do I have', 'check my portfolio value', 'view my assets', 'how much is my portfolio worth', 'what\\'s in my wallet', or mentions checking wallet balance, total assets, token holdings, portfolio value, remaining funds, DeFi positions, or multi-chain balance lookup. Supports XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and 20+ other chains. Do NOT use for general programming questions about balance variables or API documentation. Do NOT use when the user is asking how to build or integrate a balance feature into code.

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NeverSight/learn-skills.dev/tree/HEAD/data/skills-md/6551team/opentrade/opentrade-portfolio

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

OpenTrade Wallet Portfolio CLI

4 commands for supported chains, wallet total value, all token balances, and specific token balances.

Pre-flight Checks

Every time before running any opentrade command, always follow these steps in order. Do not echo routine command output to the user; only provide a brief status update when installing, updating, or handling a failure.

  1. Confirm installed: Run which opentrade. If not found, install it:

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh
    

    If the install script fails, ask the user to install manually following the instructions at: https://github.com/6551Team/openskills

  2. Check for updates: Read ~/.opentrade/last_check and compare it with the current timestamp:

    cached_ts=$(cat ~/.opentrade/last_check 2>/dev/null || true)
    now=$(date +%s)
    
    • If cached_ts is non-empty and (now - cached_ts) < 43200 (12 hours), skip the update and proceed.
    • Otherwise (file missing or older than 12 hours), run the installer to check for updates:
      curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh
      
      If a newer version is installed, tell the user and suggest updating their opentrade skills from https://github.com/6551Team/openskills to get the latest features.
  3. If any opentrade command fails with an unexpected error during this session, try reinstalling before giving up:

    curl -sSL https://raw.githubusercontent.com/6551Team/openskills/main/skills/opentrade/install.sh | sh
    
  4. Find or create a .env file in the project root to override the default API credentials, Load it before performing opentrade operations.

OPEN_TOKEN=your_token_here

Get your API token at: https://6551.io/mcp

Security warning: Never commit .env to git (add it to .gitignore) and never expose credentials in logs, screenshots, or chat messages.

Router Discovery

IMPORTANT: If the user has not specified a trading router, you MUST first discover available routers:

opentrade trade routers

Response format:

{
  "ok": true,
  "data": [
    {
      "api": "v2",
      "created_at": "2026-03-10 01:15:42",
      "is_active": true,
      "name": "6551dex test",
      "quota_reward": 0,
      "trader": "6551dex",
      "updated_at": "2026-03-10 01:15:42"
    },
    {
      "api": "v1",
      "created_at": "2026-03-03 21:24:34",
      "is_active": true,
      "name": "okx test",
      "quota_reward": 0,
      "trader": "okx",
      "updated_at": "2026-03-03 21:24:34"
    }
  ]
}

Usage:

  • Extract trader and api from the response
  • MANDATORY: ALL subsequent opentrade commands in this session MUST include --trader <trader> and --api <api> flags
  • Example: opentrade portfolio balance 0x... --chain ethereum --trader okx --api v1
  • Default fallback: If the API returns no data or is empty, use --trader okx --api v1

Skill Routing

  • For token prices / K-lines → use opentrade-market
  • For token search / metadata → use opentrade-token
  • For swap execution → use opentrade-dex-swap
  • For transaction broadcasting → use opentrade-gateway

Quickstart

# Get supported chains for balance queries
opentrade portfolio chains

# Get total asset value on XLayer and Solana
opentrade portfolio total-value --address 0xYourWallet --chains "xlayer,solana"

# Get all token balances
opentrade portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"

# Check specific tokens (native OKB + USDC on XLayer)
opentrade portfolio token-balances --address 0xYourWallet --tokens "196:,196:0x74b7f16337b8972027f6196a17a631ac6de26d22"

Chain Name Support

The CLI accepts human-readable chain names and resolves them automatically.

ChainNamechainIndex
XLayerxlayer196
Solanasolana501
Ethereumethereum1
Basebase8453
BSCbsc56
Arbitrumarbitrum42161

Address format note: EVM addresses (0x...) work across Ethereum/BSC/Polygon/Arbitrum/Base etc. Solana addresses (Base58) and Bitcoin addresses (UTXO) have different formats. Do NOT mix formats across chain types.

Command Index

#CommandDescription
1opentrade portfolio chainsGet supported chains for balance queries
2opentrade portfolio total-value --address ... --chains ...Get total asset value for a wallet
3opentrade portfolio all-balances --address ... --chains ...Get all token balances for a wallet
4opentrade portfolio token-balances --address ... --tokens ...Get specific token balances

Cross-Skill Workflows

This skill is often used before swap (to verify sufficient balance) or as portfolio entry point.

Workflow A: Pre-Swap Balance Check

User: "Swap 1 SOL for BONK"

1. opentrade-token    opentrade token search BONK --chains solana               → get tokenContractAddress
       ↓ tokenContractAddress
2. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains solana
       → verify SOL balance >= 1
       ↓ balance field (UI units) → convert to minimal units for swap
3. opentrade-dex-swap     opentrade swap quote --from 11111111111111111111111111111111 --to <BONK_address> --amount 1000000000 --chain solana
4. opentrade-dex-swap     opentrade swap swap --from ... --to <BONK_address> --amount 1000000000 --chain solana --wallet <addr>

Data handoff:

  • tokenContractAddress from token search → feeds into swap --from / --to
  • balance from portfolio is UI units; swap needs minimal units → multiply by 10^decimal
  • If balance < required amount → inform user, do NOT proceed to swap

Workflow B: Portfolio Overview + Analysis

User: "Show my portfolio"

1. opentrade-portfolio  opentrade portfolio total-value --address <addr> --chains "xlayer,solana,ethereum"
       → total USD value
2. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains "xlayer,solana,ethereum"
       → per-token breakdown
       ↓ top holdings by USD value
3. opentrade-token    opentrade token price-info <address> --chain <chain>  → enrich with 24h change, market cap
4. opentrade-market   opentrade market kline <address> --chain <chain>      → price charts for tokens of interest

Workflow C: Sell Underperforming Tokens

1. opentrade-portfolio  opentrade portfolio all-balances --address <addr> --chains "xlayer,solana,ethereum"
       → list all holdings
       ↓ tokenContractAddress + chainIndex for each
2. opentrade-token    opentrade token price-info <address> --chain <chain>  → get priceChange24H per token
3. Filter by negative change → user confirms which to sell
4. opentrade-dex-swap     opentrade swap quote → opentrade swap swap → execute sell

Key conversion: balance (UI units) × 10^decimal = amount (minimal units) for swap.

Operation Flow

Step 1: Identify Intent

  • Check total assets → opentrade portfolio total-value
  • View all token holdings → opentrade portfolio all-balances
  • Check specific token balance → opentrade portfolio token-balances
  • Unsure which chains are supported → opentrade portfolio chains first

Step 2: Collect Parameters

  • Missing wallet address → ask user
  • Missing target chains → recommend XLayer (--chains xlayer, low gas, fast confirmation) as the default, then ask which chain the user prefers. Common set: "xlayer,solana,ethereum,base,bsc"
  • Need to filter risky tokens → set --exclude-risk 0 (only works on ETH/BSC/SOL/BASE)

Step 3: Call and Display

  • Total value: display USD amount
  • Token balances: show token name, amount (UI units), USD value
  • Sort by USD value descending

Step 4: Suggest Next Steps

After displaying results, suggest 2-3 relevant follow-up actions:

Just completedSuggest
portfolio total-value1. View token-level breakdown → opentrade portfolio all-balances (this skill) 2. Check price trend for top holdings → opentrade-market
portfolio all-balances1. View detailed analytics (market cap, 24h change) for a token → opentrade-token 2. Swap a token → opentrade-dex-swap 3. View price chart for a token → opentrade-market
portfolio token-balances1. View full portfolio across all tokens → opentrade portfolio all-balances (this skill) 2. Swap this token → opentrade-dex-swap

Present conversationally, e.g.: "Would you like to see the price chart for your top holding, or swap any of these tokens?" — never expose skill names or endpoint paths to the user.

CLI Command Reference

1. opentrade portfolio chains

Get supported chains for balance queries. No parameters required.

opentrade portfolio chains

Return fields:

FieldTypeDescription
nameStringChain name (e.g., "XLayer")
logoUrlStringChain logo URL
shortNameStringChain short name (e.g., "OKB")
chainIndexStringChain unique identifier (e.g., "196")

2. opentrade portfolio total-value

Get total asset value for a wallet address.

opentrade portfolio total-value --address <address> --chains <chains> [--asset-type <type>] [--exclude-risk <bool>]
ParamRequiredDefaultDescription
--addressYes-Wallet address
--chainsYes-Chain names or IDs, comma-separated (e.g., "xlayer,solana" or "196,501")
--asset-typeNo"0"0=all, 1=tokens only, 2=DeFi only
--exclude-riskNotruetrue=filter risky tokens, false=include. Only ETH/BSC/SOL/BASE

Return fields:

FieldTypeDescription
totalValueStringTotal asset value in USD

3. opentrade portfolio all-balances

Get all token balances for a wallet address.

opentrade portfolio all-balances --address <address> --chains <chains> [--exclude-risk <value>]
ParamRequiredDefaultDescription
--addressYes-Wallet address
--chainsYes-Chain names or IDs, comma-separated, max 50
--exclude-riskNo"0"0=filter out risky tokens (default), 1=include. Only ETH/BSC/SOL/BASE

Return fields (per token in tokenAssets[]):

FieldTypeDescription
chainIndexStringChain identifier
tokenContractAddressStringToken contract address
symbolStringToken symbol (e.g., "OKB")
balanceStringToken balance in UI units (e.g., "10.5")
rawBalanceStringToken balance in base units (e.g., "10500000000000000000")
tokenPriceStringToken price in USD
isRiskTokenBooleantrue if flagged as risky

4. opentrade portfolio token-balances

Get specific token balances for a wallet address.

opentrade portfolio token-balances --address <address> --tokens <tokens> [--exclude-risk <value>]
ParamRequiredDefaultDescription
--addressYes-Wallet address
--tokensYes-Token list: "chainIndex:tokenAddress" pairs, comma-separated. Use empty address for native token (e.g., "196:" for native OKB). Max 20 items.
--exclude-riskNo"0"0=filter out (default), 1=include

Return fields: Same schema as all-balances (tokenAssets[]).

Input / Output Examples

User says: "Check my wallet total assets on XLayer and Solana"

opentrade portfolio total-value --address 0xYourWallet --chains "xlayer,solana"
# → Display: Total assets $12,345.67

User says: "Show all tokens in my wallet"

opentrade portfolio all-balances --address 0xYourWallet --chains "xlayer,solana,ethereum"
# → Display:
#   OKB:  10.5 ($509.25)
#   USDC: 2,000 ($2,000.00)
#   USDT: 1,500 ($1,500.00)
#   ...

User says: "Only check USDC and native OKB balances on XLayer"

opentrade portfolio token-balances --address 0xYourWallet --tokens "196:,196:0x74b7f16337b8972027f6196a17a631ac6de26d22"
# → Display: OKB: 10.5 ($509.25), USDC: 2,000 ($2,000.00)

Edge Cases

  • Zero balance: valid state — display $0.00, not an error
  • Unsupported chain: call opentrade portfolio chains first to confirm
  • chains exceeds 50: split into batches, max 50 per request
  • --exclude-risk not working: only supported on ETH/BSC/SOL/BASE
  • DeFi positions: use --asset-type 2 to query DeFi holdings separately
  • Address format mismatch: EVM address on Solana chain will return empty data — do NOT mix
  • Network error: retry once, then prompt user to try again later
  • Region restriction (error code 50125 or 80001): do NOT show the raw error code to the user. Instead, display a friendly message: ⚠️ Service is not available in your region. Please switch to a supported region and try again.

Amount Display Rules

  • Token amounts in UI units (1.5 ETH), never base units (1500000000000000000)
  • USD values with 2 decimal places
  • Large amounts in shorthand ($1.2M)
  • Sort by USD value descending

Global Notes

  • --chains supports up to 50 chain IDs (comma-separated, names or numeric)
  • --asset-type: 0=all 1=tokens only 2=DeFi only (only for total-value)
  • --exclude-risk only works on ETH(1)/BSC(56)/SOL(501)/BASE(8453)
  • token-balances supports max 20 token entries
  • The CLI resolves chain names automatically (e.g., ethereum → 1, solana → 501)
  • The CLI handles authentication internally via environment variables — see Prerequisites step 4 for default values

Individual skills in this repo

This repo contains 17 individual skills — each has its own dedicated page.

NeverSight/learn-skills.dev

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

NeverSight/learn-skills.dev

Static artifact craft skill for self-contained HTML/CSS/JS documents: docs, sheets, dashboards, explainers, slides, tools, and landing pages. Use when the user asks for a durable, openable, shareable web deliverable they'll keep or hand off — a report, a dashboard, a slide deck, a data table, a page. Local folder first, temporary public link via tunnel (localhost.run), optional durable publish to Surge, GitHub Pages, or Cloudflare. Not for quick look renders, inline snippets, or throwaway scratch. Not for SPA frameworks, backend APIs, database apps, or production product UI.

NeverSight/learn-skills.dev

This skill should be used when building a personal productivity or operating system for a CEO, founder, or executive. Triggers on "personal OS", "annual review", "life planning", "goal setting system", "Bill Campbell", "Trillion Dollar Coach", "startup failure patterns", "Good to Great", "Level 5 Leadership", "Buy Back Your Time", "E-Myth", "Customer Development", "Steve Blank", "Small Is Beautiful", "Schumacher", "human-scale", "subsidiarity", "Buddhist economics", "permanence".

NeverSight/learn-skills.dev

Guide to cryptocurrency portfolio management — asset allocation, rebalancing strategies, risk-adjusted returns, benchmarking, and tax-loss harvesting. Use when helping users build portfolios, rebalance holdings, or evaluate portfolio performance.

NeverSight/learn-skills.dev

Complete personal finance system — budgeting, debt payoff, investing, tax optimization, net worth tracking, and financial independence planning. Use when managing money, building wealth, paying off debt, planning retirement, or optimizing taxes. Zero dependencies.

NeverSight/learn-skills.dev

Comprehensive portfolio analysis using Alpaca MCP Server integration to fetch holdings and positions, then analyze asset allocation, risk metrics, individual stock positions, diversification, and generate rebalancing recommendations. Use when user requests portfolio review, position analysis, risk assessment, performance evaluation, or rebalancing suggestions for their brokerage account.

NeverSight/learn-skills.dev

Research-driven landing page generator. Pulls data from social media, websites, Google Maps, YouTube, forums, and optionally a CV to build a complete profile of a company or person. Analyzes the data as a marketer to extract competitive advantages, value props, audience insights, and brand voice. Then generates a compelling landing page with AI-generated images tailored to the audience. Use this skill when the user says things like: 'create a landing page for...', 'build a website for this business', 'make a landing page from their social media', 'generate a page for this company', 'research and build a site for...', 'landing page for my client', 'portfolio page for...', 'personal brand page', or provides social media handles, a website URL, or a CV and wants a page built from it.

NeverSight/learn-skills.dev

Use when the user asks to "personalize the email", "add merge tags / dynamic content", "set up conditional blocks per segment", or "make first-name and product-recommendation fields fall back safely"; produces a merge-tag map with per-tag fallbacks, conditional-block rules with per-segment variations, a fallback-safety audit, and a PII guard on what may render, informing the SEND E (Engagement/personalization) dimension. Not for building the segments — use list-segment-builder; not for writing the base copy — use email-creative-builder; not for scoring EQS or running vetoes — use email-quality-auditor. 邮件个性化/合并标签/条件内容块/兜底默认值

NeverSight/learn-skills.dev

Use when the user asks to "pre-launch check the landing page", "run a Quality-Score preflight", or "verify ad-to-page message match before launch"; produces an ad↔page continuity report — message-match gaps, above-the-fold check, page-speed read, form-friction count, mobile-render flags — as a pass/fix punch list. Not for redesigning or rewriting the page — use landing-optimizer; not for scoring the account or the RQS — use ad-account-auditor. 落地页体验预检/广告落地页一致性检查

NeverSight/learn-skills.dev

Operate the user's personal WeChat account through their self-hosted Wisdom service (BYOC) — check login status, list contacts/conversations, read and summarize history, search contacts, refresh the local history DB, and send messages only after explicit confirmation. Use when the user mentions 个人微信, 我的微信, WeChat personal chat, 微信聊天记录, 微信联系人, reading/summarizing WeChat messages, or sending a WeChat message.

NeverSight/learn-skills.dev

Use when designing multi-tenant OCI environments, standing up landing zone Terraform stacks, enforcing Security Zones, or planning hub-spoke network topology. Covers OCI-specific compartment hierarchies, multi-tenant IAM decision trees, Security Zone automation, CIS Foundations compliance, and DRG routing. Keywords: landing zone, compartments, Security Zone, hub-spoke, DRG, CIS, multi-tenant, tenancy, IAM policy.

NeverSight/learn-skills.dev

Use for frontend/UI builds, redesigns, polish, or extensions. Before coding, generate a UI reference image, then closely match it instead of inventing a new direction.

NeverSight/learn-skills.dev

Avoid stereotypical AI-generated UI and produce cleaner, grounded frontend design. Use for frontend generation, redesign, and polish.

NeverSight/learn-skills.dev

Brand-first landing page designer — interviews the user to discover brand identity (adjectives, colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML output. Preferred over frontend-design for standalone landing/marketing pages where the user hasn't established visual direction yet. TRIGGER when: user asks to "create/design/build a landing page", "make a homepage for my project/product/service", "build a marketing page", or wants to promote an app/side project. Especially when they haven't defined brand colors, fonts, or visual style — the guided brand interview is the core value. DO NOT TRIGGER when: user has a specific design mockup to implement, wants a dashboard or app UI, needs component-level frontend work (buttons, forms, navbars), is building a multi-page application, or is restyling an existing page with known design tokens. Use frontend-design for those cases.

NeverSight/learn-skills.dev

Use when planning or restructuring homepage, service page, about page, campaign page, or section order for this marketing website. Trigger for narrative flow changes, section sequencing, proof placement, CTA pacing, and page-level composition decisions.

NeverSight/learn-skills.dev

Analyze innovation project workbooks and cost tracking data to surface portfolio-level insights, trends, and recommendations for where to focus innovation efforts.

NeverSight/learn-skills.dev

Maintain automatic personalization writeback from agent trajectories, logs, sidecar artifacts, and repeated user preferences. Use when a task produces reusable preferences, lessons, private user memory, project contracts, or candidate public skill rules without interrupting the user.

相關技能