> For the complete documentation index, see [llms.txt](https://docs.venn.build/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.venn.build/venn-network/getting-started/safe-guard/bypass-mechanism.md).

# Bypass Mechanism

Bypass Mechanism Purpose

The bypass functionality enables you to execute transactions that don't meet the normal Venn Guard validation requirements when:

* Emergency situations require actions that don't conform to standard rules
* Technical issues prevent normal transaction patterns
* Unanticipated scenarios arise that were unknown during the initial guard setup

***

## How It Works

The bypass mechanism uses a **timelock approach**:

1. Safe owners propose and sign a transaction
2. A bypass request is submitted with signatures meeting the Safe threshold
3. After a waiting period (set once when the guard is deployed and configurable for up to 7 days), the transaction can be executed

This provides a security balance - allowing flexibility while preventing the immediate execution of potentially high-risk transactions.

***

## Select a Bypass Path

<details>

<summary>Bypass via Venn UI (Recommended)</summary>

{% hint style="info" %}
**Prefer a no-code path?** You can complete the bypass flow using a dedicated UI - no scripts or Etherscan interaction needed.
{% endhint %}

#### Prerequisites

* Venn Guard is installed on your Safe.
* You’re connected with a Safe owner wallet to the [Venn UI](https://explorer.venn.build/toolkit/venn-safe-guard).

#### Steps:&#x20;

1. **Open the Venn platform** and navigate to the [Guard Dashboard](https://explorer.venn.build/toolkit/venn-safe-guard).
2. **Create or import the transaction:**\
   • Build the transaction in Venn’s Tx Builder, or\
   • Upload an existing transaction to Venn, or\
   • Use the Send Tokens page for simple transfers.
3. **Select transaction type = Bypass**\
   In the Venn UI **(**&#x62;efore you sign the transaction), select the transaction type as <kbd>Bypass</kbd>.
4. **Navigate to the** [**Bypass page**](https://explorer.venn.build/toolkit/venn-safe-guard/bypass-guard)**,** and complete these steps:

* **Signers confirmations**: Other owners sign the transaction as they normally would in the Safe interface.
* **Send Bypass Transaction**: Once the threshold is met, you can send the Bypass Transaction.
* **Wait for the timelock countdown to finish**.
* **Execute the Transaction** once the timelock finishes.

</details>

<details>

<summary>Bypass via Direct Contract Calls (Programmatic)</summary>

#### Step 1: Create and Sign the Transaction

Create the transaction you want to bypass through the Safe UI:

* Specify the transaction details (recipient, value, data, etc.)
* Have the required number of owners sign it

{% hint style="warning" %}
&#x20;**Important**: Don't execute the transaction yet - keep it in the transaction queue by selecting:\ <kbd>No, later</kbd> option, and then you can sign the transaction.
{% endhint %}

#### Step 2: Collect Required Signatures

* Ensure enough Safe owners have signed the transaction to meet the Safe's threshold requirement.
* Signers can add their signature just as they normally would - through the Safe UI, or via API integration with the Safe Transaction Service.

#### Step 3: Submit Bypass Request

* Call the ⁠`bypassGuard()` function on the VennGuard contract with the following parameters copied from the queued transaction:

{% hint style="success" %}
Tip: You can find the address of the guard from the Safe UI under **Settings --> Modules**
{% endhint %}

<table data-header-hidden data-full-width="false"><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Parameter</strong></td><td valign="top"><strong>Description</strong></td><td valign="top"><strong>Where to Find It</strong></td></tr><tr><td valign="top">to</td><td valign="top">Destination address</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">value</td><td valign="top">ETH amount (in wei)</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">data</td><td valign="top">Transaction calldata</td><td valign="top">Transaction details in Safe UI (0x for no data)</td></tr><tr><td valign="top">operation</td><td valign="top">Call type (0=Call, 1=DelegateCall)</td><td valign="top">Usually 0 (Call)</td></tr><tr><td valign="top">safeTxGas</td><td valign="top">Gas for the Safe transaction</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">baseGas</td><td valign="top">Base gas amount</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">gasPrice</td><td valign="top">Gas price for the transaction</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">gasToken</td><td valign="top">Token used for gas payment</td><td valign="top">Transaction details in Safe UI (0x0 for ETH)</td></tr><tr><td valign="top">refundReceiver</td><td valign="top">Address to receive gas refund</td><td valign="top">Transaction details in Safe UI</td></tr><tr><td valign="top">signatures</td><td valign="top">Collected owner signatures</td><td valign="top">Transaction details in Safe UI</td></tr></tbody></table>

* To send this `bypassGuard()`transaction, you could either use Etherscan's Write Contract functionality or write a custom script interacting with the guard contract.

#### Step 4: Wait for the Time-Lock Period

After submitting the bypass request, you must wait for the configured ⁠`bypassGuardWaitTime` to pass. This period is set during guard initialization, cannot be changed afterward, and cannot exceed 7 days.

#### Step 5: Execute the Transaction

Once the waiting period has elapsed:

1. Return to the Safe UI
2. Find the queued transaction
3. Execute it normally

{% hint style="success" %}
The guard will now recognize it as a bypassed transaction and allow execution.
{% endhint %}

#### Troubleshooting

<table data-header-hidden data-full-width="false"><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Issue</strong></td><td valign="top"><strong>Solution</strong></td></tr><tr><td valign="top">Error: <code>bypassGuard already called</code></td><td valign="top">A bypass request has already been submitted for this transaction. You may proceed to execute the transaction as normal</td></tr><tr><td valign="top">Transaction still fails after waiting</td><td valign="top">Verify the wait time has fully elapsed and the bypass request transaction parameters exactly match the proposed transaction parameters</td></tr><tr><td valign="top">Signatures rejected</td><td valign="top">Ensure signatures meet the Safe's threshold and are properly formatted</td></tr></tbody></table>

#### Emitted Events

The bypass mechanism emits the following events:

<table><thead><tr><th>Event</th><th>Signature</th><th>Description</th></tr></thead><tbody><tr><td><strong>Bypass Guard</strong></td><td><pre class="language-solidity"><code class="lang-solidity">BypassGuard(
   bytes32 safeTxHash,
   uint256 initTime
)
</code></pre></td><td>Emitted when a <strong>Bypass Request</strong> transaction was submitted to the guard <em>(see</em> <a href="#step-3-submit-bypass-request"><em>Step 3</em></a> <em>above)</em></td></tr><tr><td><strong>Transaction Bypassed</strong></td><td><pre class="language-solidity"><code class="lang-solidity">TransactionBypassed(
    bytes32 safeTxHash
)
</code></pre></td><td>Emitted when a <strong>Bypass Transaction</strong> was <strong>Executed</strong> on chain <em>(see</em> <a href="#step-5-execute-the-transaction"><em>Step 5</em></a> <em>above)</em></td></tr></tbody></table>

</details>

***

## Technical Details

The bypass mechanism works through these key processes:

**Transaction Identification**\
The guard calculates a unique hash for each transaction based on its parameters

**Bypass Registry**\
Stores the timestamp when a bypass was initiated for each transaction hash

**Time Verification**\
During transaction execution, the guard checks if:

1. The transaction has a registered bypass request
2. The required wait time has elapsed since the bypass was initiated

***

## Security Considerations

* The bypass mechanism requires signatures meeting the Safe's threshold
* The mandatory waiting period provides time to detect and react to unauthorized bypass attempts
* Safe owners should be notified when bypass requests are submitted
* Monitor bypass requests carefully - they circumvent normal security controls
* Consider setting a longer wait time for higher-value Safes

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.venn.build/venn-network/getting-started/safe-guard/bypass-mechanism.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.
