Learn from Existing Adapters
This guide provides deep walkthroughs of each adapter, explaining how we reasoned about the design decisions and how to modify them for your protocol.
Available Adapters
| Adapter | Protocol Type | Trackables | Best For |
|---|---|---|---|
| ERC20 Holdings | Token | token (position) | Simple token tracking |
| Uniswap V2 | DEX | swap (action), lp (position) | AMM DEXes |
| Uniswap V3 | DEX | swap (action), lp (position) | Concentrated liquidity |
| Morpho Markets | Lending | morphoblue (position) | Lending markets |
| Morpho Vaults V1 | Vaults | vaults (position), createMetaMorphoFactory (action) | ERC4626-style vaults |
| Morpho Vaults V2 | Vaults | vaults (position), createMetaMorphoFactory (action) | Updated vaults |
Summary: Choosing the Right Pattern
| Protocol Type | Similar To | Trackable Kind | Has assetSelectors? |
|---|---|---|---|
| Token holdings | ERC20 | position | No |
| DEX swaps | UniV2/V3 swap | action | Yes (which token) |
| DEX LP (fungible) | UniV2 lp | position | No |
| DEX LP (NFT) | UniV3 lp | position | No |
| Lending | Morpho Markets | position | Yes (which market) |
| Vaults | Morpho Vaults | position | No |
Quick Decision Tree
Is it a one-time event or ongoing balance?
├── One-time event → kind: 'action'
│ └── Does it involve multiple assets?
│ ├── Yes → Add assetSelectors
│ └── No → params only
└── Ongoing balance → kind: 'position'
└── Does params uniquely identify the asset?
├── Yes → No assetSelectors needed
└── No → Add assetSelectorsBy Protocol Type
Token Tracking
- ERC20 tokens: Use ERC20 Holdings
- ERC721 NFTs: Modify ERC20 Holdings with NFT-specific logic
- ERC1155 multi-tokens: Similar to ERC20, but track by tokenId
DEX / AMM
- Fungible LP tokens (most AMMs): Use Uniswap V2
- NFT LP positions (concentrated liquidity): Use Uniswap V3
Lending Markets
- Isolated markets: Use Morpho Markets
- Aggregated vaults: Use Morpho Vaults V1 or V2
Vaults (ERC4626-style)
- Older MetaMorpho vaults: Use Morpho Vaults V1
- Newer vaults (V2 factory): Use Morpho Vaults V2
Common Forks
| Your Protocol | Based On | Adapter to Fork |
|---|---|---|
| SushiSwap | Uniswap V2 | Uniswap V2 |
| PancakeSwap V2 | Uniswap V2 | Uniswap V2 |
| PancakeSwap V3 | Uniswap V3 | Uniswap V3 |
| Camelot V2 | Uniswap V2 | Uniswap V2 |
| Ichi | Uniswap V3 | Uniswap V3 |
| Aave-style | Morpho Markets | Morpho Markets |
| Yearn-style | Morpho Vaults | Morpho Vaults V1 |