# Vault Registry

Every piece of executable logic in a MORE Vault lives in a facet, a contract that exposes one or more function selectors. To make those facets discoverable and reviewable, the protocol logs facets in the Vault Registry.

The Vault Registry also includes an array of DAO-approved protocols with which premissioned vaults can interact.

Additionally, the Vault Registry records the protocol fee and the protocol fee recipient for each vault.&#x20;

## Publishing to the registry

Only the DAO can add a facet to the registry. To do so it calls `addFacet(facet, selectors[])`. The transaction records:

* `facet` – the address of the new facet.
* `selectors[]` – array of 4‑byte function identifiers implemented by the facet.

The registry checks if the selector already exists in another facet. If so, the facet author should update the selector to one that does not exist. A facet can expose any selectors, including ones that overlap with core functions or those of other facets.

## Verifying facet & selector integrity

Any user can call `getAllowedFacets()`  or `getFacetSelectors(facet)` on the VaultsFactory contract in order to verify if a facet is DAO-approved and which selectors are included in that facet.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.more.markets/more-vaults/core-concepts/registries/vault-registry.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
