Vibekit, Eliza & LangGraph
ArbiSim Guard integrates natively with the three most popular AI agent frameworks for DeFi. Pick the one you are already using.
Vibekit
Native MCP integration — no extra config
Vibekit is an Avalanche-native agent framework built by Ember. ArbiSim Guard is a first-class safety layer in Vibekit — when you enable ArbiSim, every DeFi action the agent takes is automatically pre-checked before execution.
Supported protocols: GMX, Camelot, Aave, Pendle, TraderJoe, Pangolin, Benqi.
import { createAgent } from '@vibekit/core';
import { arbisimGuard } from '@vibekit/arbisim';
const agent = createAgent({
network: 'avalanche-mainnet',
safetyLayer: arbisimGuard({
apiKey: process.env.ARBI_API_KEY,
maxSlippage: 2.0,
abortOnReject: true, // agent stops if verdict is REJECTED
}),
});Eliza
MCP plugin — drop-in to any Eliza agent
Eliza is a multi-agent orchestration framework. Add the ArbiSim MCP server to your Eliza agent configuration and every transaction the agent plans will be checked before execution.
{
"name": "my-defi-agent",
"plugins": ["@eliza/mcp"],
"mcpServers": {
"arbisim-guard": {
"command": "node",
"args": ["./gateway/dist/index.js", "--mcp"],
"env": { "GATEWAY_API_KEY": "ask_free_a1b2_..." }
}
}
}The agent can now call preflight_simulate directly from its reasoning loop. If the result is REJECTED, the agent receives the reason and can decide to abort or try an alternative.
LangGraph
Tool node — insert into any graph
In LangGraph, ArbiSim is a tool node that sits between your planning node and your execution node. The graph calls ArbiSim with the planned transaction, reads the verdict, and routes to either execute or abort.
import requests
from langgraph.graph import StateGraph
def check_transaction(state):
resp = requests.post(
"https://arbisim-proxy.rahulpandey-creates.workers.dev/api/v1/simulate",
headers={"X-API-Key": os.environ["ARBI_API_KEY"]},
json={
"network": state["network"],
"agent_address": state["wallet"],
"transactions": state["planned_txs"],
"max_slippage_tolerance": 2.0,
}
).json()
return {**state, "verdict": resp["status"], "checks": resp["checks"]}
def route_on_verdict(state):
return "execute" if state["verdict"] == "APPROVED" else "abort"
graph = StateGraph(AgentState)
graph.add_node("check", check_transaction)
graph.add_conditional_edges("check", route_on_verdict, {"execute": "send_tx", "abort": "report_error"})