Adapter Integratees

In order to exchange some of a fund's assets for other assets, an adapter generally integrates with one or more "integratees," i.e., endpoints at which to interact with a defi protocol such as Kyber, Uniswap, Compound, etc.

AaveAdapter

Integrates with Aave lending via aTokens.

Docs: https://docs.aave.com/developers/the-core-protocol/atokens

Mainnet contracts:

  • LendingPoolAddressesProvider: 0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5

Functions and considerations:

  • lend() - None

  • redeem() - None

AlphaHomoraV1Adapter

Integrates with Alpha Homora v1 lending via ibETH.

Docs: https://github.com/AlphaFinanceLab/alphahomora/blob/master/contracts/5/Bank.sol

Mainnet contracts:

  • Bank (ibETH): 0x67B66C99D3Eb37Fa76Aa3Ed1ff33E8e39F0b9c7A

Functions and considerations:

  • lend() - None

  • redeem() - None

ChaiAdapter

Integrates with Chai token.

Docs: https://github.com/dapphub/chai

Mainnet contracts:

  • Chai: 0x06AF07097C9Eeb7fD685c692751D5C66dB49c215

Functions and considerations:

  • lend() - None

  • redeem() - None

CompoundAdapter

Integrates with Compound Finance's cTokens. Each cToken is its own integratee.

Docs: https://compound.finance/docs

Mainnet contracts:

  • cBAT : 0x6c8c6b02e7b2be14d4fa6022dfd6d75921d90e4e

  • cCOMP: 0x70e36f6bf80a52b3b46b3af8e106cc0ed743e8e4

  • cDAI: 0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643

  • cETH: 0x4ddc2d193948926d02f9b1fe9e1daa0718270ed5

  • cREP: 0x158079ee67fce2f58472a96584a73c7ab9ac95c1

  • cUNI: 0x35A18000230DA775CAc24873d00Ff85BccdeD550

  • cUSDC: 0x39aa39c021dfbae8fac545936693ac917d5e7563

  • cZRX: 0xb3319f5d18bc0d84dd1b4825dcde5d5f7266d407

Functions and considerations:

  • lend() - fund receives cToken , which triggers the VaultProxy to start accumulating COMP based on the amount lent. COMP is claimable natively on Compound on behalf of the fund (by any user)

  • redeem() - None

KyberAdapter

Integrates with Kyber Network via the KyberNetworkProxy.

Docs: https://developer.kyber.network/docs/Start/

Mainnet contracts:

  • KyberNetworkProxy : 0x9AAb3f75489902f3a48495025729a0AF77d4b11e

Functions and considerations:

  • takeOrder() - None

ParaswapAdapter

Integrates with Paraswap via the AugustusSwapper. Incorporates asset approvals via the TokenTransferProxy.

Docs: https://etherscan.io/address/0x9509665d015bfe3c77aa5ad6ca20c8afa1d98989#code

Mainnet contracts:

  • AugustusSwapper: 0x9509665d015Bfe3C77AA5ad6Ca20C8Afa1d98989

  • TokenTransferProxy: 0x0A87c89B5007ff406Ab5280aBdD80fC495ec238e

Functions and considerations:

  • takeOrder() - None

SynthetixAdapter

Integrates with Synthetix via SNX.

Docs: https://docs.synthetix.io/

Mainnet contracts:

  • SNX: 0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F

Functions and considerations:

  • takeOrder() - Synthetix gives the incoming asset of the trade a provisional "best guess" balance until it reaches finality, which is after the Synthetix-defined "waiting period" (currently 3 minutes) has expired. The final balance can be +/- the provisional balance.

TrackedAssetsAdapter

Does not integrate with any external contracts.

It only serves to add tracked assets to a fund in a manner that subjects the additional to policy management.

Functions and considerations:

addTrackedAssets() - None

UniswapV2Adapter

Integrates with UniswapV2 for trading and for liquidity provision and redemption.

Docs: https://uniswap.org/docs/v2/

Mainnet contracts:

  • UniswapV2Factory: 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f

  • UniswapV2Router2: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

Functions and considerations:

  • takeOrder() - None

  • lend() - None

  • redeem() - None

ZeroExV2Adapter

Integrates with the 0x Protocol.

Docs: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md

Mainnet contracts:

  • Exchange: 0x080bf510fcbf18b91105470639e9561022937712

  • ERC20Proxy: 0x95e6f48254609a6ee006f7d493c8e5fb97094cef

Functions and considerations:

  • takeOrder() - Left unchecked, the 0x Protocol allows filling any trade created by any user, irrespective of whether the resulting value is beneficial for the fund. This adapter method is limited to makers approved by the Enzyme Council to mitigate this issue.