FibX

Ejecución DeFi en Base, Citrea, HyperEVM y Monad mediante agregación de Fibrous: cotizaciones de swap, swaps, transferencias, cartera entre cadenas y Aave V3.

Documentación

FibX

Una herramienta de línea de comandos y servidor MCP para operaciones DeFi en Base, HyperEVM y Monad, impulsada por la agregación de Fibrous. Firme con su propia billetera a través de WalletConnect, con una billetera de servidor Privy, o con una clave importada — cada camino limitado por una política de firma que vive en su máquina.

npm version

Características

  • Soporte Multi-Cadena: Base, HyperEVM y Monad
  • Portafolio: Vista de portafolio entre cadenas con valoraciones en USD y posiciones DeFi
  • Intercambio de Tokens: Enrutamiento óptimo mediante agregación de Fibrous con deslizamiento automático
  • Transferencias: Envíe ETH o cualquier token ERC-20
  • Aave V3: Provea, pida prestado, pague, retire y explore mercados en Base
  • Servidor MCP: Integración integrada de agentes de IA para Cursor, Claude Desktop y Antigravity (19 herramientas)
  • La aplicación FibX, en el chat: en hosts que renderizan la interfaz de MCP Apps como Claude Desktop, open_fibx muestra la billetera, saldos, política de firma y un formulario de intercambio con la ruta de Fibrous en línea — el modelo lo abre, y usted presiona Simular e Intercambiar
  • Habilidades de Agente: Habilidades de IA basadas en prompts mediante fibx-skills
  • Su propia billetera: Vincule a través de WalletConnect y apruebe cada transacción en su teléfono
  • Billeteras de Servidor Privy: Firma del lado del servidor — el CLI recibe cargas útiles de transacciones firmadas o firmas, no credenciales de la aplicación Privy ni claves sin procesar
  • Importación de Clave Privada: Use una billetera existente con almacenamiento local cifrado AES-256-GCM
  • Política de firma local: Un archivo que usted posee — límite de valor nativo por cadena, cadenas permitidas, destinos permitidos, expiración — aplicado antes de cada firma en los tres caminos (Privy añade su propia política del lado del servidor encima)
  • Verificaciones Previas: Los flujos de transacciones validan o estiman la ejecución donde el RPC subyacente lo soporta
  • Modo de Prueba: --simulate previsualiza operaciones de escritura sin transmitir; las estimaciones de gas se incluyen cuando están disponibles
  • Salida JSON: Bandera --json para scripts y pipelines
  • Instalación de Cero Dependencias: Paquete de un solo archivo mediante tsup — npx fibx se ejecuta casi instantáneamente

Cadenas Soportadas

CadenaToken NativoAave V3
BaseETH
HyperEVMHYPE
MonadMON

Instalación

Ejecute directamente con npx (sin necesidad de instalar):

npx fibx status

O instale globalmente:

npm install -g fibx

Requisitos

  • Node.js >= 18
  • Una instancia de fibx-server en ejecución (requerida para operaciones de billetera Privy; no necesaria para importaciones de clave privada)

Inicio Rápido — Primer Intercambio en 3 Minutos

Paso 1: Obtenga una Cotización de Precio (sin autenticación)

Pruebe FibX al instante — sin registro, sin billetera, sin claves:

npx fibx quote 0.01 ETH USDC              # Check price on Base
npx fibx quote 100 USDC DAI --chain base   # Compare pairs
npx fibx quote 0.5 MON USDC --chain monad  # Check Monad prices

Paso 2: Autentíquese (elija una)

Opción A — Inicio de Sesión con Correo (Billetera de Servidor Privy, sin claves que gestionar):

npx fibx auth login you@email.com          # Sends OTP to your email
npx fibx auth verify you@email.com 123456  # Verify & create wallet

Opción B — Importar Clave Privada (use una billetera existente):

npx fibx auth import                       # Paste your key (encrypted at rest)

Paso 3: Ejecute

npx fibx trade 0.01 ETH USDC               # Execute the swap
npx fibx balance                            # Check your balances

Eso es todo. Tres pasos de cero a su primer intercambio.

Uso

Cómo elige FibX firmar

Ejecute fibx auth setup y preguntará. Los tres caminos difieren en una cosa:

CaminoClave en manos deSe ejecuta mientras usted está ausenteLimitado por
auth connectsu propia billeteranousted, en su teléfono
auth loginPrivyla política de firma de Privy
auth importesta máquinala política local que usted establece

Mantener su propia billetera y tener a FibX actuando sin supervisión requiere ERC-7715, que las billeteras aún no exponen a través de WalletConnect. fibx auth setup explica las opciones más cercanas.

Seguridad: Al usar auth import, su clave privada está cifrada en reposo con AES-256-GCM. La clave de cifrado se genera automáticamente por máquina y se almacena en el directorio de configuración del sistema operativo (por ejemplo, ~/.config/fibx-nodejs/encryption-key en Linux). También puede establecer la variable de entorno FIBX_SESSION_SECRET para entornos CI/Docker.

Conecte su propia billetera

npx fibx auth connect

Vincula FibX con una billetera que ya tenga — MetaMask, Rabby, Rainbow, Phantom — a través de WalletConnect. Aparece un código QR en la terminal; escanéelo con su teléfono. Cada transacción se aprueba entonces en su billetera, por lo que las claves nunca la abandonan.

La cadena en la que opera debe estar ya en su billetera, y se aprueba cuando se vincula. Si intenta firmar en una cadena que la sesión no lleva, FibX se detiene antes de contactar la billetera y nombra la cadena: agréguela en su billetera, luego ejecute npx fibx auth connect de nuevo para que la nueva cadena se incluya.

Con --json, la salida es NDJSON — un documento JSON por línea, no un documento para toda la ejecución: la URI de vinculación se imprime primero como {"uri":"wc:..."} para que un script pueda actuar sobre ella mientras espera, luego el resultado se imprime como su propia línea JSON compacta una vez que la billetera aprueba.

npx fibx auth logout termina la conexión en ambos lados: le dice a su billetera que elimine la sesión, por lo que FibX deja de aparecer en su lista de aplicaciones conectadas, y elimina las claves de vinculación del disco junto con la sesión.

Un ID de proyecto compartido de WalletConnect se incluye en el paquete publicado, por lo que esto funciona sin configuración. Es público por necesidad — un CLI no tiene origen para incluir en la lista blanca — por lo que su única exposición real es la cuota consumida por terceros. Si la vinculación comienza a fallar por cuota, cree un proyecto gratuito en cloud.reown.com y establezca FIBX_WC_PROJECT_ID a su propio ID.

auth login (OTP por correo) y auth import (clave privada) no cambian y permanecen disponibles.

Política de firma

fibx policy limita lo que FibX puede firmar, además de cualquier camino de la tabla anterior que tenga la clave — un límite del lado del cliente evaluado antes de cada transacción de clave local, Privy o WalletConnect:

npx fibx policy show                    # Print the active policy

npx fibx policy set base.maxValue 0.05
npx fibx policy set allowedChains base,monad
npx fibx policy set base.allowedDestinations 0xYourColdWallet,0xTheRouter
npx fibx policy set expiry 2026-12-31   # UTC midnight starting that day

npx fibx policy clear base.maxValue     # Remove one rule
npx fibx policy clear                   # Remove the whole policy (asks first)

Una política local que protege una clave local es de carácter consultivo: cualquier cosa que pueda leer la clave puede editar la política, por lo que esto no vale nada contra malware. Lo que sí limita es al agente — un modelo que se comporta mal, o una inyección de prompt que le indique hacerlo.

Sepa qué limita cada regla, porque no son lo mismo:

  • maxValue limita el valor nativo de una sola transacción — ETH en Base, HYPE en HyperEVM, MON en Monad. No limita tokens. Una transferencia ERC-20 llega a la política como una llamada al contrato del token que lleva value: 0, por lo que el monto es invisible para ella: base.maxValue 0.05 no impone límite en fibx send 50000 USDC 0xsomewhere, en el lado del token de un intercambio, ni en un préstamo de Aave. Un límite de valor de token necesita decimales y un registro de tokens, y no está en esta versión.
  • allowedDestinations es la regla que limita tokens, al limitar a dónde puede ir cualquier cosa. Es la que debe establecer si la preocupación es un agente moviendo sus tenencias a algún lugar. Tenga en cuenta que incluir en la lista blanca el contrato de un token para que un intercambio pueda aprobarlo también permite transferencias de ese token.
  • allowedChains y expiry hacen exactamente lo que dicen. Una política vencida o no analizable rechaza todo en lugar de permitirlo.

Opciones Globales

OpciónDescripciónPredeterminado
-c, --chain <name>Cadena objetivo (base, hyperevm, monad)base
--jsonResultados de salida como JSONfalse

Saldo

npx fibx balance
npx fibx balance --chain hyperevm

Portafolio

Vista consolidada de portafolio entre cadenas con valoraciones en USD:

npx fibx portfolio           # Table output across all chains
npx fibx portfolio --json    # Structured JSON for scripting

Muestra todas las tenencias de tokens en Base, HyperEVM y Monad con valores en USD. Incluye posiciones DeFi (colateral/deuda de Aave V3) y valor neto total del portafolio. Los precios de tokens se obtienen en vivo de Fibrous.

Enviar

npx fibx send 0.001 0xRecipient           # Send native token on Base (ETH)
npx fibx send 10 0xRecipient USDC         # Send ERC-20 on Base
npx fibx send 1 0xRecipient --chain monad # Send MON on Monad
npx fibx send 0.1 0xRecipient --simulate  # Preview without sending

Cotización

Obtenga precios de intercambio sin autenticación:

npx fibx quote 0.01 ETH USDC                  # Price check on Base
npx fibx quote 1 MON USDC --chain monad         # Check Monad prices
npx fibx quote 0.1 ETH USDC --json             # JSON output for scripts

No se requiere billetera ni autenticación. Use quote para explorar precios, luego trade para ejecutar.

Intercambio

npx fibx trade <amount> <from> <to>
npx fibx trade 0.0001 ETH USDC
npx fibx trade 20 USDC DAI
npx fibx trade 1 MON USDC --chain monad
npx fibx trade 0.1 ETH USDC --simulate   # Preview without broadcasting

Opciones: --slippage <n> (predeterminado: 0.5%), --approve-max, --simulate, --json

Nota: El comando trade detecta automáticamente operaciones de Envolver (Nativo -> Envuelto) y Desenvolver (Envuelto -> Nativo) y las ejecuta directamente mediante llamadas a contratos, omitiendo el enrutamiento del agregador para ahorrar gas.

Estado de Transacción

npx fibx tx-status <hash>
npx fibx tx-status 0x123...abc --chain monad

Información de Billetera

npx fibx address    # Print active wallet address
npx fibx wallets    # Show active wallet details

Aave V3 (Base)

npx fibx aave status               # Account health
npx fibx aave markets              # List all active reserves with APY & TVL
npx fibx aave supply 1 ETH         # Auto-wraps ETH -> WETH and supplies
npx fibx aave supply 100 USDC      # Supply ERC-20
npx fibx aave borrow 50 USDC       # Borrow
npx fibx aave repay 50 USDC        # Repay
npx fibx aave repay max ETH        # Auto-wraps ETH and repays full WETH debt
npx fibx aave withdraw max ETH     # Withdraws WETH and auto-unwraps to ETH
npx fibx aave supply 1 ETH --simulate  # Preview without broadcasting

Nota: supply, repay y withdraw soportan el envolvimiento/desenvolvimiento automático de ETH <-> WETH en Base.

Configuración

Establezca URLs RPC personalizadas para evitar límites de velocidad en endpoints públicos:

npx fibx config set-rpc base https://mainnet.base.org
npx fibx config get-rpc base
npx fibx config reset-rpc base   # Reset single chain to default
npx fibx config reset-rpc        # Reset all chains to default
npx fibx config list

Recarga en caliente: Los cambios de configuración se detectan automáticamente — no es necesario reiniciar el CLI o el servidor MCP.

Integración de Agente de IA

Servidor MCP

fibx incluye un MCP integrado para editores de IA como Cursor, Claude Desktop y Antigravity. Consulte MCP.md para la configuración y las herramientas disponibles.

npx fibx mcp-start

El servidor MCP expone 19 herramientas: la aplicación FibX (open_fibx, list_tokens), consultas de solo lectura, tres herramientas transaccionales y gestión de sesiones y políticas. Todas las operaciones de escritura soportan una vista previa simulate=true que no transmite; las estimaciones de gas se devuelven solo cuando están disponibles.

En un host que renderiza la interfaz de MCP Apps — Claude Desktop hoy — open_fibx es el punto de entrada: pregunte sobre su billetera, un saldo, un precio o un intercambio y toda la aplicación se abre en línea, prellenada desde la conversación. No ejecuta nada por sí sola; Simular e Intercambiar son botones que usted presiona. En un host solo de texto, la misma llamada devuelve una instantánea JSON que el modelo puede resumir, y las herramientas sin interfaz hacen el resto.

Habilidades de Agente

Para integración de agentes basada en prompts (Claude Code, Cursor, etc.), consulte el repositorio fibx-skills.

Seguridad

Permitir que un agente de IA opere una billetera requiere controles fuera del modelo. fibx combina políticas de capa de firma, validación del lado del servidor, sugerencias del cliente y vistas previas explícitas. Estos controles reducen el riesgo, pero las credenciales del servidor, la configuración del cliente MCP y la política de implementación siguen siendo parte del límite de confianza:

CapaQué hace
Política de firma de PrivyLa política predeterminada permite cadenas configuradas, limita el token nativo de cada transacción a value, y deniega la exportación de claves. Privy evalúa la política al momento de firmar; las credenciales de fibx-server y cualquier política personalizada siguen siendo límites críticos de confianza.
Esquemas de fibx-server/sign/* acepta únicamente la forma exacta de transacción que produce la CLI — los campos desconocidos, la creación de contratos y las cadenas no atendidas se rechazan antes de llegar a Privy.
Anotaciones de herramientas MCPCada herramienta transaccional anuncia destructiveHint: true; los clientes compatibles pueden usar esa pista para solicitar confirmación, dependiendo del comportamiento y la configuración del cliente.
Simulación--simulate previsualiza operaciones de escritura sin transmitirlas. Algunas rutas también devuelven una estimación de gas; otras devuelven solo metadatos de operación.
Almacenamiento local de clavesLas claves privadas importadas se cifran en reposo con AES-256-GCM usando una clave por máquina almacenada 0600 en el directorio de configuración del sistema operativo.

Los límites de la política de billetera se configuran por implementación — consulta la documentación de políticas de billetera de fibx-server.

Nota: las políticas se adjuntan cuando se crea una billetera. Las billeteras aprovisionadas antes de que se introdujeran las políticas siguen firmando sin ellas hasta que se migren.

Arquitectura

Este repositorio es la CLI y el servidor MCP. Tres repositorios hermanos completan el stack:

RepositorioRol
fibx (este repositorio)CLI + servidor MCP stdio, distribuido como un único paquete sin dependencias
fibx-serverBackend de Hono que actúa como proxy de Privy — guarda el secreto de la aplicación para que la CLI nunca lo tenga, y posee la política de firma de billetera
fibx-skillsHabilidades de agente basadas en prompts para Claude Code, Cursor y otros agentes compatibles con habilidades
fibx-telegram-botBot de Telegram que impulsa esta CLI a través de MCP, con un proceso y rutas de configuración separadas por usuario activo
src/
├── commands/           # CLI commands (auth, policy, trade, send, aave, config)
├── mcp/                # Modular MCP server
│   ├── server.ts       # Entry point + MCP_INSTRUCTIONS
│   ├── ui.ts           # The ui://fibx/app.html resource (the built widget, inlined)
│   ├── tools/          # Tool registrations (app, auth, wallet, trade, defi, policy)
│   └── handlers/       # Tool implementations
├── services/           # Business logic (chain, fibrous, auth, policy, walletconnect, defi, portfolio)
└── lib/                # Shared utilities (errors, fetch, format, crypto)
ui/
├── src/                # The FibX app widget — Preact, one document, no network
└── dev-host/           # A local MCP Apps host for the widget: fixtures, or a bridge to the real server

El widget se compila con Vite en un único documento HTML y se incrusta en dist/index.js mediante tsup, por lo que el paquete publicado sigue siendo un solo archivo sin dependencias en tiempo de ejecución.

Desarrollo

pnpm install
pnpm dev          # run the CLI from source
pnpm test         # vitest unit tests
pnpm typecheck    # tsc --noEmit
pnpm lint         # eslint
pnpm format:check # prettier
pnpm build        # vite (the app widget) then tsup, to dist/
pnpm dev:ui       # the app widget in a local host, against fixtures — no wallet needed

pnpm dev:ui:bridge ejecuta el mismo host contra el servidor MCP real; un Swap allí es un swap real.

Enlaces relacionados

Licencia

MIT