# Read Methods

#### Vault Metadata

Retrieve basic configuration for any vault:

```tsx
const name = await client.name({ vault: "0xVaultAddress" });
const symbol = await client.symbol({ vault: "0xVaultAddress" });
const decimals = await client.decimals({ vault: "0xVaultAddress" });
const asset = await client.asset({ vault: "0xVaultAddress" });
```

#### Vault State

Read the current operational state of the vault:

```tsx
const totalAssets = await client.totalAssets({ vault: "0xVaultAddress" });
const unvested = await client.getUnvestedAmount({ vault: "0xVaultAddress" });
const cooldownDuration = await client.cooldownDuration({ vault: "0xVaultAddress" });
const vestingPeriod = await client.vestingPeriod({ vault: "0xVaultAddress" });
```

#### User State

Read a specific user's balance and cooldown status. If `owner` is omitted, the client uses the connected wallet.

```tsx
const balance = await client.balanceOf({
  vault: "0xVaultAddress",
  owner: "0xUserAddress",
});

// Returns { cooldownEnd, lockedAmount }
const cooldownInfo = await client.cooldowns({
  vault: "0xVaultAddress",
  owner: "0xUserAddress",
});
```


---

# 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://city-protocol.gitbook.io/docs/software-development-kit/vault/read-methods.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.
