Out of gas는 실행 도중 제공한 gas limit을 소진해 완료하지 못한 실패이고, 슬리피지 실패는 거래가 요구한 minimum output을 현재 swap 결과가 충족하지 못해 계약이 의도적으로 revert한 실패입니다. 둘 다 receipt status는 failed일 수 있지만 gas used가 limit에 근접했는지, decoded revert reason이 무엇인지, calldata의 amountOutMin·deadline과 당시 pool 상태가 어땠는지를 보면 구분할 수 있습니다. 원인 확인 없이 gas나 slippage를 크게 올리면 비용 또는 가격 위험이 커집니다.
같은 실패 표시 아래 원인이 다릅니다
EVM은 각 opcode 실행에 gas를 사용합니다. gas가 바닥나면 실행을 완료할 계산 자원이 없어 예외로 실패합니다. 반면 DEX router의 slippage guard는 실제 output이 사용자가 정한 최저치보다 작을 때 자산 교환을 막도록 revert합니다. 계산 자원이 남아 있어도 조건이 맞지 않아 실패할 수 있습니다.
두 경우 모두 상태 변경이 롤백되고 이미 사용한 gas fee는 들 수 있습니다. ‘failed’ 배지만 보고 gas 부족이라고 단정하지 마세요. receipt, trace, simulation과 verified contract error를 함께 봐야 합니다.
Out of gas는 계산 연료 부족이고, 슬리피지 revert는 사용자가 정한 가격 보호선이 작동한 결과입니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 같은 실패 표시 아래 원인이 다릅니다
EVM은 각 opcode 실행에 gas를 사용합니다.
- 영수증에서 먼저 숫자를 봅니다
transaction의 gas limit과 receipt의 gas used를 비교합니다.
- 슬리피지는 단순 퍼센트 버튼이 아닙니다
DEX frontend는 quote에 허용 비율을 적용해 minimum received를 calldata에 넣습니다 .
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
영수증에서 먼저 숫자를 봅니다
transaction의 gas limit과 receipt의 gas used를 비교합니다. used가 limit과 같거나 매우 가깝고 error가 out of gas라면 실행 한도 부족 가능성이 큽니다. 다만 일부 지갑은 추정치를 여유 있게 잡고 계약이 남은 gas를 소비하는 방식도 있어 비율 하나로 확정하지 않습니다.
slippage 실패는 INSUFFICIENT_OUTPUT_AMOUNT, too little received, price limit 같은 decoded reason이나 custom error로 나타날 수 있습니다. reason이 비어 있으면 input data를 ABI로 decode하고 trace에서 어느 내부 call이 revert했는지 봅니다. 탐색기 라벨은 편의 정보이므로 원시 receipt와 대조합니다.
| 단서 | Out of gas | 슬리피지 실패 |
|---|---|---|
| gas used | limit에 근접 가능 | 조건 검사까지 사용 |
| revert reason | 없거나 OOG | minimum output 관련 가능 |
| 해결 방향 | 정확한 estimate·limit | quote·min output 재검토 |
| 주요 위험 | 반복 수수료 | 과도 완화 시 나쁜 가격 |
| 공통 결과 | 상태 롤백·fee 사용 | 상태 롤백·fee 사용 |
슬리피지는 단순 퍼센트 버튼이 아닙니다
DEX frontend는 quote에 허용 비율을 적용해 minimum received를 calldata에 넣습니다. 서명과 block 포함 사이 reserve·가격·거래 순서가 바뀌면 실제 output이 아래로 내려가 revert할 수 있습니다. deadline이 지났거나 token transfer fee 때문에 수령량이 줄어도 유사 오류가 납니다.
허용치를 크게 높이면 성공 확률은 오를 수 있지만 불리한 체결과 sandwich 공격 노출이 커집니다. 유동성, 거래 크기, price impact, route를 먼저 확인하고 거래를 나누는 비용도 비교합니다. unknown token의 ‘slippage를 50%로’ 안내는 honeypot 가능성을 조사해야 합니다.
- TxID와 receipt status를 확인합니다.
- gas limit과 gas used를 비교합니다.
- revert reason·custom error를 decode합니다.
- amountOutMin·deadline·route를 확인합니다.
- 같은 조건 재전송 전 새 quote를 받습니다.
가스 추정 실패의 원인을 넓게 봅니다
eth_estimateGas 자체가 revert하면 allowance, balance, paused contract, 잘못된 path 같은 논리 문제일 수 있습니다. 지갑이 ‘gas를 추정할 수 없음’을 표시했다고 실제 원인이 out of gas인 것은 아닙니다. 현재 state로 eth_call 또는 simulation을 실행하고 error data를 확인합니다.
복잡한 경로와 비표준 token은 추정 오차가 생길 수 있지만 무한한 gas로 논리 오류를 해결할 수 없습니다. contract upgrade나 RPC 차이도 점검합니다. L2에서는 L1 data fee와 execution gas가 별도 표시될 수 있어 mainnet의 숫자를 그대로 비교하지 않습니다.
재시도는 원인별로 바꿉니다
실제 out of gas라면 공식 UI의 새 estimate와 contract 변화, gas limit 설정을 확인합니다. 슬리피지라면 새 quote, liquidity, minimum output과 deadline을 검토합니다. allowance 부족이면 승인 transaction 상태를 먼저 봅니다. 모든 경우 원래 서명 화면의 contract와 input이 공식 경로였는지 다시 확인합니다.
지원 요청에는 chain, TxID, receipt gas fields, decoded error, 기대한 minimum received를 제공합니다. 시드나 private key는 필요하지 않습니다. 반복 실패를 멈추고 원인별 증거를 모으면 수수료 손실과 위험한 설정 완화를 함께 줄일 수 있습니다.
자주 묻는 질문
gas used가 limit과 같으면 반드시 out of gas인가요?
강한 단서지만 contract가 의도적으로 gas를 소비했을 수 있어 trace와 error를 함께 확인해야 합니다.
슬리피지를 높이면 자산을 잃나요?
곧바로 잃는 것은 아니지만 훨씬 불리한 가격과 MEV 노출을 허용할 수 있습니다.
가스 추정 실패는 gas limit을 직접 크게 넣으면 되나요?
권한·잔액·deadline 같은 논리 revert일 수 있으므로 error data를 먼저 확인하세요.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



