궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

해설블록체인 기술

ERC-721과 ERC-1155, NFT 식별과 전송 구조 비교

ERC-721의 tokenId별 단일 소유와 ERC-1155의 id별 수량 장부를 비교하고 승인·배치 전송·안전 수신 검사를 읽는 방법을 설명합니다.

난이도 중급주제 카테고리와 개념 밀도 기준
단일 조각상 진열대와 여러 칸 수집함을 대비한 ERC-721·ERC-1155 비교 그림
주제의 이해를 돕기 위한 개념 일러스트
먼저 읽는 핵심

ERC-721의 balanceOf는 NFT 개수이고 ownerOf(tokenId)는 개별 소유자를 찾는다.
ERC-1155의 balanceOf(account,id)는 특정 id 수량이며 batch 함수로 여러 항목을 한 번에 다룬다.
ApprovalForAll은 한 작품이 아니라 해당 계약의 여러 자산을 관리할 수 있는 넓은 권한이다.

ERC-721은 계약과 tokenId의 조합으로 NFT 하나하나를 식별하고, ownerOf가 소유자 한 명을 돌려줍니다. ERC-1155는 계약 하나에서 여러 id를 관리하며 주소마다 id별 수량을 기록하므로, 대체 가능한 항목과 대체 불가능한 항목을 함께 표현할 수 있습니다. 두 표준 모두 안전 전송 때 수신자를 확인하는 장치(수신 훅)와 운영자(operator) 승인을 제공하지만 함수, 이벤트, 일괄 처리 방식은 서로 다릅니다.

ERC-721은 tokenId마다 소유자 한 명을 기록합니다

ERC-721 계약에서 NFT는 계약 주소와 tokenId의 조합으로 구분됩니다. ownerOf(tokenId)는 현재 소유자를 돌려주고, balanceOf(owner)는 그 주소가 해당 계약에서 보유한 NFT 개수를 돌려줍니다. 같은 tokenId를 두 주소가 0.5개씩 나눠 소유하는 장부는 표준이 아닙니다.

tokenId 숫자 자체가 이미지나 희소성을 뜻하지는 않습니다. 선택 기능인 tokenURI가 메타데이터 위치를 가리킬 수 있지만, 이미지와 속성의 저장 방식, 변경 가능성, 서버가 계속 살아 있을지는 별개 문제입니다. 소유권 장부와 콘텐츠 보존을 나눠 평가해야 합니다.

ERC-721과 ERC-1155 핵심 구조
항목 ERC-721 ERC-1155
잔액 조회 balanceOf(owner) 개수 balanceOf(account,id) 수량
개별 식별 계약+tokenId 계약+id, 수량 포함
일괄 전송 기본 표준에 없음 safeBatchTransferFrom
대표 이벤트 Transfer TransferSingle·TransferBatch
그림으로 보기NFT의 기록과 이용 조건
토큰 소유 기록과 콘텐츠 이용 권한, 서비스 제공 조건을 구분한 개념도
그림과 함께 짚어볼 본문 내용

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.

  1. ERC-721은 tokenId마다 소유자 한 명을 기록합니다

    ERC-721 계약에서 NFT는 계약 주소와 tokenId의 조합으로 구분됩니다.

  2. ERC-1155는 계약 하나에 여러 id와 수량을 둡니다

    ERC-1155는 다중 토큰 표준(Multi Token Standard)으로, 계약 하나에서 여러 토큰 id를 관리합니다.

  3. 안전 전송은 계약 수신자의 응답을 확인합니다

    ERC-721의 safeTransferFrom은 받는 쪽이 계약이면 onERC721Received를 호출하고, 정해진 값이 돌아오지 않으면 거래를 되돌립니다.

설명을 위한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.

ERC-1155는 계약 하나에 여러 id와 수량을 둡니다

ERC-1155는 다중 토큰 표준(Multi Token Standard)으로, 계약 하나에서 여러 토큰 id를 관리합니다. 특정 id의 발행량이 1이면 대체 불가능한 항목처럼, 여러 개면 게임 아이템이나 이용권 같은 수량형 자산으로 표현할 수 있습니다. 주소별 잔액은 소유자와 id 두 축으로 조회합니다.

여러 id와 수량 배열을 safeBatchTransferFrom으로 한 번에 보내고, balanceOfBatch로 묶어 조회할 수 있습니다. 아이템을 대량으로 옮길 때 호출 수를 줄일 수 있지만 배열 길이와 각 수량을 모두 검증해야 합니다. 일괄 거래 하나에 다양한 가치와 권한이 담길 수 있습니다.

표준 이름보다 계약 주소·id·수량이라는 세 값을 함께 읽어야 합니다.

JOBCOIN 해설

안전 전송은 계약 수신자의 응답을 확인합니다

ERC-721의 safeTransferFrom은 받는 쪽이 계약이면 onERC721Received를 호출하고, 정해진 값이 돌아오지 않으면 거래를 되돌립니다. 일반 transferFrom에는 이 수신 확인이 없어서 NFT를 다룰 줄 모르는 계약에 토큰이 갇힐 수 있습니다. 안전 전송이라고 해도 받는 계약이 이후 회계까지 제대로 처리한다는 경제적 보증은 아닙니다.

ERC-1155의 safeTransferFrom과 safeBatchTransferFrom도 받는 계약의 onERC1155Received 또는 onERC1155BatchReceived 응답을 확인합니다. 개인 주소로 보내는지 계약으로 보내는지, 그 계약이 표준 수신 인터페이스를 구현했는지 살핍니다. 브리지나 마켓 계약은 공식 입금 함수를 쓰라고 요구할 수 있습니다.

  • 계약 주소와 tokenId 또는 id를 함께 확인합니다.
  • ERC-1155는 수량 배열의 순서와 값을 모두 읽습니다.
  • 받는 쪽이 계약이면 표준 수신 훅을 구현했는지 확인합니다.
  • 메타데이터 주소와 소유권 장부를 따로 검증합니다.

개별 승인과 전체 운영자 승인을 구분합니다

ERC-721의 approve는 특정 tokenId를 움직일 수 있는 주소를 지정하며, 전송이 일어나면 그 개별 승인은 초기화됩니다. setApprovalForAll은 운영자가 해당 ERC-721 계약 안에 있는 소유자의 모든 NFT를 관리하도록 허용합니다. 컬렉션에서 하나만 거래하려고 서명했더라도 실제로는 전체 운영자 권한일 수 있습니다.

ERC-1155는 표준적으로 setApprovalForAll을 써서 운영자에게 소유자의 모든 id를 옮길 권한을 줍니다. 특정 id 한 개의 전송 승인이라고 가정하면 안 됩니다. 승인 화면에서 운영자 주소, 토큰 계약, 전체 승인 여부(참·거짓 값)를 확인하고, 다 쓴 뒤 해제할지 정합니다.

이벤트 형식이 인덱싱과 공급량 해석을 바꿉니다

ERC-721은 Transfer 이벤트의 tokenId가 색인(indexed) 항목이라 개별 소유권 이동을 추적하기 쉽습니다. 발행(민팅)은 보통 보낸 주소가 제로 주소인 이동으로, 소각은 받는 주소가 제로 주소인 이동으로 나타납니다. 생성자 단계에서는 예외가 있을 수 있으니, 이벤트만으로 공급량을 재구성할 때는 표준이 밝혀 둔 주의 사항을 확인합니다.

ERC-1155는 TransferSingle과 TransferBatch에 operator, from, to, id, value를 기록합니다. 제로 주소 규칙으로 발행량과 소각량을 계산할 수 있지만 일괄 배열을 정확히 펼쳐서 읽어야 합니다. URI 이벤트는 메타데이터 위치가 바뀌었음을 알릴 수 있을 뿐, 모든 id의 콘텐츠가 고정돼 있다고 보증하지 않습니다.

마켓 화면보다 인터페이스와 실제 호출을 확인합니다

같은 이미지가 여러 플랫폼에 보여도 계약 주소가 다르면 다른 토큰입니다. ERC-165의 supportsInterface로 표준 지원 여부를 조회하고, 검증된 소스에서 구현을 확인합니다. 프록시 계약이라면 현재 구현 계약과 업그레이드 권한도 살핍니다.

서명 전에는 safeTransferFrom인지 setApprovalForAll인지, 단일 id인지 일괄인지 확인합니다. 거래 뒤에는 표준 이벤트와 잔액·ownerOf 변화를 대조합니다. 체인 밖에서 서명한 주문은 당장 전송되지 않더라도 나중에 마켓 계약이 실행할 수 있으므로 논스, 만료, 취소 상태를 따로 관리합니다.

자주 묻는 질문

ERC-1155는 모두 대량 발행 NFT인가요?

아닙니다. id별 수량을 1로 두면 대체 불가능한 항목처럼 쓸 수 있고, 수량이 여럿이면 반대체 자산도 표현할 수 있습니다.

safeTransferFrom이면 자산이 절대 잠기지 않나요?

표준 수신 응답을 확인해 단순한 잘못 보내기를 줄여 주지만, 받는 계약의 업무 로직과 인출 가능 여부까지 보증하지는 않습니다.

ApprovalForAll은 NFT 한 개 승인인가요?

아닙니다. 지정한 운영자가 해당 토큰 계약에서 소유자의 여러 자산을 관리할 수 있는 넓은 권한입니다.

더 깊이 읽기

본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.

참고한 원문 자료

자료 확인 기준일 2026.09.27
  1. ERC-721: Non-Fungible Token Standardeips.ethereum.org
  2. ERC-1155: Multi Token Standardeips.ethereum.org
작성 방식과 확인 범위
출처 수집
원문 링크 2개 제공
작성·확인
공식 기관 자료를 근거로 AI 도구를 활용해 작성했고, 운영자가 발행 전에 읽어 확인합니다.
전문가 검토
세무·법률 전문가 검토는 거치지 않았습니다.

투자·세무 판단은 전문가와 상의하세요. 제도와 거래소 안내는 바뀔 수 있으니 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →