Provider matrix
| Provider | Capabilities | Key required |
|---|---|---|
defillama | chains/protocols + bridge analytics (bridge list, bridge details) | Route-specific |
aave | lend (read + execution), yield (read + execution), rewards (execution) | No |
morpho | lend (read + execution), yield (read + execution) | No |
kamino | lend, yield (Solana mainnet, read only) | No |
moonwell | lend (read + execution), yield (read + execution) | No |
across | bridge quote + execution | No |
lifi | bridge quote + execution | No |
bungee | bridge quote, swap quote | No (default mode) |
1inch | swap quote | Yes |
uniswap | swap quote | Yes |
tempo | swap quote + execution | No |
taikoswap | swap quote + execution | No |
jupiter | swap quote (Solana) | Optional |
fibrous | swap quote | No |
defi-cli are provider constraints, not CLI monetization/auth. If a provider endpoint requires credentials, the corresponding command requires that provider key.
Execution auth
See Execution & Signing for the full signing backend reference. In brief: plan with--wallet (OWS, recommended) or --from-address (local signer). Tempo swap planning always uses --from-address with --signer tempo for submit.
Key requirements by route
swap quote --provider 1inch->DEFI_1INCH_API_KEYswap quote --provider uniswap->DEFI_UNISWAP_API_KEYswap quote --provider jupiter->DEFI_JUPITER_API_KEY(optional for higher limits)chains assets,bridge list,bridge details->DEFI_DEFILLAMA_API_KEY
DEFI_BUNGEE_API_KEYDEFI_BUNGEE_AFFILIATE
Routing and fallback
- Lending routes by
--provider(aave,morpho,kamino,moonwell) using direct adapters only. lend positionscurrently supports--provider aave|morpho|moonwell.yield positionscurrently supports--providers aave,morpho,moonwell.yield opportunitiesaggregates direct providers and accepts--providers aave,morpho,kamino,moonwell.yield historyuses the same direct providers and accepts--providers aave,morpho,kamino.bridge quoteandswap quoterequire explicit--provider; there are no implicit provider defaults.- Execution commands (
plan,run,submit,status) require--providerfor multi-provider surfaces. swap quote --type exact-outputis currently supported byuniswapandtempo;swap plan --type exact-outputis currently supported bytempo.- Provider/chain-family mismatches fail fast with
unsupportederrors (for example--provider jupiteron EVM chains).
Data caveats
- Morpho can surface very high APY in tiny markets. Use
--min-tvl-usd. - Kamino currently supports Solana mainnet only.
- Solana devnet/testnet and custom Solana CAIP-2 references are unsupported.
- Bungee quote support is chain + token dependent.
- Fibrous currently supports
base,hyperevm, andcitrea(monadtemporarily disabled). - Bungee quote requests use deterministic placeholder sender/receiver addresses for quote-only resolution (
0x000...001). - Across may omit native USD fee fields for some routes; when missing,
estimated_fee_usdcan fall back to a stable-asset approximation while token-unit fees remain infee_breakdown. - Tempo Stablecoin DEX currently supports USD-denominated TIP-20 assets only; supported pairs are auto-routed on-chain through quote-token relationships.
- Tempo DEX swap execution settles to the caller;
--recipientmust match--from-address(or be omitted). actions estimatereturns fee-token-denominated estimates for Tempo actions (includesfee_unitandfee_tokenfields).--signer tempoenables agent wallet support via the Tempo CLI (tempo wallet -j whoami), with delegated access keys and expiry checks. Requires the Tempo CLI installed.- Local signing is available for actions planned with
--from-address. See Execution & Signing. - Moonwell uses on-chain RPC reads (no API key); supported on Base and Optimism. Execution targets mToken contracts (Compound v2 style); use
--pool-addressto specify the mToken directly or let auto-resolution match by underlying asset. Moonwell does not support--on-behalf-of. - Moonwell’s mWETH market auto-unwraps to native ETH on borrow/withdraw and may expect native ETH for supply/repay. The CLI planner uses the standard ERC-20 path (
approve+ call withvalue=0), so callers must handle ETH/WETH wrapping externally.

