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

# Apex MEV Koruması

> OrbitFlare Apex'in Shield engelleme listesindeki liderleri atlaması için mevProtect'i açın ve takaslarda sandviç riskini azaltın. JSON-RPC, HTTP ve QUIC üzerinde çalışır.

## Ne Yapar

Bazı doğrulayıcıların, aldıkları işlemleri sandviçlediği veya başka şekillerde istismar ettiği bilinmektedir. MEV koruması açıkken Apex, işleminizi iletirken **Shield engelleme listesindeki liderleri atlar**. İşlem, listedeki bir lidere teslim edilmek yerine listede olmayan bir lideri bekler.

Engelleme listesi zincir üstü bir [Yellowstone Shield](https://github.com/rpcpool/yellowstone-shield) politikasıdır, dolayısıyla herkese açık ve denetlenebilirdir.

## Ödünleşim

|                         | `mevProtect: false` (varsayılan)                                    | `mevProtect: true`                                              |
| ----------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- |
| **Kullanılan liderler** | Her lider                                                           | Shield engelleme listesindekiler dışında her lider              |
| **Bloğa girme hızı**    | En hızlı                                                            | Engelleme listesindeki liderlerin slotları kadar yavaşlayabilir |
| **En uygun kullanım**   | Transferler, mint işlemleri, tasfiyeler ve sandviçlenemeyen her şey | Takaslar ve fiyata duyarlı diğer alım satımlar                  |

Bir lider art arda 4 slot üretir, bu yaklaşık 1,6 saniyedir. Sıra engelleme listesindeki bir liderdeyken korumalı bir işlem o liderin sırasının geçmesini bekler. Blockhash'inizin yeterli süresi kaldığından emin olun ve korumayı makul bir kayma sınırının yerine kullanmayın.

## Nasıl Etkinleştirilir

MEV koruması HTTP üzerinde işlem başına, QUIC üzerinde ise bağlantı başına ayarlanır.

| Taşıma yöntemi                  | Ayar                                                                                                                |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| JSON-RPC `sendTransaction`      | Üçüncü parametre `true`                                                                                             |
| `POST /send`                    | JSON gövdesinde `"mevProtect": true`                                                                                |
| `POST /send-bin`, `/send-batch` | Sorgu bayrağı `?mev_protect=1`                                                                                      |
| QUIC, Rust istemcisi            | `ClientOptions::mev_protect = true`                                                                                 |
| QUIC, diğer diller              | [İşlem veri paketinde](/tr/apex/sending-transactions#diğer-dillerden-quic) `mev_protect` baytı `1` olarak ayarlanır |

Aşağıdaki örneklerde `TX_BASE64` ve `apex-tx` yardımcısı [İşlem gönderme](/tr/apex/sending-transactions#bahşişli-ve-imzalı-bir-işlem-oluşturun) sayfasından gelir.

<CodeGroup>
  ```bash cURL theme={null}
  TX_BASE64=$(node apex-tx.mjs)

  # JSON-RPC: the third param is mevProtect.
  curl -s "$APEX_RPC" \
    -H "Content-Type: application/json" \
    -H "x-api-key: $APEX_API_KEY" \
    -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"sendTransaction\",\"params\":[\"$TX_BASE64\",{\"encoding\":\"base64\"},true]}"

  # Binary route: the mev_protect query flag.
  TX_BASE64=$(node apex-tx.mjs)
  echo "$TX_BASE64" | base64 --decode | curl -s "$APEX_RPC/send-bin?mev_protect=1" \
    -H "Content-Type: application/octet-stream" \
    -H "x-api-key: $APEX_API_KEY" \
    --data-binary @-
  ```

  ```javascript JavaScript theme={null}
  import { apexRpc, buildTx, confirm } from "./apex-tx.mjs";

  const tx = await buildTx({ label: "apex mev protect" });
  const signature = await apexRpc("sendTransaction", [
    Buffer.from(tx.serialize()).toString("base64"),
    { encoding: "base64" },
    true, // mevProtect
  ]);
  console.log("accepted:", signature);
  console.log("landed in slot", await confirm(signature));
  ```

  ```python Python theme={null}
  import base64

  from apex_tx import apex_rpc, build_tx, confirm

  tx = build_tx(label="apex mev protect")
  signature = apex_rpc("sendTransaction", [
      base64.b64encode(bytes(tx)).decode(),
      {"encoding": "base64"},
      True,  # mevProtect
  ])
  print("accepted:", signature)
  print("landed in slot", confirm(signature))
  ```

  ```rust Rust theme={null}
  // QUIC: protection is a connection option. Every send on this client is protected.
  use apex_sender_client::{ApexSenderClient, ClientOptions, Region};

  let client = ApexSenderClient::connect_with_options(
      ClientOptions {
          endpoint: Some(Region::Frankfurt.quic_endpoint()),
          mev_protect: true,
          ..Default::default()
      },
      &api_key,
  )
  .await?;
  let signature = client.send_transaction(&tx).await?;
  ```
</CodeGroup>

<Tip>
  Rust'ta hem korumalı hem de korumasız gönderimlere ihtiyacınız varsa iki istemci tutun: biri `mev_protect: true` ile, diğeri onsuz. Her biri kendi bağlantısını tutar ve ikisi de sıcak kalır.
</Tip>
