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

# 수수료 위임

> 트랜잭션 타입 0x16은 트랜잭션 서명자와 가스 납부자를 분리합니다 — 컨트랙트 로직 변경 없이 가스리스 사용자 경험을 구현합니다.

> 수수료 위임은 애플리케이션이 사용자 대신 가스를 납부할 수 있게 합니다. 사용자는 WKRC를 보유하지 않고도 dApp과 상호작용할 수 있습니다.

## 두 가지 역할

수수료 위임 트랜잭션(타입 `0x16`)에는 두 명의 독립적인 서명자가 있습니다:

| 역할                   | 서명                       | 납부                    |
| -------------------- | ------------------------ | --------------------- |
| 발신자 (`From`)         | 트랜잭션 의도 (`v`, `r`, `s`)  | 전송 가치만                |
| 수수료 지불자 (`FeePayer`) | 가스 동의 (`fv`, `fr`, `fs`) | `gasLimit × gasPrice` |

트랜잭션을 제출하기 전에 두 서명 모두 필요합니다. 어느 쪽도 단독으로 행동할 수 없습니다 — 발신자는 수수료 지불자의 서명 없이 수수료를 지정할 수 없고, 수수료 지불자는 트랜잭션 내용을 변경할 수 없습니다.

## 달라지지 않는 것

`tx.origin`은 항상 발신자입니다. `msg.sender` 또는 `tx.origin`을 확인하는 컨트랙트는 표준 트랜잭션과 동일하게 동작합니다 — 컨트랙트 코드 변경이 필요 없습니다.

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

## 왜 중요한가

표준 EVM 체인에서는 모든 사용자가 네이티브 가스 토큰을 보유해야 합니다. 수수료 위임은 이 요구사항을 제거합니다:

* **가스리스 온보딩** — 신규 사용자가 WKRC 없이도 앱과 상호작용
* **보조된 액션** — 특정 흐름에 백엔드가 가스 지원 (첫 민트, 일일 클레임 등)
* **배치 릴레이어** — 단일 수수료 지불자 계정이 여러 사용자의 가스를 처리

## 작동 방식 (개요)

1. 발신자가 `feePayer` 필드를 설정해 트랜잭션 빌드
2. 발신자 서명 → `v`, `r`, `s` 생성
3. 수수료 지불자가 트랜잭션 확인 후 서명 → `fv`, `fr`, `fs` 생성
4. 완전히 서명된 트랜잭션을 `eth_sendRawTransaction`으로 제출

노드는 멤풀에 수락하기 전에 두 서명을 모두 검증합니다. 하나라도 누락되거나 유효하지 않으면 트랜잭션이 거부됩니다.

## 개발자 이점

* 기존 컨트랙트 로직 변경 불필요
* 유연성 — 수수료 지불자는 백엔드 지갑, 스마트 컨트랙트, 또는 어떤 주소든 가능
* 잔액 격리 — 수수료 지불자 자금은 가스만 커버하며 전송 가치에 사용 불가

## 관련 문서

* [수수료 위임 사용 사례](/ko/v0.3/fee-delegation) — ethers.js 코드를 포함한 전체 구현
* [수수료 위임 튜토리얼](/ko/v0.3/build/tutorials/fee-delegation) — 단계별 빌드 가이드
* [트랜잭션 타입](/ko/v0.3/reference/transaction-types) — 타입 0x16 필드 레퍼런스
