Evix
A customizable execution layer for on-chain trading — built for participants that care about execution quality, low latency, and reduced order flow exposure.
Why Evix
On-chain trading systems still face two structural problems:
Backend Dependency
Many aggregators and trading terminals rely on external infrastructure to generate routes or execute user flow. This introduces avoidable latency and exposes valuable order flow to third parties.
Stale Pricing
In most systems, the quote is generated before execution. By the time the transaction lands, the market may have moved and the result no longer reflects the best available path.
Evix is designed to eliminate both problems by making execution itself the center of the integration model.
Key Properties
Dedicated Deployments
Each customer receives an isolated Evix deployment per chain. No shared routers, no cross-customer exposure. Your execution environment is yours alone.
Minimal Interface
A single swap() function with six parameters. No routing complexity, no off-chain dependencies. Integrate in minutes, not weeks.
Execution-First Design
Execution happens on-chain with built-in deadline enforcement, slippage protection, and pair-level access control — all verified at the contract level.
Multi-SDK Support
First-class SDKs for TypeScript (viem) and Rust (alloy). Build and execute swaps from any environment.
How It Works
Who Is Evix For
| Audience | Use Case |
|---|---|
| Execution-sensitive traders | HFT participants needing deterministic, low-latency execution |
| Privacy-conscious platforms | Teams that don't want to expose order flow to third-party aggregators |
| MEV-aware integrators | Protocols seeking tighter execution control and reduced MEV leakage |
| Custom infrastructure teams | Organizations needing deployment isolation and chain-specific tuning |
Quick Example
import { EvixClient } from "@inductiv/evix-sdk";
const evix = new EvixClient({
chainId: 8453,
contractAddress: "0x...",
publicClient,
walletClient,
});
// Execute swap — integrator provides their own minAmountOut
const result = await evix.swap({
tokenIn: USDC,
tokenOut: WETH,
amountIn: 1_000_000n,
deadline: BigInt(Math.floor(Date.now() / 1000) + 120),
minAmountOut: 390_000_000_000_000n, // set by integrator
recipient: account.address,
});