DeFi Protocol Integrations
NMT integrates with 8 DeFi protocols across 4 EVM chains. Each protocol is connected at three levels:
- Smart contract module — on-chain execution adapter
- Backend worker — data indexing and valuation
- Frontend adapter — UI transaction encoding and display
Protocol Summary
| Protocol | Category | Chains | Smart Contract | Backend Worker | Frontend Adapter |
|---|---|---|---|---|---|
| Uniswap V2 | DEX | ETH, Base | UniswapV2Module | uniswap_v2 service | lib/defi/uniswap/v2 |
| Uniswap V3 | DEX (CL) | ETH, Base, Arb | UniswapV3Module | uniswap_v3 service | lib/defi/uniswap/v3 |
| Uniswap V4 | DEX (CL) | ETH, Base | (via V3 module) | uniswap_v3 service | lib/defi/uniswap/v4 |
| Aave V3 | Lending | ETH, Base, Arb, Opt | AaveModule | aave service | lib/defi/aave |
| Morpho | Lending | ETH, Base | MorphoModule | morpho service | lib/defi/morpho |
| Yearn | Vaults | ETH | YearnModule | yearn service | lib/defi/yearn |
| Aerodrome | DEX | Base | AerodromeModule | aerodrome service | lib/defi/aerodrome |
| Aero Slipstream | DEX (CL) | Base | (via Aerodrome) | aero_slipstream service | lib/defi/aero-slipstream |
| Cow Protocol | MEV-Protected Swaps | ETH, Base, Arb | CowModule (external) | — | features/transact/services |
| Krystal | Automated LP Vaults | ETH, Base, Arb, Opt | KrystalModule (external) | krystal_api client | lib/defi/krystal |
CL = Concentrated Liquidity
The Earn page showing available pools with APY, TVL, chain, and underlying assets. Filter by chain and protocol.
Integration Depth
Each protocol integration covers:
| Capability | Description |
|---|---|
| Pool discovery | Index available pools, their APYs, TVL, and fee tiers |
| Position tracking | Detect when users open/close positions |
| Valuation | Calculate USD value of positions |
| Transaction encoding | Build calldata for deposits, withdrawals, swaps |
| Permission gating | Enforce per-delegate access via PermissionsManager |
Additional Services
| Service | Purpose |
|---|---|
| Gelato Relay | Gasless/sponsored transactions via RelayModule |
Cow Protocol
Cow Protocol provides MEV-protected swaps using a PRESIGN signing scheme. It has a dedicated CowModule smart contract deployed externally (not in the NMT contracts repo):
| Chain | CowModule Address |
|---|---|
| Ethereum | 0x365485a1Bd944fa155aC2CCfDbC3D56232af3Cc0 |
| Base | 0x34f0d479edAA0AB36B90C755010dE7d7B9571629 |
| Arbitrum | 0x7F1B5929856633Bf59A493f1Ed5FB46a83d2E486 |
How it works: The CowModule calls GPv2Settlement's setPreSignature() to register orders on-chain. Since Safes can't produce ECDSA signatures the way EOAs can, PRESIGN authorizes the order purely by the Safe executing the call. Cow Protocol solvers then match and settle the order off-chain.
Execution flow: Frontend quotes via Cow SDK → builds executeCoWSignOrder() call → bundles through DelegateBundler → Gelato relays → CowModule registers order on GPv2Settlement → Cow solvers fill.
Safe-only: Cow Protocol is only available in Safe mode (not EOA) because it requires the PRESIGN scheme.
Krystal Vaults
Krystal is an automated liquidity management vault protocol that provides concentrated liquidity on Uniswap V3. Vaults automatically rebalance positions to maximize returns. They follow the ERC-4626 standard.
| Chain | KrystalModule Address |
|---|---|
| Ethereum | 0x11844b2bde4f0f4745DffF52CCBF5f4D808B49a1 |
| Base | 0xde229a4F93031624e0F41193aFfF399e1a2DE3D0 |
| Arbitrum | 0x872720ecf3519a10F813e1A476d3b53058cc74fd |
Module operations: executeKrystalDeposit(), executeKrystalWithdraw(), executeKrystalApproval()
Data source: Krystal REST API (api.krystal.app) + on-chain verification via KrystalModule
Note: EOA withdrawals from Krystal vaults are not yet implemented — currently Safe-mode only for withdrawals.