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

# MEV 保护：绕过三明治攻击者

> 选择加入 MEV 保护，将您的 Solana 交易绕过与三明治攻击统计关联的验证器。适用于基本发送、捆绑和 Helius Sender。

<Note>
  **这是一个可选功能。** 默认情况下，MEV 保护是关闭的。您可以通过在端点 URL 中添加 `mev-protect=true` 查询参数来按请求选择加入。
</Note>

## 什么是 MEV 保护？

三明治攻击是一种有害的 MEV 形式，其中一个机器人在您的交易前后运行，使价格对您不利并赚取差价。前后运行不必在同一个区块中进行 — 通过 **宽松夹击**，它们可以跨越多个区块的更长时间窗口。攻击真正依赖于通过不防止夹击的来源访问您的订单流。一旦机器人可以看到您待定的交易，它可以在任何验证器的区块中进行夹击。

实际上，提供订单流的通常是验证器，这些验证器经常在自己的区块中包含夹击以增加他们的奖励。这使他们的区块成为夹击的过度来源。

MEV 保护在路由层减少这种风险。当您选择加入时，Helius 避免将您的交易提交给统计上与夹击活动相关的验证器，因此被夹击的可能性大大降低。

<CardGroup cols={2}>
  <Card title="按请求选择加入" icon="toggle-on">
    默认关闭。在端点 URL 中添加 `mev-protect=true` — 无需更改您的交易或签名逻辑。
  </Card>

  <Card title="适用于所有地方" icon="arrows-split-up-and-left">
    支持基本的 `sendTransaction`，基本的 `sendBundle`，Sender Max 和
    仅限 Sender SWQOS。
  </Card>

  <Card title="数据驱动的路由" icon="chart-line">
    排除在自己的区块或相邻区块中包含夹击的验证器 — 仅在模式具有统计学意义时。
  </Card>

  <Card title="最小的着陆影响" icon="gauge-high">
    只有一小部分总权益被排除，因此对着陆率和延迟的影响有限。
  </Card>
</CardGroup>

## 工作原理

Helius 主动监控已知的三明治机器人，并分析它们的三明治位置。当以下模式之一持续出现时，会对验证者进行标记：

* **在其自身的区块中** — 验证者直接包含三明治交易。
* **在相邻的区块中** — 三明治反复出现在验证者的前后区块中。

为了避免因偶然接近而惩罚验证者，Helius 仅排除那些与三明治活动关联具有**统计显著性**的验证者。这保持了排除集的小而精确，而非广泛阻止股份。

<Steps titleSize="h3">
  <Step title="选择加入">
    将 `mev-protect=true` 添加到你的端点 URL。这仅适用于该请求。
  </Step>

  <Step title="受保护的路由">
    Helius 提交你的交易，同时避免领导者因三明治关联而被标记，使用当前统计显著的排除集。
  </Step>

  <Step title="正常执行">
    你的交易将如常进行 — 只是被三明治的几率大大降低。
  </Step>
</Steps>

## 支持的发送方法

MEV Protect 是一个查询参数，因此可以在不更改请求体的情况下应用于每种发送方法。

| 方法                                                                | 端点                                   | 启用方式                                     |
| ----------------------------------------------------------------- | ------------------------------------ | ---------------------------------------- |
| [Basic `sendTransaction`](/zh/sending-transactions/send-manually) | `https://mainnet.helius-rpc.com`     | `?api-key=YOUR_API_KEY&mev-protect=true` |
| [Basic `sendBundle`](/zh/sending-transactions/send-bundle)        | `https://mainnet.helius-rpc.com`     | `?api-key=YOUR_API_KEY&mev-protect=true` |
| [Sender Max](/zh/sending-transactions/sender-max) (交易和捆绑)         | `https://sender.helius-rpc.com/fast` | `?mev-protect=true`                      |
| [Sender SWQOS-only](/zh/sending-transactions/sender-swqos-only)   | `https://sender.helius-rpc.com/fast` | `?swqos_only=true&mev-protect=true`      |

## 如何启用

将 `mev-protect=true` 附加到你已经使用的端点 URL。使用 `&` 将其与任何其他查询参数 (`api-key`, `swqos_only`, `rebate-address`) 结合。

<Tabs>
  <Tab title="Basic sendTransaction">
    ```bash theme={"system"}
    curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY&mev-protect=true" \
      -X POST \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sendTransaction",
        "params": [
          "BASE64_ENCODED_TRANSACTION",
          { "encoding": "base64", "skipPreflight": true, "maxRetries": 0 }
        ]
      }'
    ```
  </Tab>

  <Tab title="Basic sendBundle">
    ```bash theme={"system"}
    curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY&mev-protect=true" \
      -X POST \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sendBundle",
        "params": [
          ["BASE64_SIGNED_TX_1", "BASE64_SIGNED_TX_2"],
          { "encoding": "base64" }
        ]
      }'
    ```
  </Tab>

  <Tab title="Sender Max">
    ```bash theme={"system"}
    curl "https://sender.helius-rpc.com/fast?mev-protect=true" \
      -X POST \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sendTransaction",
        "params": [
          "BASE64_ENCODED_TRANSACTION",
          { "encoding": "base64", "skipPreflight": true, "maxRetries": 0 }
        ]
      }'
    ```
  </Tab>

  <Tab title="Sender SWQOS-only">
    ```bash theme={"system"}
    curl "https://sender.helius-rpc.com/fast?swqos_only=true&mev-protect=true" \
      -X POST \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sendTransaction",
        "params": [
          "BASE64_ENCODED_TRANSACTION",
          { "encoding": "base64", "skipPreflight": true, "maxRetries": 0 }
        ]
      }'
    ```
  </Tab>
</Tabs>

<Tip>
  MEV Protect 仅改变交易的路由方式。保持现有的小费和优先费用要求——对于 Sender，小费和优先费用仍然是必需的。
</Tip>

## 权衡

排除验证者意味着你的交易可能有稍微更少的领导者来处理。实际上，影响很小：在任何时候只有一小部分的抵押（约 3–4 百万 SOL）被排除，相对于总网络抵押而言只是很小的一部分。对于大多数流程而言，着陆率的减少和增加的延迟可以忽略不计。

<Warning>
  对于每个领导者都很重要的最敏感策略，需要在生产中启用之前，测量特定流程中启用和不启用`mev-protect=true`的着陆率。
</Warning>

## MEV Protect 与交易回扣

这是解决 MEV 不同部分的互补功能：

* **MEV Protect** 是一种防御性路由——它降低了夹心攻击者从你的交易中提取价值的机会。
* **[交易回扣](/zh/sending-transactions/backrun-rebates)** 是进攻性的——它为你支付了交易产生的有利的、交易后回跑 MEV 的一部分。

你可以通过添加两个查询参数在同一请求中选择进入这两者。

## 相关

<CardGroup cols={2}>
  <Card title="Helius Sender" icon="rocket" href="/zh/sending-transactions/sender">
    超低延迟，多路径交易提交，基于小费定价。
  </Card>

  <Card title="交易回扣" icon="coins" href="/zh/sending-transactions/backrun-rebates">
    赚取交易产生的 MEV 的一部分，以 SOL 支付。
  </Card>

  <Card title="发送交易（基础）" icon="paper-plane" href="/zh/sending-transactions/send-manually">
    构建、优化并确认一个具有强大重试循环的`sendTransaction`。
  </Card>

  <Card title="发送捆绑包（基础）" icon="layer-group" href="/zh/sending-transactions/send-bundle">
    通过`sendBundle`进行最多 5 笔交易的原子化、全或无执行。
  </Card>
</CardGroup>
