EIP-7702
Stable은 EIP-7702를 지원하며, 이를 통해 EOA가 자신의 계정 코드를 기존 스마트 컨트랙트로 설정할 수 있습니다. EOA는 원래의 주소와 프라이빗 키를 유지하면서 위임 대상의 로직을 실행합니다.
트랜잭션 형식
EIP-7702는 authorizationList 필드를 포함하는 트랜잭션 타입 0x04를 사용합니다. 각 authorization은 해당 트랜잭션에서 EOA가 실행할 코드를 가진 위임 컨트랙트를 지정합니다.
{
type: 4,
to: eoa.address,
data: delegateCallData,
authorizationList: [signedAuthorization],
maxPriorityFeePerGas: 0n, // always 0 on Stable
// ... standard EIP-1559 fields
}authorization이 담는 정보:
chainId: 대상 체인과 일치해야 합니다.address: 위임 컨트랙트 주소입니다.nonce: authorization nonce(트랜잭션 nonce와 별개)입니다.
EIP-7702를 지원하는 지갑과 라이브러리는 authorization 형식을 자동으로 처리합니다.
도구
- ethers.js:
wallet.signAuthorization({ chainId, address, nonce })는authorizationList에 포함할 서명된 authorization을 생성합니다. - viem: walletClient와 함께
signAuthorization을 사용한 다음, 그 결과를sendTransaction에 전달합니다. - Hardhat / Foundry: 도구 체인 버전이 Pectra 하드포크를 지원하면 표준 EIP-7702 트랜잭션 형식이 동작합니다.
다음 권장 사항
- EIP-7702 개념 — 위임 모델과 사용 시점을 이해하세요.
- 계정 추상화 (EIP-7702) — 일괄 결제, 지출 한도, 세션 키를 단계별로 구현하세요.

