NFT 홀더인증(검증)

개요

Signature와 원본 메시지, 공개키를 비교하여 해당 Signature를 특정 주소가 서명한 것이 맞는지 검증합니다.

서명 당시의 prefix와 검증에 쓰일 prefix가 동일해야만 Signature 복구 시 서명자의 값이 일치합니다.

Android: 서명자임을 검증할 공개키(fromAddress)가 Signature의 실제 서명자가 아니라면, 서명자와 다른 공개키를 반환합니다.

iOS: 변수로 전달받은 Signature와 새롭게 서명한 Signature를 비교합니다(단말기에 개인키 필요). 일치하지 않으면 오류를 반환합니다.(ex: “서명이 일치하지 않습니다.”)

  • prefix에 지정한 값으로만 '검증'이 가능합니다. 즉, 'NFT 홀더인증(서명)'에 사용한 prefix를 'NFT 홀더인증(검증)' prefix 매개변수에 그대로 넣어야 문제없이 검증됩니다.

Parameters

이름타입설명참조

network

String

네트워크

required

signature

String

서명

required

fromAddress

String

서명자

required

collection_id

String

컬렉션 아이디

required

token_id

String

토큰 아이디

required

prefix

String

서명 메세지에 포함될 고유값

required

Response

타입설명

String

주어진 Signature의 서명자 공개키

example

// parameters
val network = "ethereum"
val signature = "f0a0d0f1489fd22..."
val fromAddress = "0x..."
val collection_id = "0x..."
val token_id = "1"
val prefix = "singOK"
val getSignerAddressFromSignature = getSignerAddressFromSignature(network,
    signature,
    fromAddress, 
    collection_id, 
    token_id,
    prefix)
println(getSignerAddressFromSignature)

/**
 * {
  "result" : "OK",
  "value" : [
            {"address" : "0x.."}
            ]
    }
*/

Last updated