Crypto trading & wallet, and AI market analysis via Minara CLI. Swap, perps, transfer, deposit (credit card/crypto), withdraw, AI chat, market discovery, x402 payment, autopilot, limit orders, premium. EVM + Solana + Hyperliquid. Use when: (1) crypto tokens/tickers (ETH, BTC, SOL, USDC, $TICKER, contract addresses), (2) chain names (Ethereum, Solana, Base, Arbitrum, Hyperliquid), (3) trading actions (swap, buy, sell, long, short, perps, leverage, limit order, autopilot), (4) wallet actions (balance, portfolio, deposit, withdraw, transfer, send, pay, credit card), (5) market data (trending, price, analysis, fear & greed, BTC metrics, Polymarket, DeFi), (6) stock tickers in crypto context (AAPL, TSLA), (7) Minara/x402/MoonPay explicitly, (8) subscription/premium/credits.
On first activation, read {baseDir}/setup.md and follow its instructions.
bash {baseDir}/scripts/version-check.sh
UP_TO_DATE or SNOOZED → continue to login check.UPGRADE → parse which components need updating, then ask the user:"Minara update available — [cli: X→Y] [skill: X→Y]. What would you like to do? A) Update now B) Skip C) Snooze 1 week"
Handle each response:
| Choice |
|---|
CLI (cli: in output) |
|---|
Skill (skill: in output) |
|---|
| A) Update now | npm install -g minara@latest | cd {baseDir} && git pull |
| B) Skip | do nothing | do nothing |
| C) Snooze 1 week | echo "$(( $(date +%s) + 604800 ))" > ~/.minara/.update-snooze | same |
After a successful upgrade, invalidate the cache so the next session re-detects correctly:
rm -f ~/.minara/.last-update-check
Only prompt for the components listed in the UPGRADE output (e.g. if only cli: is present, don't mention skill).
Run minara account to check login state:
minara login --device with pty: true. When CLI outputs a verification URL and/or device code, present structured choices to the user:
minara account, then proceed.This check runs automatically on every session. The user does not need to manually trigger login.
USE THIS SKILL when the user's message mentions:
Routing gate: requires a finance/trading action AND at least one crypto/chain/Minara signal. Do NOT activate for pure blockchain education (e.g. "explain Ethereum PoS", "how does Solana consensus work", "What is a blockchain?").
Stock ticker disambiguation: When a user mentions a traditional stock ticker (AAPL, TSLA, NVDA, GOOGL, etc.) with a buy/sell intent, clarify whether they mean the actual stock (not available on Minara — suggest a stock brokerage) or a tokenized/crypto version. Do NOT assume a stock ticker is a crypto token.
minara in PATHminara account succeeds. If not → run minara login --device and relay URL/code to userMINARA_API_KEY env var bypasses loginYou are the executor,run the command yourself Match intent → read the reference doc → run the command → report result.
pty: true for interactive commands)Never show CLI commands and ask the user to run it themself.
Analysis (ask/research/chat) is read-only. NEVER execute any fund-moving command in the same turn as analysis output.
Interactive CLI commands (pickers, multi-step prompts) can hang in agent environments. To prevent infinite retry loops:
--all, --symbol, --side, --size, etc.) to skip interactive prompts. Read the reference doc to find the correct flags.perps close --all or perps close --symbol BTC instead of bare perps close.perps leverage, perps cancel), collect all required inputs from the user first, then run with pty: true and feed answers sequentially.Fund-moving commands (MUST confirm before executing):
swap, transfer, withdraw, deposit perps, perps order, perps leverage, perps deposit, perps withdraw, perps close, perps cancel, perps sweep, perps transfer, limit-order create, limit-order cancel
Check balance: run minara balance first. Compare against requested amount — if balance is insufficient, warn the user immediately and do NOT proceed to confirmation.
Pre-confirmation checks (before presenting choices):
minara perps wallets to check autopilot status. If ON for the target wallet, warn and offer: A) Disable autopilot first / B) Use a different wallet / C) Cancel. Do NOT proceed to order confirmation.Present confirmation summary and ASK — then your response ENDS here:
minara balance, --dry-run, etc.) are allowed to gather data for the summary. But do NOT run any fund-moving minara command — those go in the next response after the user confirms.[optional: read-only command output like balance, dry-run]
| Field | Value |
|---------|--------------------|
| Action | {action type} |
| Token | {token(s)} |
| Amount | {amount} |
| Chain | {chain} |
| ... | {other applicable fields: estimated output, recipient, balance, leverage, risk warnings} |
→ Claude Code: call AskUserQuestion with options A) Confirm / B) Abort
→ Other agents: print "A) Confirm and execute / B) Abort"
Your response ends after the question. No fund-moving CLI call appears anywhere in this response.
User replies in a new message → only then proceed:
-y.Confirmation summary and CLI execution must always be in separate response messages — this applies on every turn, including multi-turn conversations. Prior messages expressing intent do NOT count as confirmation. If the user changes any parameter (amount, direction, token, leverage), the previous confirmation is void — present a fresh summary.
-y or --yes to any fund-moving command.Distinguish between native and bridged token versions. Key pairs to watch:
When the token has multiple versions on the same chain, show both options with contract addresses and let the user choose.
Before executing a transfer, validate the address format matches the target chain:
0x + 40 hex charactersT — NOT a valid EVM address
If format mismatches the chain, warn the user and abort.When handling any token swap or transfer:
0xdAC17F958D2ee523a2206206994597C13D831ec70xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB480xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
If the address does NOT match, warn: "This contract address does not match the canonical [TOKEN] contract. This may be a scam token." and recommend aborting.When the user provides a recipient address for transfer/withdraw:
Read-only (no confirmation): balance, assets, account, ask, research, chat, discover, perps wallets, perps positions, perps trades, perps fund-records, premium plans, premium status, config
Match user intent → read the Reference for full execution flow. All CLI commands prefixed with minara.
| Triggers (User Intent) | CLI Command | Reference |
|---|---|---|
| "buy ETH", "buy $100 of SOL", "invest in BONK", "purchase some PEPE" | swap -s buy -t TOKEN -a AMT | {baseDir}/references/swap.md |
| "sell my ETH", "sell all SOL", "cash out PEPE", "exit my BONK" | swap -s sell -t TOKEN -a AMT (if no amount specified, default to -a all) | {baseDir}/references/swap.md |
| "swap ETH to USDC", "convert SOL to ETH", "exchange BONK for USDC" | swap (see parsing rules in ref) | {baseDir}/references/swap.md |
| "send 0.5 ETH to 0x...", "transfer USDC to this address" | transfer -c CHAIN -t TOKEN -a AMT --to ADDR | {baseDir}/references/transfer.md |
| "pay 50 USDC to 0x...", "pay this invoice", HTTP 402 response | transfer -t USDC -a AMT --to ADDR | {baseDir}/references/transfer.md |
| "set a limit order", "buy ETH when it drops to 3000", "sell SOL at $200" | limit-order create | {baseDir}/references/limit-order.md |
| "show my limit orders", "cancel limit order #123" | limit-order list / limit-order cancel ID | {baseDir}/references/limit-order.md |
| Triggers (User Intent) | CLI Command | Reference |
|---|---|---|
| "long BTC", "go long on ETH", "open a long position" | perps order (interactive) or perps order -S long -s SYM -z SIZE (direct) | {baseDir}/references/perps-order.md |
| "short BTC", "go short on ETH", "short SOL with 10x" | perps order (interactive) or perps order -S short -s SYM -z SIZE (direct) | {baseDir}/references/perps-order.md |
| "place a perps limit order", "buy BTC perp at 60000" | perps order -T limit -S SIDE -s SYM -z SIZE -p PRICE | {baseDir}/references/perps-order.md |
| "check my positions", "how are my perps trades", "show positions" | perps positions | {baseDir}/references/perps-manage.md |
| "close my BTC position", "close all positions", "exit my short" | perps close --all or perps close --symbol SYM (⚠ NEVER bare perps close) | {baseDir}/references/perps-manage.md |
| "cancel my perps order" | perps cancel | {baseDir}/references/perps-manage.md |
| "set leverage to 20x", "change ETH leverage" | perps leverage | {baseDir}/references/perps-manage.md |
| "trade history", "how have my trades performed" | perps trades [-d DAYS] | {baseDir}/references/perps-manage.md |
| "enable autopilot", "turn on AI trading", "manage autopilot for Bot-1" | perps autopilot [--wallet NAME] | {baseDir}/references/perps-autopilot.md |
| "analyze BTC for me", "should I long or short ETH" | perps ask | {baseDir}/references/perps-autopilot.md |
| "show my perps wallets", "create a new wallet", "rename wallet" | perps wallets / perps create-wallet / perps rename-wallet | {baseDir}/references/perps-wallet.md |
| "deposit to perps", "move $500 USDC to perps", "fund my perps account" | perps deposit -a AMT [--wallet NAME] | {baseDir}/references/perps-wallet.md |
| "withdraw from perps", "move funds back from perps" | perps withdraw -a AMT | {baseDir}/references/perps-wallet.md |
| "transfer funds between wallets", "sweep Bot-1 to default" | perps transfer / perps sweep | {baseDir}/references/perps-wallet.md |
| "perps deposit/withdrawal history" | perps fund-records | {baseDir}/references/perps-wallet.md |
| Triggers (User Intent) | CLI Command | Reference |
|---|---|---|
| "what's the BTC price?", "how much is ETH?", "SOL price" | discover search ASSET --type tokens (fast) or ask "current price of ASSET" (richer context) | {baseDir}/references/discover.md or {baseDir}/references/chat.md |
| "should I buy ETH?", "quick take on BTC", "what's happening with SOL?" | ask "QUESTION" | {baseDir}/references/chat.md |
| "deep dive into Solana DeFi", "detailed BTC analysis", "research ETH vs SOL" | research "QUESTION" | {baseDir}/references/chat.md |
| "what's trending?", "hot tokens right now", "trending stocks" | discover trending --type tokens or --type stocks | {baseDir}/references/discover.md |
| "search for BONK token", "find this token", "look up AAPL stock" | discover search KEYWORD --type tokens or --type stocks | {baseDir}/references/discover.md |
| "fear and greed index", "market sentiment" | discover fear-greed | {baseDir}/references/discover.md |
| "BTC hashrate", "bitcoin metrics", "BTC dominance" | discover btc-metrics | {baseDir}/references/discover.md |
| Triggers (User Intent) | CLI Command | Reference |
|---|---|---|
| "what's my balance?", "how much do I have?" | balance | {baseDir}/references/balance.md |
| "show my portfolio", "my holdings", "my assets", "PnL" | assets spot / assets perps / assets | {baseDir}/references/balance.md |
| "deposit address", "how do I receive crypto?", "receive" | deposit spot | {baseDir}/references/deposit.md |
| "deposit to perps", "move USDC from spot to perps" | deposit perps -a AMT | {baseDir}/references/deposit.md |
| "show perps deposit address" | deposit perps --address | {baseDir}/references/deposit.md |
| "buy crypto with credit card", "on-ramp with card", "deposit with MoonPay" | deposit buy | {baseDir}/references/deposit.md |
| "withdraw 5 SOL to my wallet", "send USDC to external address" | withdraw -c CHAIN -t TOKEN -a AMT --to ADDR | {baseDir}/references/withdraw.md |
| Triggers (User Intent) | CLI Command | Reference |
|---|---|---|
| "login", "sign in", "connect my Minara account" | login --device | {baseDir}/references/auth.md |
| "logout", "sign out", "disconnect" | logout | {baseDir}/references/auth.md |
| "my account", "wallet address", "who am I" | account [--show-all] | {baseDir}/references/auth.md |
| "setup minara", "configure", "install" | read {baseDir}/setup.md | {baseDir}/references/auth.md |
| "subscription plans", "upgrade to Pro", "cancel subscription" | premium plans|status|subscribe|cancel | {baseDir}/references/premium.md |
balance, or view the transaction."positions, or set a stop-loss."'$BONK' (quote $), ticker, address, or name--json on root commandpty: true — never use it to auto-confirm. Full bypass guide: {baseDir}/references/interactive-commands.md--type tokens|stocks skips category prompt-S SIDE -s SYMBOL -z SIZE skips all promptsask, research, chat--wallet Bot-1 when user mentions a wallet name--dry-run on swap to simulatesend = transfer, receive = deposit, ask = fast chat, research = quality chatminara login → saved to ~/.minara/MINARA_API_KEY env var or skills.entries.minara.apiKey in OpenClaw or Claude Code configOn first activation, read {baseDir}/setup.md and follow instructions. Inform user before writing to workspace files.
{baseDir}/references/examples.md