FibX
Execução DeFi na Base, Citrea, HyperEVM e Monad via agregação Fibrous: cotações de swap, swaps, transferências, portfólio cross-chain e Aave V3.
Documentação
FibX
Uma ferramenta de linha de comando e servidor MCP para operações DeFi em Base, HyperEVM e Monad, alimentada pela agregação Fibrous. Assine com sua própria carteira via WalletConnect, com uma carteira de servidor Privy ou com uma chave importada — cada caminho limitado por uma política de assinatura que reside na sua máquina.
Recursos
- Suporte Multi-Cadeia: Base, HyperEVM e Monad
- Portfólio: Visão geral do portfólio entre cadeias com avaliações em USD e posições DeFi
- Trocas de Tokens: Roteamento otimizado via agregação Fibrous com slippage automático
- Transferências: Envie ETH ou qualquer token ERC-20
- Aave V3: Fornecer, emprestar, pagar, retirar e navegar pelos mercados na Base
- Servidor MCP: Integração integrada com agentes de IA para Cursor, Claude Desktop e Antigravity (19 ferramentas)
- O app FibX, no chat: em hosts que renderizam a UI de MCP Apps, como Claude Desktop,
open_fibxmostra a carteira, saldos, política de assinatura e um formulário de troca com a rota Fibrous inline — o modelo abre, e você pressiona Simular e Trocar - Habilidades de Agente: Habilidades de IA baseadas em prompts via fibx-skills
- Sua própria carteira: Emparelhe via WalletConnect e aproveite cada transação no seu celular
- Carteiras de Servidor Privy: Assinatura no lado do servidor — o CLI recebe payloads de transação assinados ou assinaturas, não credenciais do app Privy ou chaves brutas
- Importação de Chave Privada: Use uma carteira existente com armazenamento local criptografado AES-256-GCM
- Política de assinatura local: Um arquivo que você possui — limite de valor nativo por cadeia, cadeias permitidas, destinos permitidos, expiração — aplicado antes de cada assinatura nos três caminhos (Privy adiciona sua própria política no lado do servidor por cima)
- Verificações de Pré-execução: Fluxos de transação validam ou estimam a execução onde o RPC subjacente suporta
- Modo Dry-Run:
--simulatepré-visualiza operações de escrita sem transmitir; estimativas de gás são incluídas quando disponíveis - Saída JSON: Flag
--jsonpara scripts e pipelines - Instalação Zero-Dependência: Pacote de arquivo único via tsup —
npx fibxroda quase instantaneamente
Cadeias Suportadas
| Cadeia | Token Nativo | Aave V3 |
|---|---|---|
| Base | ETH | ✅ |
| HyperEVM | HYPE | — |
| Monad | MON | — |
Instalação
Execute diretamente com npx (sem necessidade de instalação):
npx fibx status
Ou instale globalmente:
npm install -g fibx
Requisitos
- Node.js >= 18
- Uma instância fibx-server em execução (necessária para operações com carteira Privy; não necessária para importações de chave privada)
Início Rápido — Primeira Troca em 3 Minutos
Passo 1: Obtenha uma Cotação de Preço (sem autenticação)
Experimente o FibX instantaneamente — sem cadastro, sem carteira, sem chaves:
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
Passo 2: Autentique-se (escolha um)
Opção A — Login por E-mail (Carteira de Servidor Privy, sem chaves para gerenciar):
npx fibx auth login you@email.com # Sends OTP to your email
npx fibx auth verify you@email.com 123456 # Verify & create wallet
Opção B — Importar Chave Privada (use uma carteira existente):
npx fibx auth import # Paste your key (encrypted at rest)
Passo 3: Execute
npx fibx trade 0.01 ETH USDC # Execute the swap
npx fibx balance # Check your balances
É isso. Três passos do zero até a primeira troca.
Uso
Escolhendo como o FibX assina
Execute fibx auth setup e ele perguntará. Os três caminhos diferem em um aspecto:
| Caminho | Chave mantida por | Roda enquanto você está ausente | Limitado por |
|---|---|---|---|
auth connect | sua própria carteira | não | você, no seu celular |
auth login | Privy | sim | política de assinatura da Privy |
auth import | esta máquina | sim | a política local que você definiu |
Manter sua própria carteira e ter o FibX agindo sem supervisão requer ERC-7715, que as carteiras ainda não expõem via WalletConnect. fibx auth setup explica as opções mais próximas.
Segurança: Ao usar
auth import, sua chave privada é criptografada em repouso com AES-256-GCM. A chave de criptografia é gerada automaticamente por máquina e armazenada no diretório de configuração do SO (ex.:~/.config/fibx-nodejs/encryption-keyno Linux). Você também pode definir a variável de ambienteFIBX_SESSION_SECRETpara ambientes CI/Docker.
Conecte sua própria carteira
npx fibx auth connect
Emparelha o FibX com uma carteira que você já possui — MetaMask, Rabby, Rainbow, Phantom — via WalletConnect. Um código QR aparece no terminal; escaneie com seu celular. Cada transação é então aprovada na sua carteira, então as chaves nunca saem dela.
A cadeia em que você negocia já deve estar na sua carteira, e ela é aprovada quando você emparelha. Se você tentar assinar em uma cadeia que a sessão não carrega, o FibX para antes de contatar a carteira e nomeia a cadeia: adicione-a na sua carteira e execute npx fibx auth connect novamente para que a nova cadeia seja incluída.
Com --json, a saída é NDJSON — um documento JSON por linha, não um documento para toda a execução: o URI de emparelhamento é impresso primeiro como {"uri":"wc:..."} para que um script possa agir sobre ele enquanto espera, e então o resultado é impresso como sua própria linha JSON compacta assim que a carteira aprova.
npx fibx auth logout encerra a conexão em ambos os lados: informa à sua carteira para descartar a sessão, então o FibX deixa de aparecer na lista de apps conectados, e remove as chaves de emparelhamento do disco junto com a sessão.
Um ID de projeto WalletConnect compartilhado acompanha o pacote publicado, então isso funciona sem configuração. Ele é público por necessidade — um CLI não tem origem para lista de permissões — então sua única exposição real é a cota consumida por terceiros. Se o emparelhamento começar a falhar por cota, crie um projeto gratuito em cloud.reown.com e defina FIBX_WC_PROJECT_ID para seu próprio ID.
auth login (OTP por e-mail) e auth import (chave privada) permanecem inalterados e disponíveis.
Política de assinatura
fibx policy limita o que o FibX pode assinar, além de qualquer caminho da tabela acima que detenha a chave — um limite no lado do cliente avaliado antes de cada transação de chave local, Privy ou 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)
Uma política local protegendo uma chave local é consultiva: qualquer coisa que possa ler a chave pode editar a política, então isso não vale nada contra malware. O que ela limita é o agente — um modelo que se comporta mal, ou uma injeção de prompt dizendo a ele para fazer algo.
Saiba o que cada regra limita, porque elas não são iguais:
maxValuelimita o valor nativo de uma única transação — ETH na Base, HYPE na HyperEVM, MON na Monad. Ela não limita tokens. Uma transferência ERC-20 chega à política como uma chamada ao contrato do token carregandovalue: 0, então o valor é invisível para ela:base.maxValue 0.05não impõe limite emfibx send 50000 USDC 0xsomewhere, no lado do token de uma troca, ou em um empréstimo Aave. Um limite de valor de token precisa de decimais e um registro de tokens, e não está nesta versão.allowedDestinationsé a regra que limita tokens, limitando para onde qualquer coisa pode ir. É a que deve ser definida se a preocupação é um agente movendo seus ativos para algum lugar. Observe que colocar o contrato de um token na lista de permissões para que uma troca possa aprová-lo também permite transferências desse token.allowedChainseexpiryfazem exatamente o que dizem. Uma política expirada ou não analisável recusa tudo em vez de permitir.
Opções Globais
| Opção | Descrição | Padrão |
|---|---|---|
-c, --chain <name> | Cadeia alvo (base, hyperevm, monad) | base |
--json | Saída de resultados como JSON | false |
Saldo
npx fibx balance
npx fibx balance --chain hyperevm
Portfólio
Visão consolidada do portfólio entre cadeias com avaliações em USD:
npx fibx portfolio # Table output across all chains
npx fibx portfolio --json # Structured JSON for scripting
Mostra todas as participações de tokens em Base, HyperEVM e Monad com valores em USD. Inclui posições DeFi (garantia/dívida Aave V3) e patrimônio líquido total do portfólio. Os preços dos tokens são obtidos ao vivo da 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
Cotação
Obtenha preços de troca sem autenticação:
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
Nenhuma carteira ou autenticação necessária. Use
quotepara explorar preços e depoistradepara executar.
Trocar
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
Opções: --slippage <n> (padrão: 0,5%), --approve-max, --simulate, --json
Nota: O comando
tradedetecta automaticamente operações de Wrap (Nativo -> Envolvido) e Unwrap (Envolvido -> Nativo) e as executa diretamente via chamadas de contrato, ignorando o roteamento do agregador para economizar gás.
Status da Transação
npx fibx tx-status <hash>
npx fibx tx-status 0x123...abc --chain monad
Informações da Carteira
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,repayewithdrawsuportam ETH <-> WETH wrapping/unwrapping automático na Base.
Configuração
Defina URLs RPC personalizadas para evitar limites de taxa em 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 a quente: As alterações de configuração são detectadas automaticamente — sem necessidade de reiniciar o CLI ou o servidor MCP.
Integração com Agentes de IA
Servidor MCP
fibx inclui um servidor MCP integrado para editores de IA como Cursor, Claude Desktop e Antigravity. Veja MCP.md para configuração e ferramentas disponíveis.
npx fibx mcp-start
O servidor MCP expõe 19 ferramentas: o app FibX (open_fibx, list_tokens), consultas somente leitura, três ferramentas transacionais e gerenciamento de sessão e política. Todas as operações de escrita suportam uma pré-visualização simulate=true que não transmite; estimativas de gás são retornadas apenas quando disponíveis.
Em um host que renderiza a UI de MCP Apps — Claude Desktop hoje — open_fibx é o ponto de entrada: pergunte sobre sua carteira, um saldo, um preço ou uma troca e o app inteiro abre inline, pré-preenchido a partir da conversa. Ele não executa nada por conta própria; Simular e Trocar são botões que você pressiona. Em um host somente texto, a mesma chamada retorna um instantâneo JSON que o modelo pode resumir, e as ferramentas headless fazem o resto.
Habilidades de Agente
Para integração de agentes baseada em prompts (Claude Code, Cursor, etc.), veja o repositório fibx-skills.
Segurança
Deixar um agente de IA operar uma carteira requer controles fora do modelo. fibx combina políticas na camada de assinatura, validação no lado do servidor, dicas do cliente e pré-visualizações explícitas. Esses controles reduzem o risco, mas as credenciais do servidor, a configuração do cliente MCP e a política de implantação permanecem parte do limite de confiança:
| Camada | O que ela faz |
|---|---|
| Política de assinatura Privy | A política padrão permite que redes configuradas sejam listadas, limita o token nativo value de cada transação e nega a exportação de chaves. A Privy avalia a política no momento da assinatura; as credenciais do fibx-server e qualquer política personalizada permanecem como limites críticos de confiança. |
| Esquemas do fibx-server | /sign/* aceita apenas a forma exata de transação que a CLI produz — campos desconhecidos, criação de contratos e redes não atendidas são rejeitados antes de chegar à Privy. |
| Anotações de ferramentas MCP | Cada ferramenta transacional anuncia destructiveHint: true; clientes compatíveis podem usar essa dica para solicitar confirmação, dependendo do comportamento e da configuração do cliente. |
| Simulação | --simulate pré-visualiza operações de escrita sem transmitir. Alguns caminhos também retornam uma estimativa de gás; outros retornam apenas metadados de operação. |
| Armazenamento local de chaves | Chaves privadas importadas são criptografadas em repouso com AES-256-GCM usando uma chave por máquina armazenada 0600 no diretório de configuração do sistema operacional. |
Os limites da política de carteira são configurados por implantação — consulte a documentação da política de carteira do fibx-server.
Nota: as políticas são anexadas quando uma carteira é criada. Carteiras provisionadas antes da introdução das políticas continuam assinando sem elas até serem migradas.
Arquitetura
Este repositório é a CLI e o servidor MCP. Três repositórios irmãos completam a pilha:
| Repositório | Função |
|---|---|
| fibx (este repositório) | CLI + servidor MCP stdio, enviado como um único pacote sem dependências |
| fibx-server | Backend Hono que faz proxy para a Privy — guarda o segredo do aplicativo para que a CLI nunca o tenha, e possui a política de assinatura da carteira |
| fibx-skills | Habilidades de agente baseadas em prompt para Claude Code, Cursor e outros agentes com suporte a habilidades |
| fibx-telegram-bot | Bot do Telegram que aciona esta CLI via MCP, com um processo e caminhos de configuração separados por usuário ativo |
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
O widget é compilado pelo Vite em um único documento HTML e incorporado em
dist/index.js pelo tsup, então o pacote publicado ainda é um único arquivo sem
dependências em tempo de execução.
Desenvolvimento
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 executa o mesmo host contra o servidor MCP real; uma troca
lá é uma troca real.
Links Relacionados
- Fibrous Finance — agregador de DEX que alimenta as trocas
- Documentação do agente FibX
- Pacote npm
- Listagem no registro MCP —
finance.fibrous/fibx