Hive XPLA Games API는 여러 장르의 웹 3 게임 개발을 지원하는 표준화 API입니다. XPLA Games API 서버를 통해 게임에 블록체인 기능을 쉽게 적용하여 웹 3 게임을 개발할 수 있도록 제공합니다.

개요

XPLA Games API는 게임 재화를 토큰으로 교환하거나 발행할 수 있는 기능을 제공합니다. 유저의 요청에 따라 XPLA Games API는 게임 서버에 게임에 대한 정보 요청과 관련된 작업을 요구하고 블록체인에 기록될 수 있도록 작업을 진행합니다. 블록체인에 기록이 필요한 API 사용 시 XPLA Games API의 결괏값으로, 서명되지 않은 트랜잭션(unsignedTx)을 전달받습니다. 사용자는 서명 후 broadcast를 통해 최종적으로 블록체인에 기록할 수 있습니다.

  • 게임 재화를 게임 토큰과 교환할 수 있는 컨버팅 기능
  • 게임 재화를 NFT로 발행할 수 있는 민팅 기능
  • 발행된 NFT를 lock/unlock 할 수 있는 기능
  • 발행된 NFT를 소각할 수 있는 기능

기본 요건

  • 콘솔에서 블록체인 기능 설정과 게임 서버 API 등록을 완료해야 됩니다.
  • access token을 발급받고 XPLA Games API 호출 시 전송해야 됩니다.
  • 블록체인 게임API 서버에서 게임 서버를 호출할 수 있도록 방화벽 오픈이 필요합니다.
  • 인증토큰(auth-token API)을 발급받고 각 API를 호출할 수 있습니다. 유효기간이 존재하며 만료 시 재인증을 통해 인증토큰을 발급합니다.

인증

auth-token

표준 게임 API 사용에 필요한 인증 토큰을 발행하는 API입니다.

  • Request URL
상용 URL https://bc-platform-auth.withhive.com/v1/auth-token
Sandbox URL https://sandbox-bc-platform-auth.withhive.com/v1/auth-token
HTTP Method POST
Content-Type application/json
  • Request Body
필드명 설명 타입 필수 여부
id 인증 토큰을 발급받기 위한 ID string Y
secretKey API 사용에 필요한 비밀 key string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.accessToken API 사용에 필요한 인증토큰 string
data.refreshToken accessToken 만료 시 갱신할 수 있는 토큰 string
  • Request Sample
  • Response Sample

refresh-token

access token이 만료됐을 경우 auth-token에서 발급받은 refresh token을 이용하여 XPLA Games API 사용에 필요한 인증 토큰을 발행하는 API입니다.

  • Request URL
상용 URL https://bc-platform-auth.withhive.com/v1/refresh-token
Sandbox URL https://sandbox-bc-platform-auth.withhive.com/v1/refresh-token
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 refreshToken string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.accessToken API 사용에 필요한 인증토큰 string
data.refreshToken accessToken 만료 시 갱신할 수 있는 토큰 string
  • Request Sample
  • Response Sample

Mint

mint/confirm

게임 자산(아이템/캐릭터)의 민팅 가능 여부를 확인하고 민팅에 필요한 수수료 계산과 metadata를 확인하는 API입니다.

게임 자산 조회 API에서 조회된 게임 자산으로 NFT를 발행 여부 확인을 요청할 수 있습니다. 표준 게임 API는 콘솔에 설정된 수수료를 기반으로 민팅에 필요한 수수료를 계산하고 게임 서버에 민팅이 가능한지 확인 요청을 합니다. 표준 게임 API는 게임사에서 민팅 가능 여부 확인과 metadata를 전달받고 수수료 정보와 함께 결괏값을 전달합니다.

  • API 처리 과정

  • Request URL
    상용 URL https://bc-platform-api.withhive.com/game/v1/mint/confirm
    Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/mint/confirm
    HTTP Method POST
    Content-Type application/json

     

  • Request Header
    필드명 설명 타입 필수 여부
    Authorization API 호출 시 요구되는 access token string Y
    appid 로그인 한 게임의 AppID string Y
    pid hive 로그인 성공 후 player id string Y
    address 사용자 xpla wallet address string Y

     

  • Request Body (item과 token을 각각 요청하거나 같이 요청할 수 있음)
    필드명 설명 타입 필수 여부
    Server 게임 서버(채널)의 정보 string Y
    characterId 게임 캐릭터 아이디 string N
    categoryId 콘솔에서 설정한 민팅유형(캐릭터, 아이템 단일/조합 민팅) 구분 코드 number Y
    assets 게임 자산 리스트 array 조건에 따라 다름
    assets.uniqueId 아이템의 유니크 아이디 string
    assets.mintingFeeCode 민팅 시 필요한 수수료 number
    tokens 토큰 리스트 array 조건에 따라 다름
    tokens.tokenId NFT 아이템 아이디 string
    tokens.mintingFeeCode 민팅 시 필요한 수수료 number

     

  • Response
    필드명 설명 타입
    code api 호출 결과 코드, 0:성공 number
    message 결과 메시지 string
    data API 응답 값 json
    data.governanceTokenFee 서비스 수수료 string
    data.gameTokenFee 게임 수수료 string
    data.metadata.name 메타데이터 – 아이템의 이름 string
    data.metadata.description 메타데이터 – 아이템의 설명 string
    data.metadata.image 메타데이터 – 아이템의 이미지 string
    data.metadata.animation_url 메타데이터 – 아이템의 애니메이션 주소 string
    data.metadata.youtube_url 메타데이터 – 아이템의 유투브 주소 string
    data.metadata.image_data 메타데이터 – 아이템의 이미지 데이터 string
    data.metadata.external_url 메타데이터 – 아이템의 마켓 등록 주소 string
    data.metadata.background_color 메타데이터 – 아이템의 배경색상 string
    data.metadata.attributes{} 메타데이터 – 게임사 정의 특성 array(json)
    data.metadata.attributes.trait_type 메타데이터 – 특성명 string
    data.metadata.attributes.value 메타데이터 – 값 string 또는 number
    data.requestId API 호출 request id string
    data.id 아이템/캐릭터의 고유 아이디 string

     

  • data.metadata.attributes 참고
trait_type 설명 value 필수 여부
category NFT 아이템의 범주를 구분하는 카테고리
예) Entertainment, Art, Game
Game Y
collection 유사한 특성을 가진 NFT 아이템을 구분하기 위한 컬렉션. 동일한 컬렉션의 NFT 아이템은 동일한 카테고리에 포함 Summoners War Y
creator NFT 아이템의 창작자 또는 저작권자 Blueberry Studio Y
provider NFT 아이템의 판매 또는 배포 권리를 가진 제공자 Com2uS Corp. Y
thumbnail_url NFT 아이템의 목록을 노출할 때 보여지는 썸네일 이미지를 제공하는 URL (580 x 580 크기의 이미지를 권장하며, JPG : 최대 300 kB 권장 / Gif: 최대 5 MB 권장) https://cdn.c2xnft.com/nft/item/f7MPrUmecf1648091769.jpg Y
file_type 파일 종류를 구분하는 값으로 image, audio, video, 3d 중에 하나의 값을 가질 수 있습니다. image Y
serial 동일한 컨텐츠에 대해 복수의 NFT 아이템이 발행되었을 때, 각 아이템을 구분하기 위한 일련번호 #1 N
serial_max 동일한 컨텐츠에 대해 복수의 NFT 아이템이 발행되었을 때, 발행된 총량 100 N
series 하나의 콜렉션을 다수의 범주로 분류할 때 사용하는 시리즈 APPLEVERY series1 N
pack_name 판매 단위가 되는 패키지의 이름 APPLEVERY ZERO: FEVER EPILOGUE PACK N
pack_url 패키지의 상세 화면에서 보이는 멀티미디어를 제공하는 URL (580 x 580 크기의 이미지를 권장하며, JPG : 최대 300 kB 권장 / GIF: 최대 5 MB 권장) https://cdn.c2xnft.com/nft/item/xjQJEJWRFj1648091989.jpg N
rarity NFT 아이템의 가치 또는 희귀도에 대한 등급 GOLD N
extension_url 변경 가능한 값을 NFT 아이템에 노출할 때 사용하는 url로 주소는 변경 불가능 https://cdn.c2xnft.com/extensionUrlTest/dkTdfk32.json N
  • Request Sample

  • Response Sample

mint

게임 자산(아이템/캐릭터)을 NFT로 발행하는 API입니다.

NFT 발행 여부가 검증된 게임 자산으로 NFT를 발행할 수 있습니다. 표준 게임 API는 콘솔에 설정된 수수료를 기반으로 수수료 배분(Game Provider, Fan Card Holder, C2X Staking Holder, Convert Pool, Treasury)이 발생합니다. 민팅 API 수행 시 표준 게임 API 서버는 게임 서버에 NFT 발행에 대한 처리를 요청합니다. 게임 자산이 아직 NFT로 발행되는 단계가 아니므로 게임 자산에 대해 잠금 또는 상응하는 처리가 필요합니다. NFT 생성에 필요한 트랜잭션을 생성하고 결과를 전달합니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
  2. 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
  3. 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 삭제(비활성화) 시켜야 합니다.
  4. 사용자는 정상적으로 발행된 NFT를 지갑 또는 https://explorer.xpla.io에서 확인 가능합니다.

 

  • API 처리 과정

  • Request URL
    상용 URL https://bc-platform-api.withhive.com/game/v1/mint
    Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/mint
    HTTP Method POST
    Content-Type application/json
  • Request Header
    필드명 설명 타입 필수 여부
    Authorization API 호출 시 요구되는 access token string Y
    appid 로그인 한 게임의 AppID string Y
    pid hive로그인 성공 후 player id string Y
    address 사용자 xpla wallet address string Y
  • Request Body
    필드명 설명 타입 필수 여부
    server 게임 서버(채널) 정보 string Y
    characterId 게임 캐릭터 아이디 string N
    categoryId 아이템, 캐릭터등 구분 코드 number Y
    requestId mint/confirm API에서 리턴 받은 requestId string Y
    id mint/confirm API에서 리턴 받은 아이템/캐릭터의 고유 아이디 string Y
    data.governanceTokenFee mint/confirm API에서 리턴 받은 서비스 수수료 string Y
    data.gameTokenFee mint/confirm API에서 리턴 받은 게임 수수료 string Y
    metadata mint/confirm API에서 생성된 metadata string Y
  • Response
    필드명 설명 타입
    code api 호출 결과 코드 , 0:성공 number
    message 결과 메시지 string
    data API 응답 값 json
    data.tokenId NFT ID string
    data.unsignedTx 서명되지 않은 Transaction string
    data.tokenUri 메타데이터의 주소 string
    data.requestId API 호출 request id string

 

  • Request Sample
  • Response Sample

Burn

발행된 NFT를 소각하는 API입니다.

유저는 발행된 NFT를 소각할 수 있습니다. 소각 시 NFT를 확인하고 게임 서버에 소각에 대한 처리를 요청합니다. NFT가 아직 소각되지 않는 단계로 게임 서버는 소각에 따른 대기 처리가 필요합니다. NFT 소각에 필요한 트랜잭션을 생성하고 결과를 전달합니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
  2. 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
  3. 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산에 대한 처리가 필요합니다.
  4. 사용자는 정상적으로 발행된 NFT를 지갑 또는 https://explorer.xpla.io에서 확인 가능합니다.
  • API 처리 과정

  • Request URL
    상용 URL https://bc-platform-api.withhive.com/game/v1/burn
    Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/burn
    HTTP Method POST
    Content-Type application/json

     

  • Request Header
    필드명 설명 타입 필수 여부
    Authorization API 호출 시 요구되는 access token string Y
    appid 로그인 한 게임의 AppID string Y
    pid hive로그인 성공 후 player id string Y
    address 사용자 xpla wallet address string Y

     

  • Request Body
    필드명 설명 타입 필수 여부
    server 게임서버(채널) 정보 string Y
    characterId 게임 캐릭터 아이디 string N
    tokenId NFT ID string Y

     

  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.unsignedTx 서명되지 않은 Transaction string
data.requestId API 호출 request id string
  • Request Sample

  • Response Sample

Convert

convert/currency

유저가 보유한 게임 재화와 코인(토큰) 정보 및 현재 컨버트 가능한 최소, 최대 수량을 조회하는 API입니다.

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/currency
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/currency
HTTP Method GET
Content-Type application/json

 

  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y

 

  • Request Query String
필드명 설명 타입 필수 여부
characterId 로그인 한 게임에서 선택한 캐릭터 id string Y
server 로그인 성공 후 반환된 DID string Y
  • Response

\wiki\pages\viewpage.action

필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.server 서버정보 string
data.pid 플레이어 id string
data.providerAddress 게임 provider 지갑 주소 string
data.tokenContract 게임토큰 contract 주소 string
data.currency 코인/토큰, 게임 재화 정보 array(json)
data.currency.convertTypeCd 1차 재화, 2차 재화 타입 string
data.currency.goodsName 게임 재화 이름 string
data.currency.goodsCode 게임 재화 코드 string
data.currency.goodsImge 게임 재화 이미지 string
data.currency.minConvertQuantityOneTime 1회 최소 교환 가능 게임 재화 수량 number
data.currency.maxConvertQuantityDays 1일 최대 교환 가능 게임 재화 수량 number
data.currency.tokenName 코인/토큰 이름 string
data.currency.tokenImage 코인/토큰 이미지 string
data.currency.tokenAmount 보유 코인/토큰 수량 json
data.currency.tokenAmount.tokenSymbol 코인/토큰 심볼 string
data.currency.tokenAmount.decimals 코인/토큰 소수점 자리수 number
data.currency.tokenAmount.amount 보유 코인 수량 string
data.currency.currencyAmount 보유 게임 재화 수량 string
data.currency.avalibleAmount 교환 가능한 게임 재화 수량 string

 

  • Request Sample
  • Response Sample

convert/simul-to-currency

코인/토큰을 게임 재화(1차, 2차)로 컨버트 시 컨버트 풀에 저장된 비율에 따른 예상 비율과 예상 수량을 조회하는 API입니다.

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/simul-to-currency
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/simul-to-currency
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
convertTypeCd 1차 재화, 2차 재화 코드 string Y
amount 컨버트 할 코인/토큰 수량 string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.result 컨버트 풀 조회 결과 값 number
data.ratio 컨버트 비율 number
data.value 컨버트 게임 재화 수량 number
data.expected_return_amount 컨버트 예상 게임 재화 수량 number
data.expected_offer_amount 컨버트 예상 코인/토큰 수량 number
  • Request Sample
  • Response Sample

convert/to-currency

코인/토큰을 게임 재화(1차,2차)로 변경하는 API입니다.

교환 가능한 수량, 비율 조회 후 사용자의 지갑 주소에서 Provider 주소로 코인/토큰을 전송합니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명합니다.
  2. 사용자는 broadcast API를 호출하여 서명한 tx를 블록체인에 기록합니다.
  3. 게임 서버는 트랜잭션 성공 여부에 따라 게임 재화를 증가시켜야 합니다.
  4. 정상 처리된 토큰은 지갑 또는 https://explorer.xpla.io에서 확인할 수 있습니다.

 

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/to-currency
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/to-currency
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
characterId 컨버트시 재화를 받을 캐릭터 아이디 string Y
convertTypeCd 1차 재화, 2차 재화 코드 string Y
amount 컨버트 할 코인/토큰 수량 String Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.requestId api 고유값 string
data.unSignedTx unsignedTx 인코딩 값 string
data.appId app id string
data.pid 플레이어 id string
data.address 유저 지갑 주소 string
data.server 게임 서버 정보 string
data.characterId 게임 캐릭터 고유 아이디 string
data.convertTypeCd 1차 재화, 2차 재화 타입 string
data.inputAmount 입력 코인/토큰 수량 string
data.amount 컨버트 요청 토큰 수량 string
data.convertCurrencyAmount 컨버트될 재화 수량 string
  • Request Sample
  • Response Sample

convert/simul-to-token

게임 재화(1차, 2차)를 코인/토큰으로 컨버트 시 컨버트 풀에 저장된 비율에 따른 예상 비율과 예상 수량을 조회하는 API입니다.

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/simul-to-token
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/simul-to-token
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
convertTypeCd 1차 재화, 2차 재화 코드 string Y
amount 컨버트 할 게임재화수량 string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.result 컨버트 풀 조회 결과 값 number
data.ratio 컨버트 비율 number
data.value 컨버트 토큰 수량 number
data.expected_return_amount 컨버트 예상 게임 재화 수량 number
data.expected_offer_amount 컨버트 예상 코인/토큰 수량 number
  • Request Sample
  • Response Sample

convert/to-token

게임 재화(1차, 2차)를 코인(토큰)으로 변경하는 API입니다.

교환 가능한 수량, 비율 조회 후 사용자의 캐릭터에서 재화를 감소시킨 후 Provider 지갑에서 해당 비율만큼 사용자에게 코인/토큰 전송합니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
  2. 사용자는 broadcast API를 호출하여 서명한 tx를 블록체인에 기록합니다.
  3. 정상적으로 처리된 토큰을 지갑 또는 https://explorer.xpla.io에서 확인할 수 있습니다.
  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/to-token
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/to-token
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
characterId 컨버트시 재화를 감소시킬 캐릭터 아이디 string Y
convertTypeCd 1차 재화, 2차 재화 코드 string Y
amount 컨버트 할 게임 재화 수량 string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.requestId api 고유값 string
data.appId app id string
data.txHash 트랜잭션 hash 값 string
data.server 서버 정보 string
data.pid 플레이어 id string
data.characterId 게임 캐릭터 고유 아이디 string
data.address 유저 지갑 주소 string
 data.convertTypeCd 1차 재화, 2차 재화 타입 string
data.amount 입력 게임 재화 수량 string
data.convertTokenAmount 컨버트 코인/ 토큰 수량 string
  • Request Sample
  • Response Sample

Lock/unlock

lock/nft-list

lock 상태인 NFT 리스트를 조회하는 API입니다.

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/nft-list
샌드박스 URL https://sandbox-bc-platform-api.withhive.com/game/v1/nft-list
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
address 사용자 xpla wallet address string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.address 유저 지갑 주소 string
data.lockedNft lock 상태인 nft 리스트 array(json)
data.lockedNft.owner 토큰의 소유자 string
data.lockedNft.nft_address NFT 컨트랙트 주소 string
data.lockedNft.token_id 토큰 ID string
data.lockedNft.lock_info 토큰 URL string
  • Request Sample
  • Response Sample

lock

보유 중인 NFT를 Lock 상태로 만드는 API입니다.

NFT로 발행된 게임 자산을 다시 게임에서 사용하기 위해서 NFT를 거래할 수 없도록 처리합니다. 사용자는 보유 중인 NFT를 lock contract로 전송함으로써 게임 자산을 사용할 수 있지만 NFT를 다른 지갑으로 전송할 수 없습니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
  2. 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
  3. 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 생성(활성화) 시켜야 합니다.
  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/lock
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/lock
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
characterId 컨버트시 재화를 받을 캐릭터 아이디 string Y
tokenId lock할 토큰 id string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.requestId api 고유값 string
data.tokenId nft 고유 id string
data.nftContract nft contract 주소 string
data.unSignedTx unsignedTx 인코딩 값 string
  • Request Sample
  • Response Sample

unlock

보유 중인 NFT를 Unlock 상태로 만드는 API입니다.

게임에서 사용 중인 게임 자산(NFT)을 다시 거래할 수 있도록 처리합니다. 사용자의 게임 자산을 비활성화시키고 NFT를 다시 사용자의 지갑으로 전송합니다.

  • 추가 처리
  1. 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
  2. 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
  3. 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 삭제(비활성화) 시켜야 합니다.
  4. 사용자는 unlock된 NFT를 지갑 또는 https://explorer.xpla.io에서 확인 가능합니다.

 

  • API 처리 과정 (그림에서 API 서버 -> XPLA Games API 서버로 변경)

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/unlock
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/unlock
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
characterId 컨버트시 재화를 받을 캐릭터 아이디 string Y
tokenId lock할 토큰 id string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.requestId api 고유값 string
data.tokenId nft 고유 id string
data.nftContract nft contract 주소 string
data.txHash txHash 정보 json
data.txHash.height 블록 height정보 , 0:정상 number
data.txHash.txhash 트랜잭션 hash값 string
data.txHash.raw_log 로그 정보, []:정상 string
  • Request Sample
  • Response Sample

Transaction

broadcast

서명된 트랜잭션을 블록체인에 기록하기 위한 API입니다. 블록체인에 기록하기 위해서 Convert, Lock, Mint, Burn은 사용자의 서명이 필요합니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/broadcast
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/broadcast
HTTP Method POST
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
  • Request Body
필드명 설명 타입 필수 여부
requestId 트랜잭션 고유값(db저장용) string Y
signedTx signedTx 인코딩 값 string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.height 블록 height정보 , 0:정상 number
data.txhash 트랜잭션 hash값 string
data.raw_log 로그 정보, []:정상 string
  • Request Sample
  • Response Sample

tx

블록체인에 기록된 트랜잭션 정보를 조회하는 API입니다. broadcast API 호출 후 거래를 식별하기 위하여 생성된 txHash로 조회 가능합니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/tx
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/tx
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
  • Request Body
필드명 설명 타입 필수 여부
txHash 블록체인 트랜잭션 해시값 String Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.error 오류 여부 boolean
data.code tx 상태 코드 , 0:정상 number
  • Request Sample
  • Response Sample

Game

channels

게임의 채널정보를 조회합니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/channels
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/channels
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 array(json)
data.channelName 채널 이름 string
data.channelId 채널 ID string
  • Request Sample
  • Response Sample

maintenance

Hive에 등록된 게임 중 공지사항/알림이 설정되었다면 해당 공지/알림을 조회하는 기능입니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/server/{server}/maintenance
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/server/{server}/maintenance
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
  • Request Body
필드명 설명 타입 필수 여부
server 서버 정보 string Y
appid 로그인 한 게임의 AppID string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.type 노티피케이션 종류 (1: 서버 점검, 2: 강제 업데이트, 3: 일반 공지) string
data.action 버튼에 대한 액션, buttonlist 있을 경우에만 값이 존재 (1: URL, 2: 강제 종료, 3: 창 닫힘) string
data.url URL, buttonlist 있을 경우에만 값이 존재 (액션에 대한 target URL, action이 1이 아닐 경우 “”) string
data.startDate 점검 시작일 string
data.endDate 점검 종료일 string
data.remainingTime 점검 종료까지 남은 시간 string
data.title 제목 string
data.message 내용 string
data.button 버튼 텍스트 string
data.buttonLists 버튼 목록 array(json)
data.buttonLists.action 버튼에 대한 액션, buttonlist있을 경우에만 값이 존재 (1: URL, 2: 강제 종료, 3: 창 닫힘) string
data.buttonLists.url URL, buttonlist있을 경우에만 값이 존재 (액션에 대한 target URL, action이 1이 아닐 경우 “”) string
data.buttonLists.button 버튼 텍스트 string
  • Request Sample
  • Response Sample

category

민팅 카테고리 그룹정보를 조회합니다. 민팅은 카테고리의 활성화 여부에 따라 사용가능합니다. 예를 들어, 활성은 1001000601, 비활성은 1001000602가 될 수 있습니다. 카테고리는 민팅 타입에 따라 단일 민팅, 조합, 캐릭터로 구분됩니다. 예를 들어, 단일 민팅은 1001000701, 조합 민팅은 1001000702, 캐릭터 민팅은 1001000703이 될 수 있습니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/mint/category
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/mint/category
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 array(json)
data.id 고유 식별 번호 number
data.activeTypeCd 활성화 여부(활성: 1001000601, 비활성: 1001000602) string
data.mintTypeCd 민팅 타입 (단일 민팅: 1001000701, 조합 민팅: 1001000702, 캐릭터 민팅 : 1001000703) string
data.name 카테고리 이름 string
  • Request Sample
  • Response Sample

category/fee

민팅 카테고리별로 설정한 수수료 정보를 조회합니다. 민팅에 필요한 수수료를 코드에 따라 별도로 설정할 수 있습니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/mint/category/{categoryId}/fee
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/mint/category/{categoryId}/fee
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
  • Request Body
필드명 설명 타입 필수 여부
categoryId 민팅 종류별 카테고리 ID string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 array(json)
data.nativeTokenFee 민팅에 필요한 토큰(CTXT) 수수료 string
data.gameTokenFee 민팅에 필요한 게임 토큰 수수료(활성: 1001000601, 비활성: 1001000602) string
data.mintCount 민팅 카운트에 따른 수수료(민팅 수수료 코드) string
  • Request Sample
  • Response Sample

convert/type

토큰과 게임 재화 간 컨버팅 설정 정보를 조회합니다. 컨버트 타입별 교환 가능한 토큰과 재화의 정보와 교환 가능한 정책 정보를 조회합니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/convert/type
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/convert/type
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
appid 로그인 한 게임의 AppID string Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 array(json)
data.convertTypeCd 컨버트 타입 토큰(CTX <=> 게임 재화): 1001000801, 게임 토큰(게임 토큰 <=> 게임 재화): 1001000802 string
data.goodsName 게임 재화 이름 string
data.goodsCode 게임 재화 코드 string
data.goodsImage 게임 재화 아이콘 이미지 string
data.maxConvertQuantityDays 1일 최대 교환 가능 수량 number
data.minConvertQuantityOneTime 1회 최소 교환 가능 수량 number
  • Request Sample
  • Response Sample

betagames

베타 게임 런처를 통해 등록된 블록체인 게임을 조회하는 API입니다. 콘솔에서 기능 및 API 설정 여부에 따라서 노출됩니다.

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/betagames
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/betagames
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
  • Request Parameters
필드명 설명 타입 필수 여부
page 페이지 정보 number Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.betagames 베타게임정보 array(json)
data.betagames.gameindex 게임의 고유 번호 string
data.betagames.appid Hive 콘솔 > 앱센터 에서 등록 및 발급 받은 ID string
data.betagames.title Hive에 등록된 언어별 게임명 array(json)
data.betagames.title.language 게임명 언어 정보 string
data.betagames.title.name 언어별 게임명 string
data.betagames.iconImage 아이콘 이미지 주소 string
data.betagames.genre 캐릭터 선택 여부(0: 미선택, 1: 선택) number
data.betagames.characterSelect 게임 장르 string
data.betagames.gameTokenName 게임에서 발행한 토큰명 string
data.betagames.gameTokenImage 게임에서 발행한 토큰 이미지 string
data.betagames.settingCompleteTypeCd 콘솔에서 설정한 기능설정 완료 여부 string
data.betagames.apiSettingCompleteTypeCd 콘솔에서 설정한 API 설정 완료 여부 string
data.betagames.mintActiveTypeCd 단일 민팅 사용 여부 (활성 : 1001000601, 비활성 : 1001000602) string
data.betagames.unionMintActiveTypeCd 조합 민팅 사용 여부 (활성 : 1001000601, 비활성 : 1001000602) string
data.betagames.charMintActiveTypeCd 캐릭터 민팅 사용 여부 (활성 : 1001000601, 비활성 : 1001000602) string
data.betagames.androidDownLink 안드로이드 다운로드 링크 string
data.betagames.iosDownLink IOS 다운로드 링크 string
data.betagames.pcDownLink PC 다운로드 링크 string
data.betagames.gameServerLists 게임 서버 정보 array(json)
data.betagames.gameServerLists.serverId 서버 고유 ID string
data.betagames.gameServerLists.serverNameKO 서버명 (한국어) string
data.betagames.gameServerLists.serverNameEN 서버명 (영어) string
data.betagames.gameServerLists.timezone 서버 타임존 string
data.meta.totalItems 총 아이템 수 number
data.meta.currentPage 현재 페이지 정보 number
data.meta.totalPages 총 페이지 수 number
  • Request Sample
  • Response Sample

characters

캐릭터 정보를 조회하는 API입니다.

표준 게임 API는 게임 서버에 캐릭터 정보를 요청한 후 결과를 전달합니다.

  • API 처리 과정

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/characters
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/characters
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
pid hive로그인 성공 후 player id string Y
  • Request Parameters
필드명 설명 타입 필수여부
server 게임 서버(채널) 정보 String Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.characters 게임의 고유 번호 array(json)
data.characters.characterName 캐릭터 이름 string
data.characters.characterId 캐릭터 ID string
  • Request Sample
  • Response Sample

assets

민팅 가능한 게임 자산(아이템/캐릭터)를 조회하는 API입니다.

콘솔에 설정된 게임 별 민팅타입(아이템 단일/조합, 캐릭터 민팅)을 구분하는 카테고리 코드에 따라 게임 서버에 민팅가능한 게임 자산 목록을 요청합니다. 게임 서버는 콘솔에 설정한 수수료 코드(mintingFeeCode)를 리턴해야 됩니다.

  • API 처리 과정

  • Request URL
상용 URL https://bc-platform-api.withhive.com/game/v1/mint/items
Sandbox URL https://sandbox-bc-platform-api.withhive.com/game/v1/mint/items
HTTP Method GET
Content-Type application/json
  • Request Header
필드명 설명 타입 필수 여부
Authorization API 호출 시 요구되는 access token string Y
pid hive로그인 성공 후 player id string Y
address 사용자 xpla wallet address string Y
  • Request Parameters
필드명 설명 타입 필수 여부
server 게임 서버(채널) 정보 string Y
characterId 게임 캐릭터 아이디 string N
categoryId 게임 별 민팅타입을 구분하는 카테고리 코드 number Y
  • Response
필드명 설명 타입
code api 호출 결과 코드 , 0:성공 number
message 결과 메시지 string
data API 응답 값 json
data.assets 게임 자산 리스트 array(json)
data.assets.name 게임 자산의 이름 string
data.assets.description 게임 자산의 설명 string
data.assets.uniqueId 게임 자산의 고유한 아이디로 NFT 발행 시 토큰의 ID로 지정 string
data.assets.nftStatus 게임 자산의 NFT 발행 여부 string
data.assets.tokenId 게임 자산의 토큰으로 발행됐을 경우 토큰 아이디 string
data.assets.mintingFeeCode 게임 자산의 민팅 시 필요한 수수료 코드 number
  • Request Sample
  • Response Sample

에러 코드

코드 설명
1002 API 요청 실패
1003 베타 게임 정보 조회 실패
1004 서버 내 에러 발생
1005 외부 서비스 호출 시 에러 발생
1006 콘솔에서 API 설정 미완료
4000 민팅 게임 자산 유효성 검사 실패
4001 게임 자산 NFT 민팅 실패
4002 유효하지 않은 민팅 수수료
4003 게임 재화 조회 실패
4004 게임 자산 NFT 소각 실패
4005 이미 존재하는 NFT를 발행할 경우
4006 존재하지 않는 NFT를 소각할 경우
4007 NFT 민팅 시 보유 토큰이 부족할 경우
4008 설정이 안된 민팅 기능을 요청할 경우
4009 민팅 카테고리가 설정되지 않았을 경우
4010 잘못된 토큰 정보를 요청했을 경우
5000 서버 에러
5001 게임 재화 정보 에러
5002 입력 수량 타입 에러 & 0보다 적을 경우
5003 보유 수량보다 입력 수량이 많을 경우
5004 입력 수량이 최소 교환 수량보다 적을 경우
5005 입력 수량이 최대 교환 가능 수량보다 적을 경우
5006 입력 수량이 보유 수량보다 적을 경우
5007 operator address sequence 정보 에러
5008 게임 토큰 컨트랙트 정보 에러
5009 콘솔 api 호출 결괏값 에러
5010 게임 서버 재화 조회 api 호출 결괏값 에러
5011 게임 서버 재화 업데이트 api 호출 결괏값 에러
5012 컨버트 풀 정보 에러
5013 컨버트 tx broadcast 에러
5014 operatore address key 정보 에러
5100 디지털 자산 업로드 실패
5101 URL을 통한 디지털 자산 업로드 실패
5200 메타데이터 업로더 실패
6000 서버 에러
6001 Lock, NFT Contract 정보 에러
6002 lock된 nft list 정보 에러(unlock api 호출 시)
6003 nft 소유자 불일치 에러
6004 게임 서버에 Unlock(아이템 사용 불가) 요청 api 정보 에러
6005 Lock Contract 소유자 정보 에러
6006 Lock Contract 사인 정보 에러
9003 트랜잭션 생성 실패 오류
9004 트랜잭션 사인 오류
9005 xpla 잔액 조회 오류
9006 cw20 토큰 잔액 조회 오류
9007 xpla 전송 오류
9008 토큰 전송 오류
9009 nft mint 오류
9010 nft burn 오류
9011 보유 nft 리스트 조회 오류
9012 특정 nft 상세 조회 오류
9013 nft 전송 오류(transfer, wallet->wallet)
9014 nft 전송 오류(send, wallet->contract)
9015 nft lock 오류
9016 nft unlock 오류
9017 nft unlock sign 오류
9018 nft lock 리스트 조회 오류
9019 트랜잭션 상태 조회 오류
9999 트랜잭션 broadcast 오류