> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dzap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# How DZap Core Works

> Routing, quoting, fees, and execution under the hood.

## The routing engine

For every quote request, Core's pathfinder evaluates candidate routes across:

* **DEX aggregators** — ParaSwap, OKX, 1inch, Uniswap, KyberSwap, and more
* **Bridges** — Across, Mayan, Allbridge, Chainflip, Orbiter, deBridge, Hop, ...
* **Direct DEXs** — when an aggregator-of-aggregators path beats the aggregator itself

Routes are scored on **net output amount**, after subtracting:

1. Provider fees (DEX/bridge fees built into the route)
2. DZap protocol fee (where applicable)
3. Estimated gas (converted to source-token equivalents)
4. Slippage tolerance you specify

The top-N routes come back ranked. You pick one.

## Fee model

DZap charges a small protocol fee on volume routed through the aggregator. Two characteristics:

* **Transparent** — surfaced in every quote response under `fee`.
* **No hidden spread** — the route's price reflects the underlying provider's price; DZap does not add slippage on top.

For the current fee schedule, see the [App settings page](https://app.dzap.io) or contact partnerships.

## MEV and execution risk

Core integrates with private-mempool / MEV-protected paths where available (Flashbots, MEV-Blocker, OKX private route). When such a path is faster or comparable, Core prefers it.

For high-value swaps, you can also:

* Set a tighter `slippage` value to fail fast on adverse fills.
* Use the [`tradeGasless`](/sdk/intents) variant to sign an intent that's matched by solvers off-chain.

## Same-chain vs cross-chain

| Same-chain swap         | Cross-chain bridge                                          |
| ----------------------- | ----------------------------------------------------------- |
| One transaction         | One transaction (source) + relayer settlement (destination) |
| Settlement: \~seconds   | Settlement: seconds → minutes (depends on bridge)           |
| Status: confirm tx hash | Status: poll `/v1/status` with `srcChainId-txHash`          |

## When routing isn't enough

If your flow is multi-step (swap → bridge → LP-deposit), use **DZap Fuse** instead. It bundles steps into a single user-facing signature. See [Fuse Overview](/products/dzap-fuse/overview).
