Earn is currently an Early Access Product. Contact us to enable it for your organization.
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 are supported today and Aave support is coming soon. 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.If your application presents Earn functionality to end users, you should clearly disclose that: (1) yield is generated by independent third-party DeFi protocols and do not claim or imply that yield is generated 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 retaining control of their assets. Depending on your jurisdiction and the nature of the assets involved, additional regulatory disclosures may apply.
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.
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).
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.
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.