> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting up earn

> Deploy a fee wrapper and configure your vault in the Privy Dashboard.

Your app configures earn settings from the [Privy Dashboard](https://dashboard.privy.io). Navigate to **Wallet infrastructure > Earn** to deploy a fee wrapper and retrieve a vault ID.

## Prerequisites

* A Privy app with [embedded wallets](/wallets/overview) configured
* API credentials (your app ID and app secret)
* A [webhook endpoint](/api-reference/webhooks/overview) registered in the Privy Dashboard (recommended)

## Deploy a fee wrapper

Open the **Wallet infrastructure > Earn** page in the [Privy Dashboard](https://dashboard.privy.io) and configure a fee wrapper. During setup, your app selects:

1. A Morpho vault to allocate assets into
2. The percentage of generated yield your app receives
3. An admin wallet to claim fees and manage the vault configuration

<AccordionGroup>
  <Accordion title="Using an external wallet as an admin wallet (advanced)">
    The admin wallet must sign onchain transactions to manage the vault and claim fees. Exchange
    wallets, cold storage, and other non-signing wallets do not work. Privy cannot reassign the
    admin wallet after creation.
  </Accordion>

  <Accordion title="Updating the fee wrapper configuration (advanced)">
    Privy assigns all fee wrapper roles to the admin wallet. Developers can update fee wrapper
    configurations in the future. Learn more about fee wrapper roles
    [here](https://docs.morpho.org/curate/concepts/roles/). Contact
    [sales@privy.io](mailto:sales@privy.io) to change the fee wrapper configuration.
  </Accordion>
</AccordionGroup>

<Warning title="Secure the admin wallet before production">
  Privy-generated admin wallets have no owner by default and are authorized by your app secret
  alone. [Assign an authorization key](/controls/authorization-keys/using-owners/assign) to require
  a second factor. See the [security checklist](/security/implementation-guide/security-checklist)
  for more details.
</Warning>

## Copy the vault ID

After setup, Privy provides a unique `vault_id` for the vault. Copy this value — all deposit and withdraw API calls require it.

To verify the vault is live, query its details with the [get vault details](/api-reference/wallets/earn/get-vault-details) endpoint:

```bash theme={"system"}
curl https://auth.privy.io/api/v1/earn/ethereum/vaults/{vault_id} \
  -H "privy-app-id: <your-app-id>" \
  -H "Authorization: Basic <credentials>"
```

## Next steps

<Card title="Deposit funds" icon="arrow-down-to-bracket" href="/wallets/actions/earn/deposit" arrow>
  Deposit assets from a wallet into a yield vault.
</Card>
