# Self-Relaying Transactions

{% hint style="info" %}
You do not have to always use a community Relayer. You can self-relay transactions with any wallet as long as the relaying wallet has sufficient gas to pay the network fee. Self-relaying may be useful in some cases such as on the rare occasions when Relayers are unavailable.
{% endhint %}

### Prerequisites

* You have either [created](/terminal-wallet/first-time-setup/creating-a-new-wallet.md) or [imported](/terminal-wallet/first-time-setup/import-an-existing-wallet.md) at least 2 wallets
* Shielded assets held in a 0zk address: [Shielding Assets](/terminal-wallet/transactions/shielding-assets.md)
* Relaying wallet has sufficient network base token to pay for the transaction

### Self-Relaying Walkthrough

{% hint style="info" %}
The example below shows a self-relay for an unshield, however you can self-relay for any possible private transaction in Terminal Wallet
{% endhint %}

#### 1.  At the relaying stage of any transaction, press Enter on 'Self Sign Transaction Self-Relay'

<figure><img src="/files/KgZ0jTjpbVP1wNWhdkgg" alt=""><figcaption></figcaption></figure>

#### 2. Select from list of wallets in Terminal Wallet

<figure><img src="/files/UpJzNMYdacCVcdYMTpP6" alt=""><figcaption></figcaption></figure>

Select a wallet that isn't making the transaction.

#### 3.  Press Enter on 'Generate Proof' to continue

<figure><img src="/files/uNuznILJveuDH34aCFQa" alt=""><figcaption></figcaption></figure>

#### 4. Wait for proof generation&#x20;

<figure><img src="/files/ma2drvqp00schyPdkfdg" alt=""><figcaption></figcaption></figure>

#### 5. Press Enter on 'Send Transaction'

<figure><img src="/files/70REgYrBf3818V61YYdQ" alt=""><figcaption></figcaption></figure>

#### 6. Wait for transaction confirmation.

<figure><img src="/files/qk0XyZNA2QD7HWd0QaYZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EIerAf1xEfCEnRxhLAir" alt=""><figcaption></figcaption></figure>


---

# 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://terminalwallet-cli.gitbook.io/terminal-wallet/transactions/self-relaying-transactions.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.
