> For the complete documentation index, see [llms.txt](https://docs.satlayer.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.satlayer.xyz/bvs-developers-1/developer-toolbox/satlayer-cli/bvs-directory.md).

# (BVS) Directory

The `directory` subcommand houses commands that interacts with the BVS Directory contract to simplify BVS registration, management and other operations.&#x20;

### reg-bvs

The `reg-bvs` command registers your BVS to the SatLayer BVS directory. The format is

```
satlayer-cli directory bvs-reg <bvs-address>
```

In which:

* **bvs-address** - the address of your BVS contract

### reg-operator

Registers an account as an operator to the BVS Directory.

```
satlayer-cli directory reg-operator <operator-key-name>
```

In which:

* **operator-key-name** - the key to be registered as an operator.

### **dereg-operator**

Deregister an operator from the BVS Directory.

```
satalyer-cli directory dereg-operator <operator-key-name>
```

In which:

* (optional) **operator-key** - the key to be unregistered as an operator.&#x20;

### **update-metadata**

Updates the URI of the BVS.

```
satlayer-cli directory update-metadata <user-key-name> <metadata-uri>
```

In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution
* **metadata-uri** - an URI that will be broadcasted as an event.

### cancel-salt

Cancels a salt of the BVS specified in the configuration file

```
satlayer-cli directory cancel-salt <user-key-name> <salt>
```

In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution
* **salt** - the salt (raw text, not the hash of the salt)

### **transfer-owner**

Transfers the owner of the BVS Directory, specified in the configuration file, to another account.

```
satlayer-cli directory transfer-owner <user-key-name> <owner-address>
```

In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution
* **owner-address - the** address of the new owner

### pause

Pause the BVS, specified in the configuration file

```
satlayer-cli directory pause <user-key-name>
```

In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution

### unpause

Resume the BVS, specified in the configuration file

```
satlayer-cli directory unpause <user-key-name>
```

In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution

### **set-pauser**

Set the address that is allowed to pause the BVS Directory

```
satlayer-cli directory set-pauser <user-key-name> <address>
```

#### In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution
* **address** - the address of the account to become the pauser

### **set-unpauser**

Set the address that is allowed to unpause the BVS Directory

```
satlayer-cli directory set-unpauser <user-key-name> <address>
```

#### In which:

* **user-key-name** - the name of the key in the keyring to use for contract execution
* **address** - the address of the account to become the unpauser

### **get-operator**

Checks if an address is registered as an operator

```
satlayer-cli directory get-operator <address>
```

In which:

* **address** - the address to be checked if is an operator

### **calc-digesthash**

Computes a hash for an BVS, given a salt and expiration. Used as a part of creating a signature with expiration.

```
satlayer-cli directory calc-digesthash <address> <salt> <exipry>
```

In which:

* **address** - the address of the BVS
* **salt** - a string
* **expiry** - UNIX timestamp of the expiration time

{% hint style="info" %}
SatLayer is tracking time with (unsigned) 64bit integers. There's no need to worry about the 2038 problem
{% endhint %}

### is-salt-spent

The `is-salt-spent` command checks if a salt is already used in BVS operation.

```
satalyer-cli directory is-salt-spent <bvs-address> <salt>
```

In which:

* **bvs-address** - the address of your BVS contract
* **salt** - the salt (raw text, not the hash of the salt!)

Results in:

* Prints `true` if salt is spent. Else prints `false`.

For example:

```
❯ satlayer-cli directory is-salt-spent osmo1ltgcuacn8chffqzklag9a9wg0catqpuq8fd9wk salt
false
```

### get-delegationmanager

Queries the address of the delegation manager contract:

```
satlayer-cli directory get-delegationmanager
```

### get-owner

Queries the address of the owner of the BVS, specified in the configuration file

```
satlayer-cli directory get-owner
```

### get-domain-name

Queries domain of the BVS Driver contract (not the metadata URL!)

```
satlayer directory get-domain-name
```

### get-bvsinfo

Queries generic on-chain information of a BVS

```
satlayer directory get-bvsinfo <bvs-hash>
```

In which:

* **bvs-hash** - the hash of the BVS (Not the BVS contract!)
