Setting Up Per-Client MetaVaults

MetaVaults are a special kind of Vault. They don't run validators themselves — instead, they accept deposits and route them to underlying sub-Vaults that handle the validator operations.
One common use case for this architecture is the per-client setup: a single regular Vault runs all the validators, and a separate MetaVault is created for each client. Clients deposit into their own MetaVault, and the MetaVault contract routes ETH to the regular Vault for staking. Benefits of this setup:
Isolated funds — each client's deposits sit in their own contract with its own state.
Per-client fees — set a different fee on each MetaVault.
Higher APY — concentrating validators in a single Vault increases the chance of being selected for block proposals.
More stable APY — in a large pool, individual validator exits have minimal impact on overall APY.
Simpler management — one validator fleet to manage, regardless of how many clients you onboard.
This guide walks you through every step to deploy this setup.
Step 1: Create the Regular Vault
The regular Vault is the engine — it runs all the validators and holds the staked ETH. Create it with:
0% fee — fees are charged at the MetaVault level, not here.
Private access — only your clients' MetaVaults can deposit.
See the Create Regular Vault guide for the full walkthrough. The Vault must have at least one registered validator before it can be used as a sub-Vault.
Step 2: Create a Private MetaVault per Client
Each client gets their own MetaVault with its own fee and private access — so only that client can deposit. See the Create MetaVault guide — the process is similar to creating a regular Vault.
💡 You can also spin up a single public MetaVault with a default fee for retail clients who don't need a dedicated setup.
Step 3: Whitelist Each MetaVault in the Regular Vault
Since the regular Vault is private, every client MetaVault must be whitelisted in the Regular Vault before it can deposit.
Go to the Operate page and open your regular Vault.
Click Vault access, then Add address, and paste the MetaVault's contract address.
Repeat for every client’s MetaVault.
Click Save and confirm the transaction in your wallet.
Step 4: Connect the Regular Vault as a Sub-Vault
Now link each MetaVault to the regular Vault so it knows where to route deposits:
Go to the Operate page and open the client's MetaVault.
Click Sub-vaults.
Paste the regular Vault's address or select it from the dropdown, then confirm.
Repeat for every client MetaVault. Once confirmed, the regular Vault appears in each MetaVault's sub-Vault list.
Step 5: Whitelist the Client in Their MetaVault
Add the client's wallet address to their MetaVault's whitelist so they can deposit.
Go to the Operate page and open the client's MetaVault.
Click Vault access, then Add address, and paste the client's wallet address.
Click Save and confirm the transaction in your wallet.
Step 6: Run the Operator Service
The Operator Service is open-source software developed by StakeWise that automates most Vault operations. For MetaVaults, the process-meta-vaults command keeps things in sync with the sub-Vaults — forwarding deposits, harvesting rewards, and processing withdrawals. No validator keys are needed here; all validator management is handled by the regular Vault's operator.
See the Operate MetaVault guide for installation, wallet setup, and the process-meta-vaults command and its optional flags.
That's it — your per-client setup is live. Each client deposits into their own MetaVault, the Operator Service routes their ETH down to the shared regular Vault, and rewards accumulate automatically. To onboard a new client, just repeat Steps 2–5.


