Earn is currently an Early Access Product. Contact us to enable it for your organization.
When to deploy
Deploy once per vault you want to offer, per fee configuration. Deposits into a vault with no deployed wrapper fail withEARN_SETUP_REQUIRED (see Deposit into a vault). Pick vaults from the vault catalog; the catalog’s enabled flag tells you which vaults your organization has already enabled.
Choose your fee configuration
The deploy intent carries your fee:clientFeeBps: your fee on gross yield, in basis points ("2000"= 20%). Combined with Turnkey’s fee (10% of yield by default), the total cannot exceed 5,000 bps (50% of yield); deployments above the cap are rejected.clientFeeWallet: the address that receives your fee payouts onchain. It must be a wallet account owned by your organization; addresses outside your org are rejected.
Submit the activity
Submit anACTIVITY_TYPE_EARN_DEPLOY_WRAPPER activity with the vault’s address (from the catalog), its CAIP-2 chain, and your fee configuration. See Deploy Earn wrapper in the API reference for the full request/response schema and cURL example.
The activity result returns the deployed addresses immediately; they are derived deterministically before the transaction confirms:
wrapperAddress: the deposit target for this vault.splitterAddress: the payment splitter that distributes fees between you and Turnkey.deployRequestId: poll handle for the deployment transaction.
Poll deployment status
The activity completes when the deployment transaction is broadcast, not when it confirms. Pollget_earn_deploy_status with the deployRequestId until it reports COMPLETED before accepting deposits. status is PENDING, COMPLETED, or FAILED; on COMPLETED the response carries the deployTxHash, and on FAILED it includes an error field with the reason.
Gas and idempotency
Wrapper deployment gas costs (roughly 7.1M gas per deployment) are currently covered by Turnkey’s infrastructure and are not charged to you or your users. Deployments are also idempotent: resubmitting the activity with identical parameters re-derives the same wrapper and splitter addresses and skips the broadcast if the contracts already exist, so retries are safe.
Next steps
- Browse the vault catalog to pick vaults to enable
- Deposit into a vault once the deployment is
COMPLETED - Review the fee model