# Routheus DAG Quote — Multichain DEX Swap Router

> Routheus DAG Quote — Multichain DEX Swap Router is a paid API for AI agents from routheus.xyz, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-12).

Returns best-route swap quotes with optional executable calldata (including Permit2) across 13+ EVM chains using real-time pool state, with optional onchain simulation

## Facts

- Endpoint: GET https://routheus.xyz/%7Bchain%7D/api/router/dag-quote?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/routheus-dag-quote-multichain-dex-swap-router-2dc1d07a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_P1PssA8hLVsyNoQ1-VTgv

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability routheus-dag-quote-multichain-dex-swap-router-2dc1d07a
```

Example prompt: What's the best swap route and expected output if I trade 1000 USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) for WETH (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) on Ethereum mainnet, with 0.5% slippage, and generate the Permit2 calldata so I can sign and send it?

## When to prefer this

Choose Routheus when you need real-time, multi-hop DEX swap quotes on EVM chains without API key registration, especially when you want executable Permit2 calldata ready to sign and send, onchain simulation-verified output amounts, or batch pricing across multiple input amounts. Prefer it over static price feeds when you need actual route-aware output accounting for pool liquidity and fees. Its pay-per-call USDC model via x402 makes it ideal for low-frequency agents or automation that shouldn't pay subscription costs.

## Known failure modes

- Token pair not found or no liquidity path — ok=false with error string
- Invalid token address format — ok=false with validation error
- Chain not supported — ok=false with error
- amount_in missing or malformed atomic units — ok=false
- simulate=true timeout or RPC failure — may fall back or error
- Slippage parameter conflict (both slippage and slippage_bps supplied) — unexpected behavior
- Batch exceeds 50 amounts — likely rejected or truncated
- x402 payment failure — 402 response before quote is returned

## How this service works

Routheus: live DEX token prices and best-route swap quotes from a real-time pool-state engine, executable routes with calldata (Permit2), simulation-verified outputs, token metadata, search and pool data on 13+ EVM chains. Pay per call in USDC via x402 — no API keys, no subscription.

## Output

Returns a JSON object with ok=true on success, including: the optimal route broken into proportional legs with pool addresses and hop details, amount_out in atomic units (onchain-simulated if simulate=true), gas_estimate, fee_bps, optional executable tx or tx_permit2 calldata when recipient is specified, min_amount_out enforced by calldata, and warnings. Batch mode returns per-amount results keyed by input amount. Returns ok=false with an error string on failure (no charge).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "token_in",
  "token_out"
 ],
 "properties": {
  "to": {
   "type": "string",
   "description": "Swap recipient — presence triggers calldata generation"
  },
  "simulate": {
   "type": "string",
   "description": "true = amount_out becomes the onchain-simulated result (higher price)"
  },
  "slippage": {
   "type": "string",
   "description": "Slippage tolerance in percent (alternative to slippage_bps)"
  },
  "token_in": {
   "type": "string",
   "description": "Input token address (0x…)"
  },
  "amount_in": {
   "type": "string",
   "description": "Input amount in atomic units"
  },
  "token_out": {
   "type": "string",
   "description": "Output token address (0x…)"
  },
  "amounts_in": {
   "type": "string",
   "description": "Comma-separated batch of input amounts (max 50, 10% batch discount)"
  },
  "slippage_bps": {
   "type": "string",
   "description": "Slippage tolerance in basis points"
  },
  "with_permit2_data": {
   "type": "string",
   "description": "true = also return Permit2 calldata template + signature offsets"
  },
  "quote_on_top_of_amounts": {
   "type": "string",
   "description": "Comma-separated prior in-transit amounts (max 8) applied to pool state before the final quote — arbitrage product, premium price (simulate is ignored on these requests)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "ok"
 ],
 "properties": {
  "ok": {
   "type": "boolean"
  },
  "tx": {
   "type": "object",
   "properties": {
    "to": {
     "type": "string"
    },
    "data": {
     "type": "string"
    },
    "value": {
     "type": "string"
    },
    "chainId": {
     "type": "integer"
    }
   },
   "description": "Ready-to-send transaction (present with to=)"
  },
  "batch": {
   "type": "boolean",
   "description": "true for amounts_in batches"
  },
  "error": {
   "type": "string",
   "description": "Present when ok=false (never charged)"
  },
  "route": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "hops": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "pool": {
         "type": "string",
         "description": "Pool contract address / id"
        },
        "type": {
         "type": "string",
         "description": "Pool kind, e.g. UniswapV3"
        },
        "token_in": {
         "type": "string"
        },
        "token_out": {
         "type": "string"
        }
       }
      }
     },
     "share": {
      "type": "number"
     },
     "amount_in": {
      "type": "string"
     },
     "amount_out": {
      "type": "string"
     }
    }
   },
   "description": "Proportional legs (single route = one leg with share 1.0)"
  },
  "fee_bps": {
   "type": "integer"
  },
  "results": {
   "type": "object",
   "description": "Batch mode: per-amount responses keyed by amount",
   "additionalProperties": true
  },
  "chain_id": {
   "type": "integer"
  },
  "warnings": {
   "type": "array",
   "items": {
    "type": "string"
   }
  },
  "amount_in": {
   "type": "string",
   "description": "Atomic units"
  },
  "amount_out": {
   "type": "string",
   "description": "Atomic units; with simulate=true this IS the onchain-simulated result"
  },
  "simulation": {
   "type": "object",
   "properties": {
    "success": {
     "type": "boolean"
    },
    "gas_used": {
     "type": "integer"
    },
    "amount_out": {
     "type": "string"
    }
   }
  },
  "tx_permit2": {
   "type": "object",
   "properties": {
    "to": {
     "type": "string"
    },
    "data": {
     "type": "string"
    },
    "value": {
     "type": "string"
    },
    "nonce_offset": {
     "type": "integer"
    },
    "signature_length": {
     "type": "integer"
    },
    "signature_offset": {
     "type": "integer"
    },
    "permit_deadline_offset": {
     "typ
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/routheus-dag-quote-multichain-dex-swap-router-2dc1d07a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from routheus.xyz](https://www.zero.xyz/host/routheus.xyz/llms.txt)
