fibx CLI for use by AI agents. Each skill defines a specific capability — authentication, the signing policy, 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.10.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. Three signing paths are available, and they are peers —
auth setup presents the choice:- Your own wallet (
auth connect) — pair a wallet you already have over WalletConnect. Every transaction is approved on the phone; nothing is signed on the machine. - Privy server wallet (
auth login+auth verify) — a server-managed wallet via email OTP; runs unattended, bounded by Privy’s policy and the local one. - Imported private key (
auth import) — encrypted locally; runs unattended, bounded by the local signing policy alone.
Allowed Tools
Rules
- If the user has not said how they want to sign, run
auth setupor ask. Do not default to Privy. - Never ask the user for a private key.
auth importprompts for it in the terminal. - Before
auth import, warn: “Your private key will be encrypted with AES-256-GCM and stored on this machine. With an imported key, the local signing policy is the only thing bounding what this wallet signs — I can set one with thepolicyskill. Proceed?” auth loginmust complete beforeauth verify— they are sequential steps.auth connectprints a QR and waits; tell the user to scan it with their wallet and approve. Every latertradeorsendblocks until they approve it on the phone.- After any of these, run
statusto confirm the session. Any of them replaces the active session; say so before switching. - Never store or log private keys, OTP codes, pairing URIs, or session data.
Trigger Examples
policy
policy
Category: AuthReads and changes the local signing policy — a file on the user’s machine that caps the native value per chain, allowlists chains and destinations, and expires. FibX evaluates it before every signature on all three signing paths. Use it when a transaction is refused with
POLICY_BLOCKED, or when the user wants to bound what the wallet can sign. No session is needed.Allowed Tools
Rules
- Propose a concrete value and explain what it bounds; set it only after the user agrees.
maxValuebounds native value only — an ERC-20 transfer reaches the policy withvalue: 0. OnlyallowedDestinationsbounds where tokens go. Never tell the user the cap limits token amounts.- On the imported-key path this file is the only bound. If
policy showshows nothing on a private-key session, recommend at least amaxValuebefore anytradeorsend. - A refusal names its rule. Relay the rule and limit and ask; do not retry, and do not loosen the rule unasked.
policy clearwith no rule removes the whole policy and asks for confirmation. Never pass-yunless the user explicitly asked to remove everything.
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, 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 Your Own Wallet
- With Private Key
- With Email OTP
1
User: 'Connect my own wallet'
Agent triggers authenticate-wallet:The user scans the QR with their wallet app and approves the pairing. Session is now active; every transaction from here is approved on the phone.
2
User: 'Swap 0.05 ETH to USDC'
Agent triggers balance then trade:Agent says: “Approve the swap in your wallet.” The command waits until the user does.
3
Agent verifies automatically