> ## Documentation Index
> Fetch the complete documentation index at: https://docs.endstate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# wallet.vault

> Signs the owner's approval to vault the tapped item with the vault canVault named, and opens the vault request with the tap session.

```ts theme={null}
vault(input: { session: TapSession; vaultId: string }): Promise<VaultRequest>
```

Asks the Endstate wallet frame to sign the owner's approval for `vaultId`, then
opens the request with `session.vaultRequests.create`. Endstate builds the
approval from the vault the brand allows, so the page names only the vault id
[`eligibility()`](https://docs.endstate.io/sdks/core/reference/session-vaultrequests/eligibility)
returned. The request reads `pending` until the vault confirms it has the item.

Rejects with `vault.not_permitted` when the brand does not allow that vault,
with `vault.in_progress` when the item already has an open request, with
`auth.forbidden` when this wallet does not hold the item, with `wallet.timeout`
when the wallet did not sign within `timeouts.signMs` (15 seconds by default),
and with `wallet.destroyed` if the wallet has been destroyed. Nothing is opened
when the signature fails.

## Example

```ts theme={null}
await wallet.ready();
const { vaultable, vault } = await session.vaultRequests.eligibility();
if (vaultable && vault) {
  const request = await wallet.vault({ session, vaultId: vault.id });
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.