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

# 가스 및 수수료

> StableNet의 트랜잭션 수수료 계산 방식 — 거버넌스 기반 우선순위 수수료와 기본 수수료 소각 없는 변형 EIP-1559.

> StableNet은 두 가지 핵심 차이점이 있는 EIP-1559 스타일 수수료를 사용합니다: 기본 수수료가 소각되는 대신 밸리데이터에게 지급되고, 우선순위 수수료는 시장이 아닌 거버넌스로 결정됩니다.

## 수수료 구성요소

모든 트랜잭션은 두 가지 구성요소를 지불합니다:

| 구성요소            | 설명                  | 결정 주체             |
| --------------- | ------------------- | ----------------- |
| 기본 수수료          | 네트워크 사용률에 따른 최소 수수료 | 프로토콜              |
| 우선순위 수수료 (가스 팁) | 밸리데이터를 위한 추가 수수료    | GovValidator 컨트랙트 |

일반 계정(비인증 계정)의 경우, 트랜잭션에 지정한 `maxPriorityFeePerGas`는 거버넌스 적용 가스 팁으로 재정의됩니다. 최솟값 이상을 포함해야 하며 — 임계값 미만의 트랜잭션은 멤풀 단계에서 거부됩니다.

## 기본 수수료 조정

StableNet은 이더리움의 ±12.5% 조정 대신 이중 임계값 시스템을 사용합니다:

| 가스 사용률   | 기본 수수료 변화 |
| -------- | --------- |
| 20% 초과   | 블록당 +2%   |
| 6% – 20% | 변동 없음     |
| 6% 미만    | 블록당 -2%   |

기본 수수료는 프로토콜 최솟값 아래로 내려가지 않으며, 급격한 급등을 방지하기 위해 증가폭에 상한이 있습니다.

이더리움과 달리, 기본 수수료는 소각되지 않고 **밸리데이터에게 분배**됩니다. 이는 스테이블코인의 1:1 법정화폐 담보를 유지하기 위함입니다 (소각은 법정화폐 상환 시점에만 발생).

## 트랜잭션에서 수수료 설정

EIP-1559 트랜잭션(타입 `0x02`)에서는 두 필드를 모두 설정하세요:

```typescript theme={null}
const tx = await wallet.sendTransaction({
  to: recipient,
  value: ethers.parseEther("1.0"),
  maxPriorityFeePerGas: ethers.parseUnits("27600", "gwei"),
  maxFeePerGas: ethers.parseUnits("80000", "gwei"),
});
```

Foundry `cast send`와 `forge script`에서는 `--priority-gas-price 27600000000000`을 전달하세요.

<Note>
  거버넌스 적용 최소 우선순위 수수료는 GovValidator 컨트랙트가 설정합니다. 이 값보다 낮은 `maxPriorityFeePerGas`를 가진 트랜잭션은 블록 포함 전에 거부됩니다.
</Note>

## 수수료 위임 (타입 0x16)

StableNet은 별도 계정 — 수수료 지불자 — 이 가스 비용을 대신 납부하는 수수료 위임 트랜잭션 타입(`0x16`)을 추가합니다. 발신자 계정은 전송 가치만 보유하면 됩니다.

| 역할      | 납부                    |
| ------- | --------------------- |
| 발신자     | 전송 가치만                |
| 수수료 지불자 | `gasLimit × gasPrice` |

미사용 가스는 발신자가 아닌 수수료 지불자에게 환불됩니다.

## 가스 추정

전송 전에 `eth_estimateGas`로 트랜잭션의 가스 한도를 구하세요. RPC 엔드포인트는 가스 유닛을 반환하며, 실효 가스 가격을 곱하면 WKRC 단위 총 수수료가 됩니다.

```typescript theme={null}
const gasEstimate = await provider.estimateGas({
  to: contractAddress,
  data: encodedCalldata,
});
```

## 개발자 이점

* 예측 가능한 수수료 — 기본 수수료가 블록당 ±12.5% 대신 ±2%씩 변동
* KRW 기준 비용 — 수수료 추정이 법정화폐 기준으로 안정적
* 수수료 위임 — 컨트랙트 로직 변경 없이 사용자 가스를 대신 납부 가능

## 관련 문서

* [수수료 위임 튜토리얼](/ko/v0.3/build/tutorials/fee-delegation) — 타입 0x16 트랜잭션 구현
* [RPC API 레퍼런스](/ko/v0.3/reference/rpc-api) — `eth_gasPrice`, `eth_feeHistory`, `eth_estimateGas`
