fibx CLI for use by AI agents. Each skill defines a specific capability — authentication, balances, portfolio inspection, transfers, swaps, DeFi management, and transaction verification — with structured rules, allowed tools, and error handling.
Skills follow the Agent Skills specification and can be imported into any compatible agent framework.
How Skills Work
Each skill is a structured YAML+Markdown file that defines:- Allowed tools — The CLI command patterns declared by the installed skill
- Rules — Constraints and safety checks the agent must follow
- Parameters — Inputs the agent extracts from the user’s natural language prompt
- Error handling — How the agent should respond to specific failures
Getting Started
Install the skills directly using the Vercel Skills CLI:./skills directory:
fibx is needed — all skills use npx fibx@latest.
Skills require Node.js 18+ and are compatible with fibx CLI v0.8.x.
The installed
SKILL.md files are the source of truth for allowed-tool
patterns and rules; the summaries below describe the current published
skills and may change independently of this page.Available Skills
quote
quote
Category: Read-OnlyFetches a swap price without a wallet or a session, so an agent can answer a pricing question for a user who has not logged in — and then offer
authenticate-wallet if they want to execute.Allowed Tools
Rules
- Never require or suggest authentication before quoting — this skill needs none.
- If the user specifies a chain, include
--chain <name>; otherwise default tobaseand say so. - Default slippage is 0.5%. Include
--slippageonly when the user explicitly requests another value. - Direct native/wrapped-native pairs return a 1:1 wrap or unwrap quote.
- After quoting, offer
tradeas the execution step, noting that it does require a session.
Trigger Examples
authenticate-wallet
authenticate-wallet
Category: AuthManages the wallet session. This skill must run before any other wallet operation. Two authentication paths are available:
- Private key import — Use an existing wallet directly. The key is encrypted and stored locally. This is the primary method for developers and agents that already manage their own keys.
- Email OTP — Alternative method that creates a server-managed wallet via Privy. Use this when no private key is available.
Allowed Tools
Rules
- If the user has a private key ready, prefer
auth import— it is the most direct path. - For private key import, always warn the user first: “Your private key will be stored locally in an encrypted session file. Shall I proceed?”
- For email login, never ask the user for a private key.
auth loginmust complete beforeauth verify— they are sequential steps. - After successful authentication (either method), always run
statusto confirm the session. - Never store or log private keys, OTP codes, or session tokens.
Trigger Examples
wallet-info
wallet-info
Category: WalletReports which wallet is active — address, wallet ID, session type, and when the session was created. Use it when the user asks for their receiving address or which account they are signed in as.Prerequisite: An active session is required. If no session is active,
run the
Allowed Tools
authenticate-wallet skill first.Rules
- Use
addresswhen only the receiving address is needed; usewalletsfor full session details. - Neither command takes
--chain— the same address is used on every supported chain. - Always show the full address. Never truncate an address the user may need to copy.
- Use
--jsonwhen another skill or automation will consume the output.
Trigger Examples
balance
balance
Category: WalletFetches native and ERC-20 token balances for the authenticated wallet on any supported chain.
Allowed Tools
Rules
- If the user specifies a chain, include
--chain <name>. - If no chain is specified, default to
baseand state it. - Use
--jsonwhen output is consumed by another skill.
Trigger Examples
portfolio
portfolio
Category: WalletFetches a consolidated cross-chain portfolio view with USD valuations for all token holdings and DeFi positions across Base, Citrea, HyperEVM, and Monad.
Allowed Tools
Rules
- This command fetches all supported chains in parallel, so no
--chainflag is needed. - Use
--jsonwhen the output will be consumed by another skill or automation pipeline. - Chains with zero holdings may be hidden in the output.
- DeFi positions on Aave V3 are included automatically when present.
Trigger Examples
send
send
Category: TransactionTransfers native tokens or ERC-20 tokens to a destination address. The CLI
performs a command-specific preflight and supports
--simulate for a
transfer preview.Allowed Tools
Rules
- Before any send, verify connectivity (
status) and funds (balance). - If the recipient address was not previously mentioned, ask for explicit confirmation.
- If the user specifies a chain, include
--chain <name>; otherwise default tobaseand say so. - Use the correct native token symbol for each chain — never use
ETHon non-Base chains. - After a successful send, verify the transaction with
tx-statuson the same chain.
Trigger Examples
trade
trade
Category: TransactionSwaps tokens via Fibrous aggregation. Finds a route, handles approvals,
estimates the main swap path, and executes.
Allowed Tools
Rules
- Before any trade, verify connectivity and source token balance.
- If the user specifies a chain, include
--chain <name>; otherwise default tobaseand say so. - Default slippage is 0.5%. To change it, ask the user for confirmation.
- Never use
--approve-maxunless the user explicitly requests it. - After a successful trade, verify the transaction with
tx-statuson the same chain.
trade --simulate does not broadcast an approval or swap. When an ERC-20
approval is required, it returns requiresApproval: true without a gas
estimate.Trigger Examples
aave
aave
Category: DeFiManages Aave V3 lending positions on Base only — status, markets, supply, borrow, repay, withdraw, and health factor monitoring. ETH supply and repay can auto-wrap to WETH, while ETH withdraw can auto-unwrap to ETH. Borrowing the ETH market returns WETH.
aave markets is a public query. aave status and all transactional actions
require an active session. An action with --simulate returns request
metadata without on-chain validation or a gas estimate.Allowed Tools
Rules
- This skill only works on Base. Refuse Aave operations on other chains.
- Before any action, check balance for sufficient ETH for gas.
- Before borrowing, check
aave statusfor the Health Factor:- Health Factor < 1.5 → Warn the user about liquidation risk
- Health Factor < 1.1 → Do not proceed without explicit double-confirmation
maxis supported only forrepayandwithdraw. Use it when fully repaying debt or withdrawing a supplied position to avoid dust residuals.- Use
ETHfor ETH-market supply, repay, and withdraw so the CLI can apply the documented wrap/unwrap behavior. Borrowing that market returns WETH. - If a
Rate limit / 429error occurs, use theconfigskill to set a custom RPC.
ETH ↔ WETH Auto-Wrap Reference
Trigger Examples
config
config
Category: UtilityView and modify fibx CLI configuration — primarily used to set custom RPC URLs when hitting rate limits on public endpoints. Configuration is stored locally and persists across sessions.
Allowed Tools
Rules
- If any command fails with a “Rate limit exceeded” or “429” error, use this skill to set a custom RPC for the affected chain.
- Settings use the OS-specific FibX config directory and persist across
sessions (for example,
~/.config/fibx-nodejs/config.jsonon Linux and~/Library/Preferences/fibx-nodejs/config.jsonon macOS). - The CLI validates URL format but not connectivity — ensure the RPC URL is valid before setting.
Commands
Trigger Examples
tx-status
tx-status
Category: UtilityChecks the on-chain status of a transaction and returns the block explorer link. No authentication is required — this is a public chain query.
Allowed Tools
Rules
- Use the same
--chainflag that was used for the original transaction. - Use this skill after every
sendortradeto verify success.
Trigger Examples
Agent Workflow Example
A typical multi-step interaction between a user and an AI agent using fibx-skills:- With Private Key
- With Email OTP
1
User: 'Import my private key'
Agent triggers authenticate-wallet:The user pastes their private key in the interactive prompt. Session is now active.
2
User: 'Swap 0.05 ETH to USDC'
Agent triggers balance then trade:
3
Agent verifies automatically