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

# Sender SWQOS-Only: 비용 최적화된 저지연 전송

> Helius Sender의 비용 최적화된 SWQOS 전용 경로를 통해 Solana 트랜잭션을 최소 0.000005 SOL의 팁으로 전송합니다. 최저 팁으로 저지연을 제공합니다.

## 개요

SWQOS-only는 비용 최적화된 [Helius Sender](/docs/ko/sending-transactions/sender) 등급입니다. 하나의 빠른 SWQOS(스테이크 가중 품질의 서비스) 경로를 통해 트랜잭션을 라우팅하며 **모든 Sender 등급 중 최저 최소 팁: 0.000005 SOL**을 제공합니다.

최저 팁으로 저지연 전송이 필요한 경우 이 등급을 사용하세요. 가장 빠른 상륙이 중요한 고경쟁 트랜잭션에는 [Sender Max](/docs/ko/sending-transactions/sender-max) 등급을 대신 사용하세요.

<CardGroup cols={2}>
  <Card title="최저 팁" icon="dollar-sign">
    단 0.000005 SOL의 최소 팁 — Sender 사용의 가장 저렴한 방법
  </Card>

  <Card title="단일 빠른 경로" icon="bolt">
    저지연 전송을 위해 SWQOS 인프라만 경유합니다
  </Card>

  <Card title="크레딧 없음" icon="coins">
    API 크레딧 없이 모든 플랜에서 사용 가능
  </Card>

  <Card title="단일 경로" icon="circle-info">
    오직 하나의 SWQOS 경로를 통해 라우팅됩니다 — 다중 경로 라우팅과 가장 빠른 상륙을 원하시면 Sender Max 등급을 사용하세요
  </Card>
</CardGroup>

## SWQOS-only를 사용할 때

<CardGroup cols={2}>
  <Card title="적합한 상황" icon="circle-check">
    비용에 민감한 트레이딩, 높은 트랜잭션 볼륨, 단일 빠른 경로로 신뢰할 수 있는 상륙이 가능한 흐름.
  </Card>

  <Card title="Sender Max를 고려할 때" icon="trophy" href="/docs/ko/sending-transactions/sender-max">
    경쟁이 치열한 계정, 경쟁적인 출시, 또는 가장 빠른 가능 상륙이 필요한 트랜잭션.
  </Card>
</CardGroup>

## SWQOS-only를 활성화하는 방법

어떤 Sender 엔드포인트 URL에든 `swqos_only=true` 쿼리 매개변수를 추가하세요. 프론트엔드에는 글로벌 HTTPS 엔드포인트를 사용하거나, 백엔드에는 서버와 가까운 지역별 HTTP 엔드포인트를 사용하세요.

**프론트엔드 / 브라우저 (글로벌 HTTPS):**

```
https://sender.helius-rpc.com/fast?swqos_only=true
```

**백엔드 / 서버 (지역별 HTTP):**

```
http://slc-sender.helius-rpc.com/fast?swqos_only=true   # Salt Lake City
http://ewr-sender.helius-rpc.com/fast?swqos_only=true   # Newark
http://lon-sender.helius-rpc.com/fast?swqos_only=true   # London
http://fra-sender.helius-rpc.com/fast?swqos_only=true   # Frankfurt
http://ams-sender.helius-rpc.com/fast?swqos_only=true   # Amsterdam
http://sg-sender.helius-rpc.com/fast?swqos_only=true    # Singapore
http://tyo-sender.helius-rpc.com/fast?swqos_only=true   # Tokyo
```

이는 트랜잭션을 오로지 SWQOS를 통해 라우팅하고 낮은 **0.000005 SOL** 최소 팁 요구 사항을 적용합니다. 연결 워밍 및 세부 사항은 [Sender 엔드포인트 참조](/docs/ko/sending-transactions/sender#엔드포인트)를 참조하세요.

<Tip>
  샌드위치 공격과 연결된 검증자를 피하고 싶으신가요? [`mev-protect=true`](/docs/ko/sending-transactions/mev-protect)를 `swqos_only`과 함께 추가하세요:
  `https://sender.helius-rpc.com/fast?swqos_only=true&mev-protect=true`.
</Tip>

## 요구 사항

모든 Sender 등급과 마찬가지로 SWQOS-only 트랜잭션에는 다음이 포함되어야 합니다:

* **팁**: 지정된 [팁 계정](/docs/ko/sending-transactions/sender#요구사항)으로 최소 **0.000005 SOL**의 SOL 전송
* **우선 수수료**: `ComputeBudgetProgram.setComputeUnitPrice`를 통한 컴퓨팅 유닛 가격 지침

프리플라이트 건너뛰기(`skipPreflight: true`)는 선택 사항이지만 권장됩니다 — 프리플라이트 체크는 지연 시간을 증가시킵니다.

<Warning>
  여러분의 트랜잭션에는 팁 전송과 컴퓨팅 유닛 가격 지침이 모두 포함되어야 합니다. 둘 중 하나라도 없으면 거부됩니다.
</Warning>

## 코드 예시

<Tabs>
  <Tab title="@solana/web3.js">
    ```typescript [expandable] theme={"system"}
    import { 
      Connection, 
      TransactionMessage,
      VersionedTransaction,
      SystemProgram, 
      PublicKey,
      Keypair,
      LAMPORTS_PER_SOL,
      ComputeBudgetProgram
    } from '@solana/web3.js';
    import bs58 from 'bs58';

    const PRIV_B58 = 'Your Private Key';
    const RECIPIENT = 'Recipient Address';
    const HELIUS_API_KEY = 'Your API Key';
    const TIP_ACCOUNTS = [
      "4ACfpUFoaSD9bfPdeu6DBt89gB6ENTeHBXCAi87NhDEE",
      "D2L6yPZ2FmmmTKPgzaMKdhu6EWZcTpLy1Vhx8uvZe7NZ",
      "9bnz4RShgq1hAnLnZbP8kbgBg1kEmcJBYQq3gQbmnSta",
      "5VY91ws6B2hMmBFRsXkoAAdsPHBJwRfBht4DXox3xkwn",
      "2nyhqdwKcJZR2vcqCyrYsaPVdAnFoJjiksCXJ7hfEYgD",
      "2q5pghRs6arqVjRvT5gfgWfWcHWmw1ZuCzphgd5KfWGJ",
      "wyvPkWjVZz1M8fHQnMMCDTQDbkManefNNhweYk5WkcF",
      "3KCKozbAaF75qEU33jtzozcJ29yJuaLJTy2jFdzUY8bT",
      "4vieeGHPYPG2MmyPRcYjdiDmmhN3ww7hsFNap8pVN3Ey",
      "4TQLFNWK8AovT1gFvda5jfw2oJeRMKEmw7aH6MGBJ3or"
    ];

    async function sendSwqosOnly(
      keypair: Keypair,
      recipientAddress: string
    ): Promise<string> {
      const connection = new Connection(
        `https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}`
      );

      const { value: { blockhash } } = await connection.getLatestBlockhashAndContext('confirmed');

      // Build transaction: priority fee + recipient transfer + minimum SWQOS-only tip
      const transaction = new VersionedTransaction(
        new TransactionMessage({
          instructions: [
            ComputeBudgetProgram.setComputeUnitLimit({ units: 100_000 }),
            ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200_000 }),
            SystemProgram.transfer({
              fromPubkey: keypair.publicKey,
              toPubkey: new PublicKey(recipientAddress),
              lamports: 0.001 * LAMPORTS_PER_SOL,
            }),
            SystemProgram.transfer({
              fromPubkey: keypair.publicKey,
              toPubkey: new PublicKey(TIP_ACCOUNTS[Math.floor(Math.random() * TIP_ACCOUNTS.length)]),
              lamports: 0.000005 * LAMPORTS_PER_SOL, // SWQOS-only minimum tip
            })
          ],
          payerKey: keypair.publicKey,
          recentBlockhash: blockhash,
        }).compileToV0Message()
      );

      transaction.sign([keypair]);

      // Note the ?swqos_only=true query parameter
      const SENDER_ENDPOINT = 'https://sender.helius-rpc.com/fast?swqos_only=true';
      // Backend: use the regional HTTP endpoint closest to your servers
      // const SENDER_ENDPOINT = 'http://slc-sender.helius-rpc.com/fast?swqos_only=true';

      const response = await fetch(SENDER_ENDPOINT, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: Date.now().toString(),
          method: 'sendTransaction',
          params: [
            Buffer.from(transaction.serialize()).toString('base64'),
            {
              encoding: 'base64',
              skipPreflight: true, // Optional: skip for lower latency
              maxRetries: 0
            }
          ]
        })
      });

      const json = await response.json();
      if (json.error) {
        throw new Error(json.error.message);
      }

      console.log('Transaction sent:', json.result);
      return json.result;
    }

    // Usage
    sendSwqosOnly(Keypair.fromSecretKey(bs58.decode(PRIV_B58)), RECIPIENT);
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"system"}
    curl "https://sender.helius-rpc.com/fast?swqos_only=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>

<Note>
  위의 트랜잭션은 여전히 0.000005 SOL 팁을 사용합니다 — 이는 SWQOS-only의 최소입니다.
  0.000005 SOL에서 0.001 SOL 사이의 팁은 허용되지만 하나의 SWQOS 경로에 머물러 있습니다. 모든 경로를 통해 가장 빠른 상륙을 라우팅하려면 최소 0.001 SOL 팁이 필요한 [Sender Max](/docs/ko/sending-transactions/sender-max) 등급을 사용하세요.
</Note>

## 모범 사례

* **엔드포인트 선택**: CORS 이슈를 피하기 위해 프론트엔드 앱에는 `https://sender.helius-rpc.com/fast?swqos_only=true`을 사용하세요. 백엔드 앱에는 서버와 가까운 지역별 HTTP 엔드포인트를 사용하세요.
* **연결 워밍**: 유휴 기간이 5초 이상일 때 [`/ping` 엔드포인트](/docs/ko/sending-transactions/sender#연결-예열)를 사용하세요.
* **우선 수수료**: 실시간 권장 사항을 위해 [Helius Priority Fee API](/docs/ko/priority-fee-api)를 사용하세요.
* **재시도**: `maxRetries: 0`을 설정하고 직접 재시도 로직을 구현하세요.

## 관련 항목

<CardGroup cols={2}>
  <Card title="Sender 개요" icon="rocket" href="/docs/ko/sending-transactions/sender">
    공유 개념: 엔드포인트, 연결 워밍, 속도 제한 및 사용자 지정 TPS.
  </Card>

  <Card title="Sender Max 등급" icon="trophy" href="/docs/ko/sending-transactions/sender-max">
    모든 경로를 통한 다중 경로 라우팅으로 가장 빠른 상륙(0.001 SOL 최소 팁).
  </Card>

  <Card title="트랜잭션 리베이트" icon="coins" href="/docs/ko/sending-transactions/backrun-rebates">
    생성하는 MEV의 일부를 획득하여 SOL로 지급받도록 옵트인 하세요.
  </Card>

  <Card title="MEV 보호" icon="shield-halved" href="/docs/ko/sending-transactions/mev-protect">
    샌드위치 공격과 통계적으로 연결된 검증자를 우회하여 라우팅합니다.
  </Card>
</CardGroup>
