Ophis
Servidor MCP para o agregador DEX baseado em intenções Ophis: cotações e ordens de swap sem gas e protegidas contra MEV em 11 blockchains.
Documentação
Ophis
Descreva uma negociação em linguagem natural. O Ophis cuida do resto.
Um agregador de DEX baseado em intenções com uma camada de linguagem natural, feito para humanos e agentes.
App de Swap · Documentação · Explorador · Agentes · SDK · Segurança
Diga swap 100 USDC for ETH on Base e o Ophis resolve os tokens, a rede e o
valor, e então preenche a ordem por meio de um leilão competitivo de solvers que
liquida on-chain. É um fork do CoW Protocol (orderbook, autopilot,
driver e solver de linha de base) com uma camada de intenção em linguagem natural sobre uma
interface do CoW Swap renomeada. Na Optimism, o Ophis executa toda a stack sob seus próprios
contratos de liquidação e mantém a taxa integral; nas outras redes suportadas
(Ethereum, Base, Arbitrum e outras), ele roteia pela rede hospedada do CoW Protocol.
O que isso proporciona em cada negociação:
- Sem gas, protegido contra MEV. As ordens são liquidadas em um leilão em lote onde cada negociação é executada a um preço uniforme, então sandwiches e front-running são estruturalmente ausentes, não apenas uma tentativa de mitigação.
- Precificação alinhada ao solver. Em todas as redes suportadas, a taxa base é de 1 bp e o Ophis ganha principalmente quando a execução supera sua cotação de referência: 80% da melhoria em pares voláteis (teto de 99 bps), ou 50% em pares estáveis (teto de 20 bps). Redes hospedadas codificam essa política no appData CIP-75 e pagam separadamente as taxas upstream do CoW Protocol.
- Sem custódia, sem conta, sem autenticação. Cada ordem é assinada na sua própria carteira (EIP-712 ou ERC-1271). O Ophis nunca detém chaves ou fundos e não pode mover, congelar ou recuperá-los. A assinatura é o único limite de confiança.
- Taxas transparentes e limitadas. Uma taxa base de 0,01% (1 bp) mais a política de melhoria limitada acima, com uma parcela devolvida mensalmente como reembolsos em WETH, além de uma comissão de 8% sobre negociações que você trouxer.
Ativo em 13 redes EVM, com liquidação operada pelo Ophis na Optimism (chain 10), Unichain (130) e Robinhood Chain (4663), além de liquidação hospedada pelo CoW nas outras redes suportadas.
Início rápido: a API de Intenção
A API exclusiva do Ophis transforma linguagem natural em uma ordem estruturada. Sem chave, sem conta, basta enviar sua solicitação via POST:
curl -sS https://ophis.fi/api/intent \
-H 'content-type: application/json' \
-d '{"text":"swap 100 USDC for ETH on Base"}'
{
"ok": true,
"data": {
"intent": "swap",
"entities": [
{ "type": "amount", "value": "100", "raw": "100", "start": 5, "end": 8 },
{ "type": "sellToken", "value": "USDC", "raw": "USDC", "start": 9, "end": 13 },
{ "type": "buyToken", "value": "ETH", "raw": "ETH", "start": 18, "end": 21 },
{ "type": "chain", "value": "base", "raw": "Base", "start": 25, "end": 29 }
]
}
}
Mapeie o slug da rede para um ID de rede e entregue ao usuário um deep link de swap para revisar e
assinar. O endpoint apenas normaliza o texto; ele nunca coloca, assina ou executa uma
negociação. Ele é limitado a 30 solicitações por minuto por IP; chamadas de não navegadores
(sem o cabeçalho Origin) são permitidas, que é o caminho usado por agentes. Referência completa:
docs.ophis.fi/intent-api.
Agentes e SDK
O Ophis foi feito para ser negociado por agentes autônomos, não apenas por pessoas. Escolha sua profundidade de integração, tudo sem custódia e sem chaves:
Servidor MCP (recomendado)
Aponte qualquer cliente MCP (Claude, Cursor, um agente personalizado) para o servidor hospedado do Model Context Protocol:
https://mcp.ophis.fi/mcp
Ele fala Streamable-HTTP MCP e expõe 14 ferramentas: parsing de intenção, resolução canônica
de tokens, descoberta de redes, cotação, construção/validação e envio de ordens limitadas, consultas
de reembolsos e integradores, saldos, portfólios, gas, gráficos e comparação de excedente
esperado. O servidor não detém chaves e nunca assina.
build_order retorna uma ordem EIP-712 limitada e pronta para assinar, com o receptor
fixado no proprietário; o agente assina localmente com sua própria chave e envia. Veja a
referência completa de ferramentas. (Uma solicitação simples
sem o cabeçalho Accept: text/event-stream retorna HTTP 406; isso é a
negociação do transporte, não uma interrupção.)
@ophis/sdk
Para agentes que constroem e assinam ordens CoW diretamente:
npm install @ophis/sdk
O SDK codifica quatro detalhes do fork que falham silenciosamente se você os adivinhar:
getOphisOrderbookUrl(chainId)escolhe o host correto. A Optimism hospeda seu próprio orderbook (nãoapi.cow.fi); o host errado ignora o solver do Ophis e zera a taxa.getOphisOrderDomain(chainId)fornece o domínio EIP-712 com overifyingContractcorreto. A liquidação na OP não é canônica, então o padrão do cow-sdk é rejeitado on-chain.buildOphisAppDataPartnerFee(chainId)constrói o fragmento exato de taxa de volume CIP-75{ volumeBps, recipient }, não o formato de melhoria de preço.assertReceiverIsOwner(owner, receiver)fixa o receptor da ordem. Um receptor não fixado é o principal vetor de dreno para um assinante automatizado.
Descoberta e o limite de confiança
O Ophis publica manifestos legíveis por máquina para descoberta de agentes em
https://ophis.fi/.well-known/: mcp.json, ai-plugin.json, agent-skills/,
e api-catalog (RFC 9727), além dos servidos na raiz auth.md, llms.txt e
openapi.json.
Esses auxiliares off-chain tornam o caminho seguro o caminho fácil, mas são guardas, não um limite de autorização: um agente com injeção de prompt pode ignorá-los. Para um agente que assina sem um humano no loop, aplique a política onde o agente não pode alcançá-la: fundos em uma conta Safe, um gate de política determinístico (tokens na allowlist, receptor e appData fixados, preço limite limitado por oráculo, limites de gasto), uma chave de guardião e a mesma política verificada novamente na ingestão do orderbook. Guia completo: docs.ophis.fi/ai-agents.
Status
O Ophis liquida em dois tipos de redes.
Operado pelo Ophis (orderbook, solver e liquidação auto-hospedados; o Ophis mantém a taxa integral):
| Rede | ID da rede | Status |
|---|---|---|
| Optimism | 10 | Ativo: liquidação, solver, taxa de parceiro |
| Unichain | 130 | Ativo: liquidação, solver, taxa de parceiro |
| Robinhood Chain | 4663 | Ativo: liquidação, solver, taxa de parceiro |
Hospedado pelo CoW (ordens roteadas pela rede de liquidação e solver do CoW Protocol, com a taxa de parceiro distribuída pelo CoW): Ethereum, Base, Arbitrum, Polygon, BNB, Gnosis, Avalanche, Linea e outras redes suportadas pelo CoW, todas ativas.
Na BNB Smart Chain (BSC, chain ID 56), o Ophis está ativo: ordens colocadas pelo Ophis
(SupportedChainId.BNB em cowSdk.ts,
mapeadas do slug bnb em chainMap.ts)
liquidam on-chain pelo GPv2Settlement do CoW Protocol em
0x9008D19f58AAbD9eD0D60971565AA8510560ab41 na BSC, oferecendo swaps sem gas e protegidos contra MEV,
sem custódia do lado do Ophis. O Ophis não implanta sua própria liquidação na BSC;
negociações de BNB usam a implantação canônica da BSC do CoW Protocol.
Os dois têm contratos de liquidação e hosts de orderbook diferentes, então resolva-os
por rede via @ophis/sdk ou a ferramenta list_chains do MCP, em vez de assumir.
Status completo ao vivo: docs.ophis.fi/status.
Destinos cross-chain (Solana, Bitcoin) são exibidos via NEAR Intents.
Endereços canônicos de contratos e a política de divulgação estão em
SECURITY.md.
Arquitetura
| Caminho | Origem | Propósito |
|---|---|---|
apps/frontend/ | cowprotocol/cowswap (subtree) | Monorepo Vite/Nx que contém várias superfícies: apps/cowswap-frontend é a interface de swap (código do Ophis em src/ophis/ e src/modules/mevReceipt/), apps/explorer é o explorador de ordens, apps/ophis-landing é o site de destino ophis.fi. Workspace pnpm autocontido (lockfile próprio, excluído da raiz). |
apps/backend/ | cowprotocol/services (subtree) | Orderbook Rust, autopilot, driver, solver de linha de base. As adições do Ophis vivem em crates dedicados e caminhos de módulo ophis::. |
apps/mcp-server/ | Novo | @ophis/mcp-server: servidor MCP voltado para agentes (Streamable-HTTP) implantado como um Cloudflare Worker em mcp.ophis.fi/mcp. Não detém chaves e nunca assina. |
apps/rebate-indexer/ | Novo | @ophis/rebate-indexer: indexador off-chain de faixas de volume e reembolsos WETH, além de proponente de lotes Safe (rebates.ophis.fi). |
apps/docs-ophis/ | Novo | Portal de documentação Docusaurus (docs.ophis.fi). App autocontido (lockfile próprio, excluído da raiz, como apps/frontend). |
packages/sdk/ | Novo | @ophis/sdk: auxiliares sem dependências para o host do orderbook por rede, domínio de ordem EIP-712, appData de taxa de parceiro CIP-75, guardas de fixação de receptor, atribuição de faixas e o registro de redes suportadas. |
contracts/ | cowprotocol/contracts (subtree) | GPv2Settlement, GPv2VaultRelayer, GPv2AllowListAuthentication, implantados sob uma allowlist de solvers controlada pelo Ophis. Artefatos por rede em contracts/deployments/. |
functions/ | Novo | Cloudflare Pages Functions: api/intent.ts (o parser de linguagem natural, compartilhado por swap e landing), _middleware.ts (roteamento de host). |
infra/ | Novo | Stacks de runtime por rede (optimism-mainnet/, unichain-mainnet/, robinhood-mainnet/, local/), além de rpc/ (eRPC) e configuração cloudflare/. |
Subtrees upstream são vendidas como estão; as mudanças do Ophis são catalogadas em
apps/frontend/.ophis-divergences.md e apps/backend/.ophis-divergences.md,
para que git subtree pull permaneça gerenciável.
Mapa do repositório
ophis/
├── apps/
│ ├── frontend/ cowswap fork: swap UI + explorer + landing site
│ ├── backend/ cowprotocol/services fork (Rust)
│ ├── rebate-indexer/ tier + WETH rebate API, Safe batch proposer
│ ├── docs-ophis/ Docusaurus docs portal
│ └── mcp-server/ agent-facing MCP Worker (mcp.ophis.fi)
├── contracts/ GPv2 settlement contracts (+ per-network deployments)
├── packages/sdk/ @ophis/sdk
├── functions/ Cloudflare Pages Functions (intent API, middleware)
├── infra/ per-chain runtime stacks + rpc + cloudflare config
├── scripts/ repo utility scripts
└── docs/ specs, plans, audits, operations runbooks
Build
Workspace raiz (pnpm 9, Node 20.19+ ou 22.12+, turborepo):
pnpm install # all root-workspace deps
pnpm build # builds members with a build step (currently @ophis/sdk)
pnpm typecheck # typechecks every member
pnpm test # runs the unit suites
Apenas packages/sdk tem uma etapa de build hoje. apps/rebate-indexer,
apps/mcp-server e infra/rpc rodam diretamente (sem script build) e são
validadas por pnpm typecheck e pnpm test. O backend Rust (apps/backend)
é um workspace Cargo, não um pacote pnpm, então compile e teste com Cargo:
cd apps/backend && cargo build && cargo test
apps/frontend e apps/docs-ophis são workspaces pnpm autocontidos com
seus próprios lockfiles, deliberadamente excluídos da raiz. Compile-os de dentro
do próprio diretório (veja o README de cada app):
cd apps/frontend && pnpm install --frozen-lockfile && pnpm run build:cowswap
cd apps/docs-ophis && pnpm install --frozen-lockfile && pnpm run build
Os contratos usam Foundry (forge build); forge-std é um submódulo git, então execute
git submodule update --init primeiro.
Deploy
Cada superfície é implantada independentemente de main:
- App de Swap e Explorador
cloudflare-deploy.yml: dois deploys sequenciais do Cloudflare Pages (swap.ophis.fi / ophis.fi, depois explorer.ophis.fi). - Landing
landing-deploy.yml: build filtrado por caminho com um gate de orçamento Playwright e Lighthouse, para o Cloudflare Pages. - Docs
docs-deploy.yml: o site Docusaurus para seu próprio projeto Cloudflare Pages. - Servidor MCP
mcp-deploy.yml: para o Cloudflare Workers (domínio personalizadomcp.ophis.fi) com um token Workers de privilégio mínimo;mcp-registry-release.ymlpublica metadados versionados correspondentes no Registro MCP oficial a partir de tags protegidasmcp-v*. - Indexador de reembolsos
rebate-indexer-deploy.yml: para infraestrutura auto-hospedada em uma rede privada. - Backends de redes operadas: os orderbooks, autopilots, drivers e lanes de solver da Optimism, Unichain e Robinhood Chain rodam na infraestrutura do Ophis
a partir de
infra/optimism-mainnet/,infra/unichain-mainnet/einfra/robinhood-mainnet/. Eles não são implantados por um workflow do GitHub.
Gates de qualidade: ci.yml (lint, typecheck, testes),
codeql.yml,
security.yml (varreduras de dependências e cadeia de
fornecimento) e echidna.yml (fuzzing de contratos).
sdk-release.yml publica @ophis/sdk no npm.
Todos os controles de publicação de pacotes e MCP estão documentados no
runbook de lançamento.
Taxas e reembolsos
Em todas as chains suportadas, a Ophis cobra uma taxa base de 0,01% (1 bp) mais uma parcela limitada da melhoria da cotação de referência: 80% limitada a 99 bps para pares voláteis e 50% limitada a 20 bps para pares estáveis. Os backends das chains operadas aplicam a política de melhoria; os pedidos hospedados a codificam no appData CIP-75 e pagam separadamente as taxas upstream do CoW Protocol.
Parte da taxa retorna aos traders:
- Rebates por nível de volume. A cada mês, uma parcela das taxas WETH coletadas é paga de volta, dividida entre carteiras ativas por volume de 30 dias e nível (Bronze a Platinum). O indexador de rebates calcula as parcelas e um proponente de lote Safe faz o pagamento.
- Indicações. Gere um código, compartilhe
https://swap.ophis.fi/?ref=YOURCODEe ganhe 8% da taxa base verificada que a Ophis mantém em negociações feitas por suas indicações, paga mensalmente em WETH.
Números completos e a escada de níveis: docs.ophis.fi/fees e docs.ophis.fi/affiliate.
Segurança
Consulte SECURITY.md para a política de divulgação, endereços
canônicos de contratos, o destinatário da taxa de parceiro e o modelo de governança, componentes
no escopo e histórico de auditoria.
Licença
GPL-3.0, herdada do CoW Protocol upstream.