> ## 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.requestUnvault

> Sends the owner's request to unvault a vaulted item from this wallet. The customer never pays for it.

```ts theme={null}
requestUnvault(requestId: string): Promise<WalletSubmission>
```

Sends the owner's request to unvault the item that vault request `requestId`
vaulted. The wallet fetches the prepared request, sends it with the cost
covered by Endstate, and resolves once the network has included it. The vault
request reads `unvault_waiting` once Endstate sees it, and the waiting period
the brand set for that vault starts. It takes no tap session: the vault holds
the item. Only a wallet that holds the item now can send it.

Nothing completes the unvault from this wallet. When the waiting period has
ended and nothing holds the unvault, the vault records the item's dispatch
with its own tap and Endstate completes it.

Rejects with `submission.not_executable` when an unvault is already under way
or finished, with `unvault.in_progress` while an earlier unvault is still
settling (retry after `error.details.retry_at`), with
`vault.request_not_found` when the id names no vaulted item, with
`auth.forbidden` when this wallet does not hold the item, with
`wallet.sponsorship_unavailable` when the send cannot be covered right now
(nothing was sent), and with `wallet.destroyed` if the wallet has been
destroyed.

Rejects with `wallet.unsupported_operation` when the wallet frame Endstate
runs is older than this SDK and does not know the operation yet. Nothing was
sent. The error's message says to upgrade the SDK, which does not apply here:
the SDK is already the newer side, so retry once the frame is updated.

## Returns

```ts theme={null}
interface WalletSubmission {
  transactionHash: string; // the network transaction that carried it
  address: string;         // the wallet address that sent it
  resourceId: string;      // the vault request id
}
```

## Example

```ts theme={null}
// requestId is the id vault() returned, kept by your server.
await wallet.requestUnvault(requestId);
```

See [Unvault an item](https://docs.endstate.io/sdks/web/unvault.md) for the whole flow.


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