Description
In _create_single_rwa_vault, the vault's admin field in InitParams is always set to get_admin(e) — the factory's admin. There is no way for the factory caller to specify a different admin for a newly deployed vault. This means:
- Every vault is controlled by the same admin address
- The factory admin has unilateral power over all deployed vaults
- If different teams/operators need independent vaults with separate governance, they cannot use this factory
- A compromised factory admin compromises every vault simultaneously
Why This Matters
In a multi-tenant RWA platform, different asset managers should have independent admin control over their vaults. Centralizing all vault admin under the factory admin creates a single point of failure and limits the protocol's utility.
Requirements
- Add an optional
vault_admin: Address field to CreateVaultParams and BatchVaultParams
- In
_create_single_rwa_vault: use vault_admin if provided, otherwise fall back to get_admin(e)
- For
create_single_rwa_vault (simple variant), add an admin parameter or default to factory admin
- Similarly allow per-vault
zkme_verifier and cooperator overrides (currently hardcoded to factory defaults)
- The factory admin should still be able to set vault status in the registry (this is factory-level, not vault-level)
- Emit the actual vault admin in the
VaultCreated event
Key Files
Definition of Done
Description
In
_create_single_rwa_vault, the vault'sadminfield inInitParamsis always set toget_admin(e)— the factory's admin. There is no way for the factory caller to specify a different admin for a newly deployed vault. This means:Why This Matters
In a multi-tenant RWA platform, different asset managers should have independent admin control over their vaults. Centralizing all vault admin under the factory admin creates a single point of failure and limits the protocol's utility.
Requirements
vault_admin: Addressfield toCreateVaultParamsandBatchVaultParams_create_single_rwa_vault: usevault_adminif provided, otherwise fall back toget_admin(e)create_single_rwa_vault(simple variant), add anadminparameter or default to factory adminzkme_verifierandcooperatoroverrides (currently hardcoded to factory defaults)VaultCreatedeventKey Files
_create_single_rwa_vault(~L350),create_single_rwa_vault,create_single_rwa_vault_fullCreateVaultParams,BatchVaultParamsDefinition of Done
zkme_verifierandcooperatoroverrides supported