issuePass

서명 메시지 제출을 통한 지갑 소유 인증을 통해 홀더 정보를 제공하고, pass 발급을 요청합니다. 콘솔에서 사전에 생성된 Event ID와 Pass ID를 입력합니다. 해당 홀더에게 발행된 Pass에 대해 Holder ID가 구분자로 반환됩니다.

lunvs-account-id헤더에 들어갈 값은 어디서 확인할 수 있나요?

lunvs-account-id는 루니버스 계정 ID를 의미하는 값으로, 콘솔 사용자 ID를 구분하기 위한 값으로 사용됩니다. 모든 Web3 Pass API 요청에는 이 헤더가 공통으로 포함되어야 합니다. 입력 값은 루니버스 콘솔 우측 상단 프로필 > IAM 메뉴로 진입 후 아래와 같은 화면에서 'Alias'에 해당하는 값을 사용합니다 (붉은색 박스 영역).


signedMessage 포맷 가이드

패스 생성을 위한 요청 메시지 원본인 signedMessage는 Object 형식으로, 아래와 같은 필드를 포함해야 합니다.

  • holder: Pass를 발급할 NFT Holder의 주소입니다.
  • contractAddress: NFT 컨트랙트의 주소입니다.
  • tokenId: 해당 Holder가 보유한 토큰의 ID입니다. 한 Holder가 여러 토큰을 보유하고 있는 경우 대표 ID 하나만 사용합니다. 정수 형식으로 입력합니다..
  • environmentId: Pass 발급을 요청하는 대상 환경 ID입니다.

signature 생성 가이드

서명 데이터는 signedMessage를 eth_signTypedData_v4 형식으로 서명하여 생성합니다. 대표적인 지갑 어플리케이션인 MetaMask를 통해 eth_signTypedData_v4 형식의 서명 데이터를 만드는 방법 예시는 여기에서 확인하실 수 있습니다.

아래 코드는 Chrome의 개발자 도구 콘솔에서 쉽게 서명 데이터를 만들어볼 수 있는 예제 코드입니다. API 테스트를 위해 활용해보세요.

message = {
    "domain": {
      "name": "luniverse-pass",
      "version": "1"
    },
    "message": {
      "holder": "{EOA_ADDRESS}",
      "contractAddress": "{CONTRACT_ADDRESS}",
      "tokenId": 0,
      "environmentId": "{LUNIVERSE_ENVIRONMENT_ID}"
    },
    "primaryType": "Pass",
    "types": {
      "EIP712Domain": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "version",
          "type": "string"
        }
      ],
      "Pass": [
        {
          "name": "holder",
          "type": "address"
        },
        {
          "name": "contractAddress",
          "type": "address"
        },
        {
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "name": "environmentId",
          "type": "string"
        }
      ]
    }
  }

msgParams = JSON.stringify(message)
ethereum.enable()
ethereum.request({method:'eth_signTypedData_v4', params:[ethereum.selectedAddress, msgParams], from: ethereum.selectedAddress})

eventId는 어디서 확인할 수 있나요?

Event ID는 루니버스 콘솔의 좌측 메뉴에서 Web3 Pass > Events & Passes 메뉴 진입하여 Pass를 생성하고자 하는 대상 Event를 클릭하여 Event 상세 화면으로 진입한 후 주소창에서 확인하실 수 있습니다. 해당 페이지의 주소는 https://console.luniverse.io/nft/events/{EventID} 형식으로 구성되므로, /events/ 이후의 값을 복사하여 API 요청시 사용해주세요.


passId는 어디서 확인할 수 있나요?

Pass ID는 Event 상세 화면 내 Pass 목록에서 실제 발행을 원하는 Pass를 클릭한 뒤 주소창에서 확인하실 수 있습니다. 해당 페이지 주소는 https://console.luniverse.io/nft-pass/passes/{PassID} 형식으로 구성되므로, /passes/ 이후의 값을 복사하여 API 요청시 사용해주세요.

Language
Authorization
Header
Click Try It! to start a request and see the response here!