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

# 거래 수수료

> 체결 한 건의 비용: 메이커와 테이커 수수료율, 적용 수수료율이 확정되는 방식, 반올림 규칙, 그리고 수수료가 흘러가는 곳.

거래 수수료는 **체결 단위로** 부과되며, 기준은 그 체결의 명목 가치입니다. 주문 단위도 블록 단위도 아닙니다. 다섯 조각으로 나뉘어 체결된 주문은 다섯 개의 명목 가치에 대해 다섯 번 부과되고, 전혀 체결되지 않은 주문에는 한 번도 부과되지 않습니다.

거래의 어느 쪽에 있었는지에 따라 두 가지 수수료율 중 하나가 적용됩니다.

**메이커** — 주문이 오더북에 대기하고 있었고 다른 참가자가 그 주문에 들어와 체결한 경우입니다. 유동성을 공급했으므로 수수료율이 더 낮습니다.

**테이커** — 주문이 스프레드를 넘어가 대기 중인 유동성을 소진한 경우입니다. 수수료율이 더 높습니다.

구분 기준은 주문이 실제로 *한 일*이지 의도가 아닙니다. 제출 즉시 상대 호가를 넘어가는 지정가 주문은 테이커 수수료율을 냅니다. 반드시 메이커여야 한다면 포스트 온리를 쓰십시오. 유동성을 가져가게 되는 경우 체결되지 않고 거부됩니다. 자세한 동작은 [주문 유형](/ko/trading/order-types)에서 다룹니다.

<h2 id="the-calculation">
  계산 방식
</h2>

$$
\text{수수료} = \text{체결 명목 가치} \times \frac{\text{ppm 수수료율}}{1{,}000{,}000}
$$

수수료율은 퍼센트가 아니라 **백만분율**(ppm)로 온체인에 저장됩니다. 네트워크 기본값은 테이커 `450` ppm, 메이커 `150` ppm이며, 각각 0.045%와 0.015%입니다.

ppm으로 다루는 것은 겉치레가 아닙니다. 결제 경로 위의 모든 계산은 [고정소수점 정수 연산](/ko/protocol/architecture/kernel)입니다. 두 검증자 사이의 반올림 차이는 단순한 불일치가 아니라 포크이기 때문입니다. 퍼센트의 퍼센트로 표현한 수수료율은 어딘가에서 소수가 되어야 하고, 모든 기계가 같은 답을 내는 소수 표현은 존재하지 않습니다.

그래서 반올림은 구현에 맡겨진 것이 아니라 명세로 정해져 있습니다.

|                      | 규칙                                                         |
| -------------------- | ---------------------------------------------------------- |
| **부과되는 수수료**         | 최근접 반올림, 중간값은 0에서 먼 쪽으로. 수수료율이 양수인 한 하한은 1 quantum(최소 단위)  |
| **지급되는 리베이트**        | 최근접 반올림, 중간값은 0에서 먼 쪽으로. 하한은 **없음** — 리베이트는 0으로 반올림되어도 됩니다 |
| **주문 제출 시 예약되는 수수료** | 최근접 반올림, 중간값은 0에서 먼 쪽으로, 하한은 1 quantum                     |

부과 쪽에 1 quantum 하한을 두는 것은 아주 작은 체결이 공짜가 되지 않게 하기 위해서입니다. 리베이트에 그 하한이 없는 것은 그 거울상입니다. 프로토콜은 벌지 않은 단위를 만들어 내느니 지급액을 0으로 내림합니다.

<h2 id="which-rate-applies-to-you">
  적용되는 수수료율
</h2>

모든 체결은 같은 방식으로 수수료율을 확정하며, 순서는 고정되어 있습니다.

<div className="dg" data-dg="fee-rate-resolution">
  <div className="dg-c" style={{aspectRatio:"720 / 300"}}>
    <svg className="dg-w" viewBox="0 0 720 300" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 134.00 112.00 L 155.60 112.00" />

      <path className="dg-head dg--blue" d="M 162.00 112.00 L 155.60 116.40 L 155.60 107.60 Z" />

      <path className="dg-wire dg--green" d="M 340.00 112.00 L 373.26 41.78" />

      <path className="dg-head dg--green" d="M 376.00 36.00 L 377.24 43.67 L 369.28 39.90 Z" />

      <path className="dg-wire dg--sky" d="M 340.00 112.00 L 369.60 112.00" />

      <path className="dg-head dg--sky" d="M 376.00 112.00 L 369.60 116.40 L 369.60 107.60 Z" />

      <path className="dg-wire" d="M 340.00 112.00 L 373.26 182.22" />

      <path className="dg-head" d="M 376.00 188.00 L 369.28 184.10 L 377.24 180.33 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"28.0000%",width:"18.0556%",height:"18.6667%"}}><span className="dg-t">체결 한 건</span></div>
    <div className="dg-b dg--yellow dg-round" style={{left:"23.0556%",top:"24.6667%",width:"23.6111%",height:"25.3333%"}}><span className="dg-t">이 계정에 수수료율이 있는가?</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"52.7778%",top:"0.6667%",width:"47.2222%",height:"22.6667%"}}><span className="dg-t">협의 계정 수수료율</span><span className="dg-s">계정에 직접 설정되며 야간 등급 재계산에서 의도적으로 제외 — 재계산이 합의된 조건을 덮어쓰지 않음</span></div>
    <div className="dg-b dg--sky dg-left" style={{left:"52.7778%",top:"26.0000%",width:"47.2222%",height:"22.6667%"}}><span className="dg-t">거래량 등급 수수료율</span><span className="dg-s">롤링 거래량에서 산출, 매일 온체인에 기록</span></div>
    <div className="dg-b dg-left" style={{left:"52.7778%",top:"51.3333%",width:"47.2222%",height:"22.6667%"}}><span className="dg-t">네트워크 기본값</span><span className="dg-s">새 계정은 수수료율 없음이 아니라 0등급으로 거래</span><span className="dg-n">제로 수수료율도 실제 수수료율입니다. 설정되어 있으면 그대로 부과됩니다.</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"0.0000%",top:"78.6667%",width:"100.0000%",height:"17.3333%"}}><span className="dg-s">온체인 설정에는 마켓별 기본 수수료율도 존재하지만, 현재 체결 경로에는 적용되지 않습니다. 모든 마켓은 위의 계정 → 기본값 순서로 확정됩니다.</span></div>
  </div>
</div>

**협의 계정 수수료율**은 계정에 직접 설정되며, 야간 등급 재계산에도 그대로 살아남습니다. 협의 수수료율이 설정된 계정은 재계산에서 의도적으로 건너뛰므로, 거래량 재계산이 합의된 조건을 덮어쓰는 일은 없습니다.

**거래량 등급 수수료율**은 거의 모든 계정이 사용하는 값입니다. 롤링 거래량에서 산출되어 매일 온체인에 기록됩니다. 등급 표는 [수수료 등급](/ko/programs/fee-tiers)에 있습니다.

**네트워크 기본값**은 아무것도 배정받은 적 없는 계정에 적용됩니다. 새 계정은 수수료율이 없는 상태가 아니라 0등급으로 거래합니다.

<Note>
  0이라는 수수료율은 실제 값이지 누락이 아닙니다. 계정에 명시적으로 설정된 수수료율이 있으면 프로토콜은 그 값을 문자 그대로 부과하며, 0일 때도 마찬가지입니다. 숫자가 비어 보인다는 이유로 조용히 기본값으로 되돌아가는 일은 없습니다.
</Note>

온체인 설정에는 **마켓별 기본 수수료율**도 존재합니다. 어떤 마켓의 리스크 프로파일이 거래소 전체와 충분히 달라서 전체 수수료 표로 가격을 매기는 것이 맞지 않은 경우를 위한 것입니다. 프리마켓 계약이나 유동성이 유난히 얕은 신규 상장이 여기에 해당합니다. 적용되면 그 마켓에서 네트워크 기본값을 대신하는 기준이 되고, 계정 수수료율은 그 위에 그대로 얹힙니다.

<Warning>
  마켓별 기본 수수료율은 설정할 수는 있지만 **현재 체결 경로에서는 적용되지 않습니다**. 모든 마켓은 지금 위의 계정 → 기본값 순서로 확정됩니다. 이 점이 바뀌면 이 페이지도 바뀝니다.
</Warning>

<h2 id="what-the-rate-can-be">
  수수료율이 가질 수 있는 값
</h2>

두 수수료율 모두 온체인에서 범위가 제한되며, 설정이 범위를 넘으면 값이 잘려 들어가는 대신 쓰기 자체가 거부됩니다.

|         | 범위                            |
| ------- | ----------------------------- |
| **테이커** | 음수 불가. 상한 10%                 |
| **메이커** | 음수 가능(리베이트), 하한 −0.1%. 상한 10% |

이 비대칭은 의도한 것입니다. 음수 메이커 수수료율은 설계된 인센티브입니다. 거래소가 오더북에 원하는 유동성에 대가를 지불하는 것입니다. 음수 테이커 수수료율은 자기 자신과 거래해 돈을 찍어 내는 수단이 되므로, 권장하지 않는 정도가 아니라 아예 표현할 수 없게 되어 있습니다.

10% 상한은 수수료 표가 아니라 안전장치입니다. 실제 수수료율은 그보다 두 자릿수 아래에 있습니다. 이 한계는 터무니없거나 악의적인 설정이 실행에 도달하지 못하게 막으려는 것이지, 누가 얼마를 내는지를 설명하는 값이 아닙니다.

<h2 id="placing-orders-costs-no-gas">
  주문 제출에는 gas가 들지 않음
</h2>

주문 제출, 정정, 취소는 프로토콜 네이티브 트랜잭션입니다. gas 잔액이 필요 없고, 수수료 시장에서 경쟁하지도 않습니다.

사소해 보이지만 영향이 큽니다. 주문 관리에 gas가 드는 거래소에서는 호가를 내는 일이 비싸고, 변동성 구간의 취소는 가장 필요한 순간에 가장 비쌉니다. 그래서 마켓 메이커는 그 비용을 덮으려고 호가를 넓게 내고, 그 스프레드는 모두가 부담합니다. 주문 관리를 무료로 만드는 것은 그 비용을 이리저리 옮기는 것이 아니라 스프레드에서 걷어 내는 일입니다.

그 결과 **거래 수수료가 거래에 드는 프로토콜 비용의 전부입니다.** 두 번째 항목은 없습니다.

<h2 id="why-your-reserved-margin-exceeds-the-initial-requirement">
  예약 증거금이 개시 요건을 넘는 이유
</h2>

포지션을 열면 프로토콜은 개시 요건에 *예상 종료 수수료를 더해* 증거금을 예약합니다. 종료할 여력이 없는 포지션은 결국 거래소가 떠안아야 하기 때문입니다.

그 예상 수수료는 **네트워크 기본 테이커 수수료율**로 계산되며, 주문이 제출된 시점의 값으로 고정됩니다. 해당 계정의 수수료율도 아니고, 이후에 바뀔 수수료율도 아닙니다.

두 가지 모두 의도적으로 보수적입니다. 기본 테이커 수수료율을 쓰면, 나중에 수수료율이 올라가는 계정에 대해서도 예약액이 모자라지 않습니다. 제출 시점에 고정하면, 보유 중의 수수료율 변경이 이미 검사를 통과해 수락된 증거금을 소급해서 무효로 만들 수 없습니다.

종료가 체결될 때 실제로 부과되는 것은 그 계정의 실제 수수료율입니다. 예약액은 청구서가 아니라 상한입니다.

<h2 id="where-fees-go">
  수수료가 흘러가는 곳
</h2>

거래 수수료는 온체인의 프로토콜 관리 계정으로 모입니다. 거기에서 나가는 돈은 보유되지 않고 생태계로 향합니다.

<div className="dg" data-dg="fee-destinations">
  <div className="dg-c" style={{aspectRatio:"720 / 314"}}>
    <svg className="dg-w" viewBox="0 0 720 314" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 134.00 138.00 L 165.60 138.83" />

      <path className="dg-head dg--blue" d="M 172.00 139.00 L 165.49 143.23 L 165.72 134.43 Z" />

      <path className="dg-wire dg-soft" d="M 371.00 139.00 L 408.72 39.98" />

      <path className="dg-head" d="M 411.00 34.00 L 412.83 41.55 L 404.61 38.41 Z" />

      <path className="dg-wire dg-soft" d="M 371.00 139.00 L 406.18 108.21" />

      <path className="dg-head" d="M 411.00 104.00 L 409.08 111.53 L 403.29 104.90 Z" />

      <path className="dg-wire dg-soft" d="M 371.00 139.00 L 406.18 169.79" />

      <path className="dg-head" d="M 411.00 174.00 L 403.29 173.10 L 409.08 166.47 Z" />

      <path className="dg-wire dg-soft" d="M 371.00 139.00 L 408.72 238.02" />

      <path className="dg-head" d="M 411.00 244.00 L 404.61 239.59 L 412.83 236.45 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"35.0318%",width:"18.0556%",height:"17.8344%"}}><span className="dg-t">모든 체결</span></div>
    <div className="dg-b dg--blue" style={{left:"24.4444%",top:"32.1656%",width:"26.3889%",height:"24.2038%"}}><span className="dg-t">프로토콜 수수료 계정</span><span className="dg-s">온체인, 감사 가능</span></div>
    <div className="dg-b dg--green" style={{left:"57.7778%",top:"0.6369%",width:"42.2222%",height:"20.3822%"}}><span className="dg-t">유동성 볼트</span><span className="dg-s">오더북에 호가를 내고 청산 포지션을 넘겨받음 · 이익은 예치자에게</span></div>
    <div className="dg-b dg--green" style={{left:"57.7778%",top:"22.9299%",width:"42.2222%",height:"20.3822%"}}><span className="dg-t">보험 기금</span><span className="dg-s">디레버리징이 다른 트레이더에게 미치기 전에 부족분을 흡수</span></div>
    <div className="dg-b dg-dashed" style={{left:"57.7778%",top:"45.2229%",width:"42.2222%",height:"20.3822%"}}><span className="dg-t">리퍼럴 리베이트</span><span className="dg-s">해당 프로그램이 가동될 때</span></div>
    <div className="dg-b dg-dashed" style={{left:"57.7778%",top:"67.5159%",width:"42.2222%",height:"20.3822%"}}><span className="dg-t">토큰 배포자</span><span className="dg-s">외부에서 가져온 현물 상장에 대해 — 현물은 아직 미가동</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"88.5350%",width:"100.0000%"}}><div className="dg-n">잔액과 이동은 체인 상태입니다. 기초 잔액, 유입 수수료, 유출 이체, 기말 잔액은 커밋된 블록에서 누구나 다시 계산할 수 있는 합계입니다.</div></div>
  </div>
</div>

* **[유동성 볼트](/ko/trading/vaults)** — 오더북에 호가를 내고 [청산](/ko/trading/liquidations) 과정에서 포지션을 넘겨받습니다. 수수료 수입은 그 수익의 일부이며, 볼트 이익은 예치자에게 귀속됩니다.
* **보험 기금** — [디레버리징](/ko/trading/adl)이 다른 트레이더에게 미치기 전에, 청산이 메우지 못한 부족분을 흡수합니다.
* **[리퍼럴](/ko/programs/referrals) 리베이트** — 해당 프로그램이 가동될 때.
* **토큰 배포자** — 외부에서 가져온 상장에 대해 지급합니다. 현물 상장에 적용되며, 현물은 아직 가동되지 않았습니다.

잔액과 이동은 체인 상태입니다. 대사(기초 잔액, 유입 수수료, 유출 이체, 기말 잔액)는 누군가 공개해 주어야 하는 수치가 아니라, 커밋된 블록에서 누구나 다시 계산할 수 있는 합계입니다.

브릿지 수수료와 계정 수수료는 별도의 계정으로 따로 모입니다. 이 비용은 [거래 외 수수료](/ko/programs/other-fees)에서 다룹니다.

<h2 id="what-is-not-a-trading-fee">
  거래 수수료가 아닌 것
</h2>

| 비용                                 | 지급 대상   | 비고                     |
| ---------------------------------- | ------- | ---------------------- |
| 거래 수수료                             | 프로토콜    | 이 페이지                  |
| [펀딩](/ko/trading/funding)          | 다른 트레이더 | 프로토콜은 몫을 가져가지 않습니다     |
| 슬리피지                               | 없음      | 부과되는 비용이 아니라 체결된 가격입니다 |
| [청산 페널티](/ko/trading/liquidations) | 보험 기금   | 청산될 때만                 |
| [출금 수수료](/ko/programs/other-fees)  | 프로토콜    | 거래가 아니라 브릿지            |
| gas                                | —       | 거래 트랜잭션에는 부과되지 않습니다    |

수수료로 가장 자주 오해받는 것이 펀딩입니다. 롱과 숏 사이의 이전이며, 어느 쪽을 보유했는지에 따라 비용이 되기도 하고 수입이 되기도 합니다.

<h2 id="reducing-what-you-pay">
  부담을 줄이는 방법
</h2>

* **메이커가 되십시오.** 대부분의 계정에서 메이커와 테이커의 차이는 인접한 거래량 등급 사이의 차이보다 큽니다. *어떻게* 거래하는지를 바꾸는 편이 더 많이 거래하는 것보다 비용을 크게 움직입니다.
* 실수로 테이커 수수료율을 내면 안 되는 상황에서는 **포스트 온리를 쓰십시오**. 상대 호가를 넘어가게 되면 체결되는 대신 거부됩니다.
* **활동을 하나의 상위 계정 아래에 두십시오.** 등급 산정에서 서브 계정은 합산되므로, 쪼개도 얻는 것은 없고 운영 복잡도만 늘어납니다.
* **큰 주문은 쪼개십시오.** [TWAP](/ko/trading/twap)과 [분할 주문](/ko/trading/scale-orders)은 슬리피지를 줄이는데, 큰 주문에서 슬리피지는 대개 수수료를 크게 웃돕니다.

<Warning>
  수수료율은 하드코딩하지 말고 체인에서 읽으십시오. 수수료 표는 온체인 설정이며 바뀝니다. 자체 사본을 들고 있는 통합은 언젠가 네트워크가 부과하지 않는 비용을 계산하게 됩니다. [개발자](/ko/developers/overview) 문서를 참고하십시오.
</Warning>

<h2 id="where-to-go-next">
  다음으로 읽을 문서
</h2>

<CardGroup cols={2}>
  <Card title="수수료 등급" href="/ko/programs/fee-tiers">
    수수료 표, 등급이 계산되는 방식, 마켓 메이커 리베이트.
  </Card>

  <Card title="거래 외 수수료" href="/ko/programs/other-fees">
    브릿지, 계정, 볼트, 청산 관련 비용.
  </Card>

  <Card title="주문 유형" href="/ko/trading/order-types">
    포스트 온리, 그리고 메이커 지위를 보장하는 방법.
  </Card>

  <Card title="펀딩" href="/ko/trading/funding">
    프로토콜이 아니라 다른 트레이더에게 가는 비용.
  </Card>
</CardGroup>
