What is Earn
Earn connects Turnkey wallets to ERC-4626 yield vaults. The vaults are deployed and operated by independent third-party protocols; Turnkey provides the API infrastructure to interact with them but does not operate, manage, or guarantee them. Morpho vaults and Aave v3 reserves are supported today. Users don’t deposit into vaults directly. They deposit into a fee wrapper, a smart contract that holds the position in the underlying vault. A vault may be enabled via either the dashboard or the API. Once you enable a vault, a wrapper is automatically deployed with your fee parameters. The wrapper collects fees as yield accrues. Fees come out of yield only, never principal, and users never sign a separate fee transaction. A wrapper is deployed once per vault and fee configuration. After that, deposits, withdrawals, and position queries are each a single API call. Important: If your application presents Earn functionality to end users, you are responsible for disclosing that: (1) yield is generated by independent third-party DeFi protocols and not by your application or by Turnkey; (2) deposited assets are subject to risks including smart-contract risk, liquidity risk, and potential loss of principal; (3) yield is variable and not guaranteed; and (4) the user is directing the deposit action and retains control of their assets. Do not claim or imply that yield is generated by your application or by Turnkey. Depending on your jurisdiction and the nature of the assets involved, additional regulatory disclosures may apply. Turnkey provides non-custodial developer infrastructure for wallet and key management, transaction construction, and signing. Turnkey does not select, recommend, or curate assets or vaults for end users, does not take custody or control of end-user assets, and does not exercise discretion over any transaction. Every deposit and withdrawal is initiated at the express direction of the party controlling the wallet (an end user of your application, or your own organization where it transacts for its own account). You, and not Turnkey, are responsible for determining whether any digital asset is permissible for your end users to transact with in any applicable jurisdiction, and for obtaining and maintaining any license, registration, or authorization your activities require. Turnkey makes no representations regarding the legal or regulatory status of any asset or vault. Responsibility and liability as between you and Turnkey are governed by your agreement with Turnkey.How it works
- Query
list_earn_vaultsfor the vaults available for an asset, with live TVL and APY. - Run
earn_deploy_wrapperonce per vault to enable it for your organization and set your fee. Turnkey pays the deployment gas. - Call
earn_depositto initiate a transfer of assets from a wallet into the vault. - Poll the matching status endpoint until the transaction confirms. Deposits, withdrawals, and deployments all confirm asynchronously.
- Query
list_earn_positionsfor a wallet’s current value and lifetime totals. - Call
earn_withdrawfor a partial amount or the full position.
Supported protocols and chains
Earn is EVM-only in V1. The vault catalog only includes vaults with at least $100k TVL.
Morpho covers every curated vault above the TVL floor.
Aave covers a fixed set of reserves per chain:
Fees
Earn fees are charged only on yield: a percentage of the yield a position earns. Principal is never charged. Two fees apply, both in basis points of gross yield:- Your fee (the “Client Fee”): you set it per wrapper at deploy time (
clientFeeBps), along with the payout wallet (clientFeeWallet, a wallet account owned by your organization). Fees accrue onchain and are released to that wallet when you claim them. - Turnkey’s fee (The “Turnkey fee”): resolved automatically when you deploy. The Turnkey Fee is up to 10% of yield (1,000 bps). Your applicable rate is set in your Order Form or Turnkey’s published pricing, which control over the figures shown here.
grossApy × (1 - totalFeeBps / 10000). The list_earn_enabled_vaults endpoint returns gross APY, net APY, and your fee rate for every wrapper you’ve deployed, along with claimableClientFee: the fee amount accrued to your organization that is actively claimable. Claim it onchain with the claim_earn_fees activity; the claimed amount is paid out to your fee wallet.
Important: The Client Fee and the Turnkey Fee are infrastructure fees charged on yield generated by third-party vault protocols. Neither fee constitutes a fee for investment advice, asset management, or discretionary portfolio allocation. Turnkey does not exercise discretion over how vault assets are deployed, allocated, or managed. All allocation decisions are made by the vault’s curator or governing protocol.
API surface
Earn adds five activities:
and seven queries:
Earn requests are stamped and submitted like any other Turnkey request. See Stamps and Submissions. Full request/response schemas and cURL examples live in the API reference pages linked above. The examples on these pages use cURL and
@turnkey/http’s TurnkeyClient, but generated SDK methods are available in @turnkey/sdk-server: earnDeployWrapper, earnDeposit, earnWithdraw, earnSetWrapperState, claimEarnFees, listEarnVaults, listEarnEnabledVaults, listEarnPositions, and the matching status queries. A runnable end-to-end SDK example lives at examples/defi/with-earn.Explore
Browse the vault catalog
— Discover vaults and check your enabled wrappers.
Deploy a vault wrapper
— Enable a vault and set your fee.
Deposit into a vault
— One transaction, optionally gas-sponsored.
Withdraw from a vault
— Partial or full exit.
Track positions
— Current value, lifetime totals, and yield.
End-to-end example
— Deploy, deposit, and withdraw USDC on Base.