Security
Non-custodial by construction: bounded, signed intents settled on CoW Protocol's audited contracts. This page is the canonical reference for the custody model, audits, and disclosure.
Last updated:
The short version: Ophis never holds keys or funds. A trade is an off-chain EIP-712 order with a hard limit price, signed by your own key and settled in a CoW Protocol batch auction. The settlement contract is CoW's audited GPv2 code, and the fork-specific pieces were reviewed in Ophis's own security audits. Details and links below.
Is Ophis custodial?
No. Ophis is non-custodial. Orders are gasless, off-chain, EIP-712-signed intents; the trader or agent signs with its own key and the keys never leave the signer. An agent signs a bounded capability with a hard limit price, not an arbitrary transaction.
Is Ophis audited?
The core settlement contract is CoW Protocol's audited code, so CoW's settlement audits apply to it directly. Two pieces are Ophis-specific and were reviewed in Ophis's own security audits: a hardened GPv2AllowListAuthentication with a two-step manager transfer, and the partner-fee settlement-buffer handling. Ophis has not yet engaged an external audit firm for the fork-specific pieces.
Is MEV protection guaranteed?
Orders settle through CoW Protocol batch auctions, which are designed to protect trades from MEV such as front-running and sandwiching by settling at a uniform clearing price. An order can never be settled below its signed limit price. Batch-auction settlement mitigates MEV by design; it is not an absolute guarantee against all adversarial conditions.
How should an autonomous agent trade safely?
Build a bounded order with a hard limit price, pin the receiver to the owner, and resolve the per-chain settlement domain via the @ophis/sdk helpers or the MCP list_chains tool before signing. On Optimism, Unichain, and Robinhood Chain the settlement contract lives at a non-canonical address, so signing against CoW's canonical address yields a domain the deployed contract rejects. Set an expiry, and keep signing keys separate from custody of meaningful balances.
How do I report a vulnerability?
Follow the disclosure policy in SECURITY.md in the public repository. Report privately first; do not open a public issue for an exploitable finding.
Sources and links
- Audit references and the fork delta: docs.ophis.fi/audits
- CoW Protocol's settlement contract audits: github.com/cowprotocol/contracts
- Disclosure policy: SECURITY.md
- Agent safety in depth (receiver pinning, domain resolution, spending limits): docs.ophis.fi/ai-agents and the Ophis agent skill
- Which chains are Ophis-operated: supported chains