본문으로 건너뛰기
Avalanche C-Chain 전용 / Legacy

이 가이드는 Avalanche C-Chain 또는 기존 SmartAccount 방식을 사용하는 경우에 해당합니다.
Ethereum, Kaia, Base 네트워크는 트랜잭션 수수료 대납 가이드를 사용하세요.

API 가이드

API Call Guide

1. 스마트 계정 정보 확인

Owner EOA와 Access Token을 이용하여 SmartAccount 정보 조회를 호출합니다. 이 요청을 통해 스마트 계정의 init_code, nonce, 및 sender 주소 정보를 확인합니다. 최초 스마트 계정이 배포되지 않은 경우 init_code 의 값이 채워집니다. 추후 UserOperation 전송 실행 시 스마트 계정이 배포됩니다.

2.스마트 계정 실행 데이터 조회

기존 transaction 필드의 input 에 해당하는 콜데이터를 UserOperation 기준으로 생성하기 위해 SmartAccount 생성 calldata 조회를 호출합니다.

예를 들어 0x31BB26934D372024f44FB04BF2E3d37d317DbE0A 주소로 0.0001이더를 송금하고 싶으면 아래와 같이 채울 수 있습니다.

예시

to: 0x31BB26934D372024f44FB04BF2E3d37d317DbE0A #받는 사람 주소
value: 100000000000000 #wei 단위
data: 0x #단순 코인 전송의 경우 0x

또한 스마트 컨트랙트 실행(예시 NFT 전송)은 아래와 같이 채울 수 있습니다.

예시

to: 0xED5AF388653567Af2F388E6224dC7C4b3241C544 #NFT 컨트랙트 주소
value: 0 #wei단위
data: 0x23b872dd0000000000000000000000007b8766... #단순 코인 전송일 경우 0x

3. 가스 정보 계산

스마트 계정의 트랜잭션에 필요한 가스 정보를 얻기 위해 UserOperation 가스 정보 통합 조회를 호출합니다. 가스비 대납을 하는 경우에 가스 정보를 얻기 위해서는 페이마스터를 연동하고, Paymaster Sponsor 데이터 조회를 호출합니다. 이 요청을 통해 preVerificationGas, verificationGasLimit, callGasLimit, maxFeePerGas, maxPriorityFeePerGas 정보를 확인합니다. Paymaster Sponsor 데이터 조회paymasterAndData 를 추가로 리턴합니다.

4. 유저가 서명해야 할 UserOperation 해시 생성

1.스마트 계정 정보 확인 과정과 2.스마트 계정 실행 데이터 조회 과정의 응답 데이터를 종합하여 Owner 서명 digest hash 조회를 호출합니다.

paymaster_and_data 데이터가 없을 경우에는 “0x”로 설정합니다. 이 요청을 통해 유저가 personal_sign을 해야 할 다이제스트 값을 확인할 수 있다.

5. 서명 및 UserOperation 전송

Owner EOA가 3.가스 정보 계산 과정에서 반환된 result 값을 서명(personal_sign)하여 생성된 signature 값을 포함해 UserOperation 전송를 호출합니다.

이 단계에서 스마트 계정 트랜잭션이 네트워크에 전송됩니다.

6. UserOperation 상태 확인

트랜잭션 전송이 완료되면 3.가스 정보 계산 응답으로 반환된 result 값을 사용해 UserOperation Receipt 조회를 호출합니다. 이 요청을 통해 UserOperation의 처리 상태를 추적할 수 있습니다.


API 호출 시 주의 사항

다음에 명시된 3개 API를 호출 할 때 각 필드의 데이터는 반드시 동일해야 한다.

Example

Owner 서명 digest hash 조회를 호출할 때의 paymaster_and_dataUserOperation 전송 호출 할 때의 paymaster_and_data 가 서로 일치해야 한다.


UserOperation 필드 별 조회 API

FieldAPI
senderGET /core/evm/v2/erc4337/{address}/address
GET /core/evm/v2/erc4337/{address}/info
nonceGET /core/evm/v2/erc4337/{address}/nonce
GET /core/evm/v2/erc4337/{address}/info
init_codePOST /core/evm/v2/erc4337/calldata/init
GET /core/evm/v2/erc4337/{address}/info
call_dataPOST /core/evm/v2/erc4337/calldata/execute
call_gas_limitPOST /core/evm/v2/erc4337/gas/info
POST /core/evm/v2/erc4337/paymaster/sponsor
verification_gas_limitPOST /core/evm/v2/erc4337/gas/info
POST /core/evm/v2/erc4337/paymaster/sponsor
pre_verification_gasPOST /core/evm/v2/erc4337/gas/info
POST /core/evm/v2/erc4337/paymaster/sponsor
max_fee_per_gasPOST /core/evm/v2/erc4337/gas/info
POST /core/evm/v2/erc4337/paymaster/sponsor
max_priority_fee_per_gasPOST /core/evm/v2/erc4337/gas/info
POST /core/evm/v2/erc4337/paymaster/sponsor
paymaster_and_dataPOST /core/evm/v2/erc4337/paymaster/sponsor