NFTokenMint
NFTokenMint 트랜잭션은 대체 불가능한 토큰을 생성하고 이를 NFTokenMinter의 관련 NFTokenPage 객체에 NFToken 객체로 추가합니다. 이 트랜잭션의 필수 파라미터는 실제 토큰을 지정하는 Token 필드입니다. 이 트랜잭션은 NFTokenMinter가 불변으로 정의된 토큰 필드(예: TokenFlags)를 지정할 수 있는 유일한 기회입니다.
(NonFungibleTokensV1_1 수정안에 의해 추가되었습니다.)
NFTokenMint JSON 예시
NFTokenMint 필드
일반적인 필드 외에도 NFTokenMint 트랜잭션은 다음 필드를 사용합니다:
필드 | JSON 유형 | 설명 | |
NFTokenTaxon | 숫자 | UInt32 | 관련 NFT 시리즈 또는 컬렉션에 대한 임의의 분류군 또는 공유 식별자입니다. 일련의 NFT를 생성하려면 모두 동일한 분류를 제공하세요. |
Issuer | 문자열 | 계정 ID | (선택 사항) 계정 발신자가 다른 계정을 대신하여 토큰을 발행하는 경우 토큰의 발행자입니다. 트랜잭션을 전송하는 계정이 NFToken의 발급자인 경우 이 필드는 생략해야 합니다. 제공된 경우, 발행자의 AccountRoot 객체에는 이 트랜잭션의 발신자(이 트랜잭션의 계정 필드)로 설정된 NFTokenMinter 필드가 있어야 합니다. |
TransferFee | 숫자 | UInt16 | (선택 사항) 이 값은 NFT 토큰의 2차 판매가 허용되는 경우 발행자가 2차 판매에 대해 부과하는 수수료를 지정합니다. 이 필드의 유효한 값은 0에서 50000 사이이며, 0.001 단위로 0.00%에서 50.00% 사이의 전송률을 허용합니다. 이 필드가 제공되면 트랜잭션에 tfTransferable 플래그가 활성화되어 있어야 합니다. |
URI | 문자열 | blob | (선택 사항) 이 값은 NFT 토큰의 2차 판매가 허용되는 경우 발행자가 2차 판매에 대해 부과하는 수수료를 지정합니다. 이 필드의 유효한 값은 0에서 50000 사이이며, 0.001 단위로 0.00%에서 50.00% 사이의 전송률을 허용합니다. 이 필드가 제공되면 트랜잭션에 tfTransferable 플래그가 활성화되어 있어야 합니다. |
NFTokenMint 플래그
NFTokenMint 유형의 트랜잭션은 다음과 같이 Flags 필드에 추가 값을 지원합니다:
플래그 이름 | 16진수 값 | 소수점 값 | 설명 |
tfBurnable | 0x00000001 | 1 | 발행자(또는 발행자가 승인한 주체)가 발행한 NFT 토큰을 파기할 수 있도록 허용합니다. (NFToken의 소유자는 항상 그렇게 할 수 있습니다.) |
tfOnlyXRP | 0x00000002 | 2 | 발행된 NFToken은 XRP로만 구매하거나 판매할 수 있습니다. 이는 토큰에 전송 수수료가 있고 발행자가 XRP 이외의 통화로 수수료를 받고 싶지 않은 경우 바람직할 수 있습니다. |
tfTrustLine | 0x00000004 | 4 | DEPRECATED 발행자가 트러스트 라인을 자동으로 생성하여 발행된 NFToken을 전송할 때 받는 전송 수수료를 보관합니다. fixRemoveNFTokenAutoTrustLine 수정으로 인해 이 플래그 설정이 유효하지 않게 되었습니다. |
tfTransferable | 0x00000008 | 8 | 발행된 NFToken을 다른 사람에게 전송할 수 있습니다. 이 플래그가 활성화되지 않은 경우에도 토큰은 발행자로부터 또는 발행자에게 전송할 수 있습니다. |
추가 정보 포함
발행 중에 추가 정보를 지정해야 하는 경우(예: 특정 플랫을 참조하여 부동산을 식별하는 세부 정보, VIN을 지정하여 차량을 식별하는 세부 정보 또는 기타 개체별 설명) 트랜잭션 메모를 사용할 수 있습니다. 메모는 서명된 트랜잭션의 일부이며 기록 아카이브에서 사용할 수 있지만 ledger의 상태 데이터에는 저장되지 않습니다.
다른 계정을 대신해 발행하기
다른 계정을 위해 NFT를 발행하려면 두 가지 작업을 수행해야 합니다. 계정 A가 내 계정이고 계정 B가 NFT 토큰을 발행하려는 계정이라고 가정합니다:
계정 B의 NFTokenMinter 계정 설정을 계정 A로 설정합니다. (이는 계정 B가 계정 A를 신뢰하여 대신 NFT를 생성하도록 한다는 의미입니다.)
NFToken을 발행할 때 발행자 필드를 계정 B로 설정합니다.
발행자가 있는 NFTokenMint의 예시
이 트랜잭션은 발행자 rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2가 계정 루트의 NFTokenMinter 필드를 rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B로 설정하여 해당 계정이 토큰을 대신 발행하도록 승인한 것으로 가정합니다.
오류 사례
모든 트랜잭션에서 발생할 수 있는 오류 외에도 NFTokenMint 트랜잭션에서 다음과 같은 트랜잭션 결과 코드가 발생할 수 있습니다:
에러 코드 | 설명 |
temDISABLED | NonFungibleTokensV1 수정안이 활성화되지 않았습니다. |
temBAD_NFTOKEN_TRANSFER_FEE | TransferFee허용 범위 내에 있지 않습니다 . |
temINVALID_FLAG | 값 Flags에 허용되지 않는 비트가 활성화되어 있거나 유효한 플래그가 있습니다. fixRemoveNFTokenAutoTrustLine 수정안이 활성화된 경우 tfTrustLine플래그로 인해 이 오류가 발생합니다. |
temMALFORMED | 거래가 유효하게 지정되지 않았습니다. 예를 들어 URI필드가 256바이트보다 깁니다. |
tecNO_ISSUER | 발행자란 ledger에 존재하지 않는 계정을 의미합니다. |
tecNO_PERMISSION | 발행자 필드에 참조된 계정이 이 트랜잭션의 발신자에게 대신 발행할 수 있는 권한을 부여하지 않았습니다(NFTokenMinter 설정 사용). |
tecINSUFFICIENT_RESERVE | 소유자가 토큰을 발행한 후 업데이트된 준비금 요건을 충족하지 못했습니다. 새로운 NFT토큰은 각각 최대 32개의 NFT를 보유할 수 있는 새로운 NFTokenPage 객체가 필요한 경우에만 소유자의 준비금을 증가시킵니다. |
tecMAX_SEQUENCE_REACHED | 발행자의 MintedNFTokens 필드가 이미 최대값에 도달했습니다. 이는 발행자 또는 발행자를 대신하여 총 232-1 NFT토큰을 발행한 경우에만 가능합니다. |
Last updated