비트코인 · 트론 · EVM · Solana — 입력창 하나
내 트랜잭션은 왜 실패했나?
트랜잭션 해시, 서명, 익스플로러 링크를 붙여 넣으세요. 체인은 자동으로 판별되고, 실패한 프로그램·컨트랙트와 디코딩된 오류, 그리고 실제로 통하는 해결책이 나옵니다.
진단은 어떻게 이루어지나
세 단계, 블랙박스 없음. 모든 결론은 검증 노드가 실제로 기록한 트랜잭션에서 나옵니다.
실패한 명령 찾기
실패한 트랜잭션에는 명령 인덱스와 오류가 함께 남습니다. 그 인덱스로 거부한 프로그램(System, SPL Token, Jupiter, Raydium, Pump.fun 등)을 특정합니다.
오류 코드 디코딩
커스텀 코드는 프로그램마다 다릅니다. 6001은 Jupiter에서 슬리피지지만 다른 프로그램에서는 다른 의미입니다. 코드를 낸 프로그램에 대응시킨 뒤, 그래도 모르면 프로그램이 남긴 로그 줄을 읽습니다.
코드가 아니라 해결책 제시
모든 진단은 구체적인 다음 행동으로 끝납니다. 슬리피지를 올리기, SOL 채우기, 토큰 계정 다시 만들기, 견적 새로 고치기. 여기에 원본 증거도 함께 보여 주므로 직접 확인할 수 있습니다.
입력창 하나로 9개 체인
네트워크를 고를 필요가 없으니 잘못 고를 일도 없습니다. 입력 형식으로 계열을 판단하고, 해시는 그 계열의 모든 체인에 병렬로 조회합니다.
가장 자주 보는 다섯 가지 실패
각 행에서 원인·해결 목록·실제 로그 예시가 담긴 전체 문서로 이동합니다.
| 보이는 것 | 의미 | 빠른 해결 |
|---|---|---|
슬리피지 허용치 초과custom program error 0x1771 |
가격이 슬리피지 한도를 넘어서, 더 나쁜 가격으로 체결하는 대신 스왑이 취소되었습니다. | 슬리피지를 조금 올리거나 거래량을 줄이세요. |
수수료를 낼 SOL 부족InsufficientFundsForFee |
수수료를 내는 계정에 네트워크 수수료와 신규 계정 임대료를 낼 SOL이 없습니다. | 지갑에 약 0.01 SOL을 보내고 다시 시도하세요. |
블록해시를 찾을 수 없음(만료)BlockhashNotFound |
블록해시 유효 기간(약 60~90초)을 넘겨 만료되었습니다. | 그냥 다시 시도하세요. 지갑이 새 해시로 다시 서명합니다. |
토큰 잔액 부족custom program error 0x1 |
보내는 수량보다 토큰 잔액이 적거나, 두 명령이 같은 잔액을 사용했습니다. | 잔액을 새로 고치고 더 적은 수량으로 다시 시도하세요. |
토큰 계정이 동결됨custom program error 0x11 |
토큰 발행사가 이 계정을 동결했습니다. 해제할 수 있는 것은 발행사뿐입니다. | 발행사에 문의하세요. 다른 누구도 해제할 수 없습니다. |
체인별 오류 사전
각 항목에서 오류의 의미, 해당 오류를 내는 프로그램·컨트랙트, 해결 절차를 설명합니다.
트랜잭션이 실패할 때 실제로 일어나는 일
Solana 트랜잭션은 원자적입니다. 모든 명령이 성공하거나, 하나도 성립하지 않습니다. 어떤 프로그램이 명령을 거부하면 런타임은 트랜잭션 전체를 되돌리지만, 수수료는 그대로 청구됩니다. 검증 노드가 이미 처리와 블록 포함 작업을 마쳤기 때문입니다. 실패한 스왑에서 몇천 lamports를 잃고 토큰 잔액은 그대로인 이유가 여기 있습니다.
지갑에 보이는 오류는 표면일 뿐입니다. 그 아래에는 세 가지 신호가 있고, 이들은 자주 서로 어긋납니다.
- 런타임 오류 — 실패한 명령의 인덱스가 담긴
InstructionError와,InsufficientFunds같은 내장 이름 또는{"Custom": 6001}같은 프로그램 정의 코드. - 프로그램 코드 — 프로그램마다 고유한 enum을 공개합니다. 6001은 Jupiter에서는 슬리피지지만 다른 프로그램에서는 권한 검사일 수 있습니다. 잘못된 프로그램으로 디코딩하면 자신 있게 틀린 답이 나옵니다. 오류 해설 도구에서 가장 흔한 버그입니다.
- 프로그램 로그 — 실패 직전에 프로그램이 출력하는 메시지. 이것이 ground truth입니다.
Program JUP6… failed: custom program error: 0x1771한 줄에 프로그램과 코드가 모두 들어 있습니다.
Tx Doctor는 이 세 가지를 모두 읽은 뒤에야 설명을 제시합니다. 처음 보는 코드를 만나면 추측하지 않고 그렇다고 말하며, 원본 로그를 함께 보여 주어 결론을 직접 검증할 수 있게 합니다.
실패처럼 보이지만 실패가 아닌 경우
자주 들어오는 문의 중 두 가지는 온체인 실패조차 아닙니다. 첫째, 블록해시 만료입니다. 서명은 되었지만 체인에 올라가지 않았으므로 트랜잭션은 존재하지 않고 자금도 움직이지 않았습니다. 둘째, 지갑 쪽 시뮬레이션 경고입니다. 많은 UI가 전송 전에 스왑을 시뮬레이션하는데, 무섭게 보이는 빨간 문구는 예측일 뿐 기록된 결과가 아닙니다. 체인에서 서명이 검색되지 않는다면 아무 일도 일어나지 않았습니다. 안심하고 다시 시도하세요.
자주 묻는 질문
Solana 트랜잭션은 왜 실패했나요?
대부분 네 가지로 나뉩니다. 스왑 슬리피지 초과, 수수료·임대료용 SOL 부족, 동결되었거나 없는 토큰 계정, 블록해시 만료입니다. 위에 서명을 붙여 넣으면 어느 프로그램이 거부했고 오류 코드가 무슨 뜻인지 확인할 수 있습니다.
지갑이나 개인 키가 필요한가요?
아니요. 읽기 전용 RPC 호출로 공개 온체인 데이터만 읽습니다. 지갑 연결, 서명, 시드 구문 입력을 요구하지 않습니다. 그런 것을 요구하면 사기입니다.
실패한 트랜잭션에도 수수료가 나가나요?
네. 롤백되기 전에 블록에 포함되어 실행되었기 때문에 기본 수수료와 우선 수수료가 청구됩니다. 보통 1센트 미만입니다.
custom program error 0x1771은 무슨 뜻인가요?
0x1771은 6001이며, Jupiter에서는 슬리피지 허용치 초과를 뜻합니다. 가격이 한도를 벗어나 라우터가 더 나쁜 가격으로 체결하는 대신 스왑을 취소했습니다.
Ethereum, Base, 비트코인, 트론도 되나요?
네. 0x 해시는 Ethereum, Base, Arbitrum One, OP Mainnet, Polygon, BNB Chain을 병렬로 조회해 실제로 실행한 체인에서 디코딩합니다. 64자리 해시는 비트코인과 트론을, base58 문자열은 Solana를 조회합니다.
트랜잭션을 찾을 수 없습니다. 어떻게 하나요?
몇 초 전에 전송했거나, 체인에 오르기 전에 만료되었거나, 테스트넷일 수 있습니다. 잠시 후 다시 시도하거나 블록 탐색기에서 해시를 열어 보세요.