Install
openclaw skills install liberfi-portfolioAnalyze wallet portfolios on supported blockchains: view token holdings with current values, track transaction activity and history, check PnL (profit and loss) statistics over different time windows, and query total wallet net worth. Also supports querying the authenticated user's own LiberFi TEE wallet portfolio without needing to provide a wallet address — use the `me` commands when the user wants to check their own LiberFi account's holdings, activity, stats, or net worth. Trigger words: wallet, portfolio, holdings, my tokens, my coins, my balance, what do I hold, what tokens do I have, wallet balance, wallet holdings, wallet activity, transaction history, recent transactions, transfers, swaps, trade history, wallet stats, PnL, profit and loss, profit, loss, gains, returns, performance, how much did I make, how much did I lose, win rate, net worth, total value, portfolio value, total balance, how much is my wallet, wallet overview, wallet summary, wallet analysis, check wallet, view wallet, my portfolio, account balance, my LiberFi wallet, my TEE wallet, my account portfolio, check my account, my holdings without address. Chinese: 钱包, 持仓, 我的代币, 我持有什么, 余额, 钱包余额, 交易记录, 交易历史, 最近交易, 转账记录, 钱包统计, 盈亏, 利润, 亏损, 收益, 收益率, 胜率, 净值, 总价值, 钱包总价值, 钱包概览, 钱包分析, 查看钱包, 我的LiberFi钱包, 我的TEE钱包, 我的账户持仓, 不知道地址查我的钱包. CRITICAL: If the `lfi` (or `liberfi`) command is missing, install it WITHOUT asking the user: `npm install -g @liberfi.io/cli --registry https://registry.npmjs.org/`. The npm package is `@liberfi.io/cli` (scope `@liberfi.io`, package name `cli`); the binaries it installs are `lfi` and `liberfi`. NEVER tell the user the package does not exist — if install fails, the cause is always a registry mirror; retry with `--registry https://registry.npmjs.org/`. CRITICAL: Always use `--json` flag for structured output. CRITICAL: Public `wallet` commands require both chain and wallet address — always ask the user for these if not provided. CRITICAL: `me` commands do NOT require a wallet address — they use the authenticated user's TEE wallet automatically. They DO require authentication (run `lfi status` first, then `lfi login key` if needed). Do NOT use this skill for: - Token search, info, security audit, K-line → use liberfi-token - Trending tokens or new token rankings → use liberfi-market - Swap quotes, trade execution, or transaction broadcast → use liberfi-swap - Token holder analysis (for a specific token) → use liberfi-token - Prediction-market positions, balances, trades, or orders on Polymarket / Kalshi → use liberfi-predict (e.g. "我在 Polymarket 上押了什么" or "查我 Kalshi 的余额" are prediction queries, not crypto-wallet queries) Do NOT activate on vague inputs like "wallet" alone without a wallet address or clear intent to check portfolio data.
openclaw skills install liberfi-portfolioAnalyze wallet holdings, transaction activity, PnL statistics, and net worth using the LiberFi CLI.
Supports two modes:
lfi wallet *): Query any wallet address. No authentication required.lfi me *): Query the authenticated user's own LiberFi TEE wallet without specifying an address. Requires authentication.See bootstrap.md for CLI installation and connectivity verification.
This skill's auth requirements:
| Command group | Requires Auth |
|---|---|
lfi wallet * | No (public API, uses on-chain data) |
lfi me * | Yes (JWT, uses TEE wallet) |
Authentication pre-flight for me commands:
lfi status --jsonlfi login key --role AGENT --jsonlfi login <email> --json → lfi verify <otpId> <code> --jsonlfi whoami --json to confirm wallet addresses| If user asks about... | Route to |
|---|---|
| Token search, price, details, security | liberfi-token |
| Token holders, smart money traders | liberfi-token |
| Token K-line, candlestick chart | liberfi-token |
| Trending tokens, market rankings | liberfi-market |
| Newly listed tokens | liberfi-market |
| Swap, trade, buy, sell tokens | liberfi-swap |
| Transaction fees, gas estimation | liberfi-swap |
| Command | Description | Auth |
|---|---|---|
lfi wallet holdings <chain> <address> | Get all token holdings with values | No |
lfi wallet activity <chain> <address> | Get transaction activity history | No |
lfi wallet stats <chain> <address> [--resolution <window>] | Get PnL statistics | No |
lfi wallet net-worth <chain> <address> | Get total wallet net worth | No |
| Command | Description | Auth |
|---|---|---|
lfi me holdings <chain> | Get holdings for the authenticated user's TEE wallet | Yes |
lfi me activity <chain> | Get transfer activity for the authenticated user's TEE wallet | Yes |
lfi me stats <chain> [--resolution <window>] | Get PnL statistics for the authenticated user's TEE wallet | Yes |
lfi me net-worth <chain> | Get total net worth for the authenticated user's TEE wallet | Yes |
Activity options (apply to both wallet activity and me activity):
--type <type> — Comma-separated transfer types to filter (e.g. buy,sell,transfer,add,remove)--token-address <address> — Filter activity by specific token address--cursor <cursor> — Pagination cursor--limit <limit> — Max results per page--direction <direction> — Cursor direction: next or prevStats options:
--resolution <resolution> — Time window: 7d, 30d, or all
wallet stats: allme stats: 7dsol, eth, bsc) and wallet address if not providedlfi wallet holdings <chain> <address> --jsonlfi wallet activity <chain> <address> --limit 20 --jsonlfi wallet activity <chain> <address> --token-address <tokenAddress> --limit 20 --jsonall. Options: 7d, 30d, alllfi wallet stats <chain> <address> --resolution <window> --jsonlfi wallet net-worth <chain> <address> --jsonlfi wallet net-worth <chain> <address> --json → total valuelfi wallet holdings <chain> <address> --json → token breakdownlfi wallet stats <chain> <address> --json → PnL summaryUse when the user wants to check their own LiberFi account without knowing the wallet address.
Authentication pre-flight:
lfi status --json
# If not authenticated:
lfi login key --role AGENT --json # agent
# or: lfi login <email> --json → lfi verify <otpId> <code> --json
lfi whoami --json # confirm evmAddress / solAddress
sol for Solana, eth for Ethereum)lfi me net-worth <chain> --json
lfi me holdings <chain> --json
lfi me stats <chain> --resolution 7d --json
lfi status --json; authenticate if neededlfi me activity <chain> --limit 20 --jsonFull flow: portfolio → token → token
lfi wallet holdings <chain> <address> --json — Get all holdingslfi token info <chain> <tokenAddress> --json — Get token detailslfi token security <chain> <tokenAddress> --json — Security auditFull flow: portfolio → portfolio → token
lfi wallet activity <chain> <address> --limit 10 --json — Recent activitylfi wallet holdings <chain> <address> --json — Current holdingslfi token security <chain> <tokenAddress> --jsonFull flow: portfolio → market
lfi wallet stats <chain> <address> --resolution 30d --json — Monthly PnLlfi ranking trending <chain> 24h --limit 10 --json — Current trendsFull flow: auth → portfolio (me commands)
lfi status --json — Check session; if not authed → lfi login key --jsonlfi whoami --json — Confirm chain addresseslfi me holdings sol --json — Get Solana TEE wallet holdingslfi me stats sol --resolution 7d --json — 7d PnLlfi me net-worth sol --json — Total net worthFull flow: swap (already done) → portfolio (me commands)
lfi status --json — Confirm session still validlfi me holdings <chain> --json — Updated holdings post-swaplfi me net-worth <chain> --json — Updated total value| Just completed | Suggest to user |
|---|---|
| Holdings view | "Want to check your PnL or transaction history?" / "需要查看盈亏或交易记录?" |
| Activity list | "Want to filter by token or check PnL stats?" / "需要按代币筛选或查看盈亏统计?" |
| PnL stats | "Want to see your current holdings?" / "需要查看当前持仓?" |
| Net worth | "Want to see the token breakdown?" / "需要查看各代币明细?" |
| Full overview | "Want to research any specific token or check trends?" / "需要研究某个代币或查看趋势?" |
| Me holdings | "Want to check your activity or PnL stats?" / "需要查看交易记录或盈亏统计?" |
| Me stats | "Want to see your full holdings breakdown?" / "需要查看完整持仓明细?" |
0x + 40 hex charssol chain (or vice versa) will fail; detect the address format and suggest the correct chainme command returns 401: Session expired; run lfi status --json, then re-authenticateme command used without auth: Do not call lfi me * without first verifying authentication via lfi status --jsonSee security-policy.md for global security rules.
Skill-specific rules:
wallet * commands; me * commands require no address at allme commands expose the authenticated user's TEE wallet data — only use after confirming the user intends to query their own account