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
1 2 3 4 5 6 7 8 |
curl -X 'POST' \ 'https://sandbox-bc-platform-auth.withhive.com/v1/auth-token' \ -H 'accept: */*' \ -H 'Content-Type: application/json' \ -d '{ "id": "test", "secretKey": "1234" }' |
- Response Sample
1 2 3 4 5 6 7 8 |
{ "code": 0, "message": "success", "data": { "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzM4MjY5NSwiZXhwIjoxNjY3NDY5MDk1fQ.xRq3ew5GAcn0zEcTEyRAXByjAbhgRQb3aWqaxy_iQ68", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzM4MjY5NSwiZXhwIjoxNjY3OTg3NDk1fQ.s8dL3tCwdbHUTQnWqAWbDSaGumKF3Jc_aYXVJUp1VxQ" } } |
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
1 2 3 4 |
curl -X 'GET' \ 'https://sandbox-bc-platform-auth.withhive.com/v1/refresh-token' \ -H 'accept: */*' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ3MTE4NywiZXhwIjoxNjY4MDc1OTg3fQ.wj0r0w2DH1aua02qKp_qApSBXVcMDRyvdprhM5XE0pM' |
- Response Sample
1 2 3 4 5 6 7 8 |
{ "code": 1000, "message": "success", "data": { "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ3MTIwMSwiZXhwIjoxNjY3NTU3NjAxfQ.icFnROeEU7RI0FvEdPR5Oa26YqEihwcBN-KT_n_iq_o", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ3MTIwMSwiZXhwIjoxNjY4MDc2MDAxfQ.fclh8qVxLRG0Z1Fn2KRtW7Dmm6KFY5H4jvRSroy-mag" } } |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/mint/confirm' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'address: xpla1h086yrxdzhgqzftk2hzcgst9gywttqd2d32g6q' \ -H 'pid: 1234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzM4NzYzOSwiZXhwIjoxNjY3NDc0MDM5fQ.JeU7Y3IcaY35yc0w1jK3OVWzD5kHrTpLztcc4arQt-o' \ -H 'Content-Type: application/json' \ -d '{ "server": "1,1,1", "characterId": "test", "categoryId": 520, "items": [ { "uniqueId": "itemUniqCode1", "mintingFeeCode": 0 } ], "tokens": [ { "tokenId": "84039", "mintingFeeCode": 2 } ] }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
{ "code": 0, "message": "success", "data": { "governanceTokenFee": "0.000700000000000000", "gameTokenFee": "0.000700", "metadata": { "name": "Fire Lord's Helmet", "description": "[UR] Fire Lord's Helmet\nKnight [Head]\nCraft Count: 0/5\nMain Stat\nDEF: 182044\nEVA: 46948\n[R] Fire Lord's Essence\n[Lv. 1] Increases damage, healing, and Barrier absorption of Fire skills by 12%.\n[Lv. 10] Increases damage/healing/Barrier absorption of the next Fire skill by 6% when a Fire skill is used.\n", "image": "https://image01.c2x.world/equip_93041010.gif", "animation_url": "https://image01.c2x.world/equip_93041010.gif", "youtube_url": "", "image_data": "", "external_url": "https://dex.c2xnft.com/market?key=4838", "background_color": "", "attributes": [ { "trait_type": "Category", "max_value": "", "value": "Game", "display_type": "" } ] }, "requestId": "fd20d928-8f60-41dd-9595-8f6ca52484ad", "id": "unique-id-7immqv" } } |
mint
게임 자산(아이템/캐릭터)을 NFT로 발행하는 API입니다.
NFT 발행 여부가 검증된 게임 자산으로 NFT를 발행할 수 있습니다. 표준 게임 API는 콘솔에 설정된 수수료를 기반으로 수수료 배분(Game Provider, Fan Card Holder, C2X Staking Holder, Convert Pool, Treasury)이 발생합니다. 민팅 API 수행 시 표준 게임 API 서버는 게임 서버에 NFT 발행에 대한 처리를 요청합니다. 게임 자산이 아직 NFT로 발행되는 단계가 아니므로 게임 자산에 대해 잠금 또는 상응하는 처리가 필요합니다. NFT 생성에 필요한 트랜잭션을 생성하고 결과를 전달합니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
- 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
- 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 삭제(비활성화) 시켜야 합니다.
- 사용자는 정상적으로 발행된 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/mint' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'address: xpla1h086yrxdzhgqzftk2hzcgst9gywttqd2d32g6q' \ -H 'pid: 1234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ0ODE1MSwiZXhwIjoxNjY3NTM0NTUxfQ.9XmjT6h-A9qTs7c3ia7fPRrHCizccRRX3XaK_qErEs4' \ -H 'Content-Type: application/json' \ -d '{ "server": "1,1,1", "characterId": "com2us", "categoryId": 520, "requestId": "fd20d928-8f60-41dd-9595-8f6ca52484ad", "id": "unique-id-7immqv", "data.governanceTokenFee": "0.000700000000000000", "data.gameTokenFee": "0.000700", "metadata": { "name": "Fire Lord'\''s Helmet", "description": "[UR] Fire Lord'\''s Helmet\nKnight [Head]\nCraft Count: 0/5\nMain Stat\nDEF: 182044\nEVA: 46948\n[R] Fire Lord'\''s Essence\n[Lv. 1] Increases damage, healing, and Barrier absorption of Fire skills by 12%.\n[Lv. 10] Increases damage/healing/Barrier absorption of the next Fire skill by 6% when a Fire skill is used.\n", "image": "https://image01.c2x.world/equip_93041010.gif", "animation_url": "https://image01.c2x.world/equip_93041010.gif", "youtube_url": "", "image_data": "", "external_url": "https://dex.c2xnft.com/market?key=4838", "background_color": "", "attributes": [ { "trait_type": "Category", "max_value": "", "value": "Game", "display_type": "" } ] } }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 |
{ "code": 0, "message": "success", "data": { "tokenId": "unique-id-7immqv", "unsignedTx": "CrsPCpIDCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QS6QIKK3hwbGExOXB3ZGEybHV0OXhhZWZyOGdzbWdrdHVxZXc5MHNjNWFqbHhoa2cSP3hwbGExNWszdmFtendsMzB0eHl2cGU1Zjh4NmZkZWxoN3djZXZ3d3gzeHJ3OHB3amowaGd4d2tzcXc0M3NmZhr4AXsibWludCI6eyJzZW5kZXJBZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsInRva2VuX2lkIjoidW5pcXVlLWlkLTdpbW1xdiIsIm93bmVyIjoieHBsYTFoMDg2eXJ4ZHpoZ3F6ZnRrMmh6Y2dzdDlneXd0dHFkMmQzMmc2cSIsInRva2VuX3VyaSI6Imh0dHA6Ly8zNC42NC4xNDUuMTgyOjgwODAvaXBmcy9RbWZHR0FzMU5QNWJzZkFvM1FtWTczSEdhY29Ta0tKeml6VGRZb2o2OXNRTDN0In19CpQBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnQKK3hwbGExaDA4NnlyeGR6aGdxemZ0azJoemNnc3Q5Z3l3dHRxZDJkMzJnNnESK3hwbGExNnY2eTQ4eGxsd3k3YW1jbXZoa3YwYTN6cDdqZXBsNDR5dmh2eHQaGAoFYXhwbGESDzM1MDAwMDAwMDAwMDAwMAqUAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBJ0Cit4cGxhMWgwODZ5cnhkemhncXpmdGsyaHpjZ3N0OWd5d3R0cWQyZDMyZzZxEit4cGxhMWdkenNrZDR2MnFqNDA0YTI4OGR4anlwcmV3a3F2cjh4N2NmM3A3GhgKBWF4cGxhEg8xMTIwMDAwMDAwMDAwMDAKkwEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQScworeHBsYTFoMDg2eXJ4ZHpoZ3F6ZnRrMmh6Y2dzdDlneXd0dHFkMmQzMmc2cRIreHBsYTFuMzVzZ3AyY21zNWt6MnZ5cnQzZXVzdThkNTlqdGp2dDJlZmhkYxoXCgVheHBsYRIOMjgwMDAwMDAwMDAwMDAKlAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSdAoreHBsYTFoMDg2eXJ4ZHpoZ3F6ZnRrMmh6Y2dzdDlneXd0dHFkMmQzMmc2cRIreHBsYTF3ank5cWhrcWg2a3ZmbjB5MDZucGVyZ2x5NGo3MDZkem5ubTh6MBoYCgVheHBsYRIPMjEwMDAwMDAwMDAwMDAwCvABCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QSxwEKK3hwbGExaDA4NnlyeGR6aGdxemZ0azJoemNnc3Q5Z3l3dHRxZDJkMzJnNnESP3hwbGExaGtjcDhhdnpjaGVodnQ1eTgzNzNhYzB4eXFrbHo2eWFseXoycTJ0MjhrMHFwdnBrZXl6c3ZncWY2cxpXeyJ0cmFuc2ZlciI6eyJyZWNpcGllbnQiOiJ4cGxhMTlwd2RhMmx1dDl4YWVmcjhnc21na3R1cWV3OTBzYzVhamx4aGtnIiwiYW1vdW50IjoiMzUwIn19CvABCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QSxwEKK3hwbGExaDA4NnlyeGR6aGdxemZ0azJoemNnc3Q5Z3l3dHRxZDJkMzJnNnESP3hwbGExaGtjcDhhdnpjaGVodnQ1eTgzNzNhYzB4eXFrbHo2eWFseXoycTJ0MjhrMHFwdnBrZXl6c3ZncWY2cxpXeyJ0cmFuc2ZlciI6eyJyZWNpcGllbnQiOiJ4cGxhMWdkenNrZDR2MnFqNDA0YTI4OGR4anlwcmV3a3F2cjh4N2NmM3A3IiwiYW1vdW50IjoiMTEyIn19Cu8BCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QSxgEKK3hwbGExaDA4NnlyeGR6aGdxemZ0azJoemNnc3Q5Z3l3dHRxZDJkMzJnNnESP3hwbGExaGtjcDhhdnpjaGVodnQ1eTgzNzNhYzB4eXFrbHo2eWFseXoycTJ0MjhrMHFwdnBrZXl6c3ZncWY2cxpWeyJ0cmFuc2ZlciI6eyJyZWNpcGllbnQiOiJ4cGxhMW4zNXNncDJjbXM1a3oydnlydDNldXN1OGQ1OWp0anZ0MmVmaGRjIiwiYW1vdW50IjoiMjgifX0K8AEKJC9jb3Ntd2FzbS53YXNtLnYxLk1zZ0V4ZWN1dGVDb250cmFjdBLHAQoreHBsYTFoMDg2eXJ4ZHpoZ3F6ZnRrMmh6Y2dzdDlneXd0dHFkMmQzMmc2cRI/eHBsYTFoa2NwOGF2emNoZWh2dDV5ODM3M2FjMHh5cWtsejZ5YWx5ejJxMnQyOGswcXB2cGtleXpzdmdxZjZzGld7InRyYW5zZmVyIjp7InJlY2lwaWVudCI6InhwbGExcXNyd3c1dGcyY2xkZThmOHNjcjBjNXBldjZuc2R6c3QzNGxkaHEiLCJhbW91bnQiOiIyMTAifX0SfgpZCk8KKC9ldGhlcm1pbnQuY3J5cHRvLnYxLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA1sEfoFt+jL+4LSZHKF5oVrFYGQOVY/QsqpxJDt4nZtoEgQKAgh/GDwSIQobCgVheHBsYRISODQ1NDc3MTUwMDAwMDAwMDAwEPfaPBpAiy889zaFpq0dJCoRPIrtcQzAUYKC/+ZHzcuHBX9qld9ogtcbHq06+Kn3O7tOxfHfSBCJFKkGb+BUWpn/kVaLjA==", "tokenUri": "http://34.64.145.182:8080/ipfs/QmfGGAs1NP5bsfAo3QmY73HGacoSkKJzizTdYoj69sQL3t", "requestId": "fd20d928-8f60-41dd-9595-8f6ca52484ad" } } |
Burn
발행된 NFT를 소각하는 API입니다.
유저는 발행된 NFT를 소각할 수 있습니다. 소각 시 NFT를 확인하고 게임 서버에 소각에 대한 처리를 요청합니다. NFT가 아직 소각되지 않는 단계로 게임 서버는 소각에 따른 대기 처리가 필요합니다. NFT 소각에 필요한 트랜잭션을 생성하고 결과를 전달합니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
- 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
- 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산에 대한 처리가 필요합니다.
- 사용자는 정상적으로 발행된 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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/burn' \ -H 'accept: application/json' \ -H 'address: xpla1h086yrxdzhgqzftk2hzcgst9gywttqd2d32g6q' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 1234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ0ODE1MSwiZXhwIjoxNjY3NTM0NTUxfQ.9XmjT6h-A9qTs7c3ia7fPRrHCizccRRX3XaK_qErEs4' \ -H 'Content-Type: application/json' \ -d '{ "characterId": "com2us", "tokenId": "unique-id-7immqv", "server": "1,1,1" }' |
- Response Sample
1 2 3 4 5 6 7 8 |
{ "code": 0, "message": "success", "data": { "unsignedTx": "CsQBCsEBCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QSmAEKK3hwbGExaDA4NnlyeGR6aGdxemZ0azJoemNnc3Q5Z3l3dHRxZDJkMzJnNnESP3hwbGExNWszdmFtendsMzB0eHl2cGU1Zjh4NmZkZWxoN3djZXZ3d3gzeHJ3OHB3amowaGd4d2tzcXc0M3NmZhooeyJidXJuIjp7InRva2VuX2lkIjoidW5pcXVlLWlkLTdpbW1xdiJ9fRIjEiEKGwoFYXhwbGESEjIwNDgxNTM2MjUwMDAwMDAwMBC/2g4=", "requestId": "dc9598ce-f835-47b2-834b-4e2402afc308" } } |
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
1 2 3 4 5 6 7 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/v1/convert/currency?characterId=1&server=1%2C1%2C1' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ0ODE1MSwiZXhwIjoxNjY3NTM0NTUxfQ.9XmjT6h-A9qTs7c3ia7fPRrHCizccRRX3XaK_qErEs4' \ -H 'address: xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
{ "code": 0, "message": "success", "data": { "server": "1,1,1", "pid": "234234", "characterId": "1", "providerAddress": "xpla1e6lczuu7n46xqy7gnkf3qkupdsteqz0tp50tcp", "tokenContract": "xpla1hkcp8avzchehvt5y8373ac0xyqklz6yalyz2q2t28k0qpvpkeyzsvgqf6s", "currency": [ { "convertTypeCd": "1001000801", "goodsName": "gold", "goodsCode": "goldcode", "goodsImage": "https://c2xnft.qpyou.cn/blockchain-sdk/blockchain/48479951-8fc3-7aa5-b2a8-433c312a30d2.png", "minConvertQuantityOneTime": 10, "maxConvertQuantityDays": 10000, "tokenName": "CTXT", "tokenImage": "https://assets.xpla.io/icon/CTXT.png", "tokenAmount": { "tokenName": "CTXT", "tokenSymbol": "CTXT", "decimals": 6, "amount": "999904.244998" }, "currencyAmount": "2000", "avalibleAmount": "10000" }, { "convertTypeCd": "1001000802", "goodsName": "crystal", "goodsCode": "crystalcode", "goodsImage": "https://c2xnft.qpyou.cn/blockchain-sdk/blockchain/48479951-8fc3-7aa5-b2a8-433c312a30d2.png", "minConvertQuantityOneTime": 10, "maxConvertQuantityDays": 10000, "tokenName": "CPBC", "tokenImage": "https://c2xnft.qpyou.cn/blockchain-sdk/blockchain/7b60c566-8c65-2dac-876d-fb3be3ce8eed.png", "tokenAmount": { "tokenName": "cp-bc-test", "tokenSymbol": "cpbc", "decimals": 6, "amount": "4009.466806" }, "currencyAmount": "2000", "avalibleAmount": "100000" } ] } } |
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
1 2 3 4 5 6 7 8 9 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/v1/convert/simul-to-currency' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ0ODE1MSwiZXhwIjoxNjY3NTM0NTUxfQ.9XmjT6h-A9qTs7c3ia7fPRrHCizccRRX3XaK_qErEs4' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 123123' \ -H 'address: xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs' \ -H 'Content-Type: application/json' \ -d '{ "convertTypeCd": "1001000802", "amount": "10000" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 |
{ "code": 0, "message": "success", "data": { "result": 0, "ratio": 26.827581, "value": 4158, "expected_return_amount": 4158, "expected_offer_amount": 154.989747 } } |
convert/to-currency
코인/토큰을 게임 재화(1차,2차)로 변경하는 API입니다.
교환 가능한 수량, 비율 조회 후 사용자의 지갑 주소에서 Provider 주소로 코인/토큰을 전송합니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명합니다.
- 사용자는 broadcast API를 호출하여 서명한 tx를 블록체인에 기록합니다.
- 게임 서버는 트랜잭션 성공 여부에 따라 게임 재화를 증가시켜야 합니다.
- 정상 처리된 토큰은 지갑 또는 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/v1/convert/to-currency' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 234234' \ -H 'address: xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTFlNmxjenV1N240NnhxeTdnbmtmM3FrdXBkc3RlcXowdHA1MHRjcCIsImlhdCI6MTY2NzQ0MzUyOSwiZXhwIjoxNjY3NTI5OTI5fQ.CHZyoDfjPeikLpaU0EcInLeCzeD8Hqb2jW1xDxIknDA' \ -H 'Content-Type: application/json' \ -d '{ "server": "1,1", "characterId": "character Id", "convertTypeCd": "1001000801", "amount": "1.5" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "code": 0, "message": "success", "data": { "server": "1,1", "characterId": "12345", "requestId": "0bcb3d46-e8b3-45cd-8c4b-e791244a3590", "unSignedTx": "Co0BCooBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEmoKLHRlcnJhMXg0NnJxYXk0ZDNjc3NxOGd4eHZxejh4dDZud2x6NHRkMjBrMzh2Eix0ZXJyYTE3NTd0a3gwOG4wY3FydzdwODZueTlsbnhzcWV0aDB3Z3AwZW05NRoMCgR1dXNkEgQxMDAwEhUSEwoNCgR1dXNkEgUxMzg5MBC30wU=", "appId": "com.com2us.hivesdk.c2xwallet.hivepc.kr.test", "pid": "13453245", "address": "xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs", "convertTypeCd": "1001000801", "inputAmount": "1321", "amount": "1322.123", "convertCurrencyAmount": "12344" } } |
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
1 2 3 4 5 6 7 8 9 10 11 12 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/v1/convert/simul-to-token' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzQ0ODE1MSwiZXhwIjoxNjY3NTM0NTUxfQ.9XmjT6h-A9qTs7c3ia7fPRrHCizccRRX3XaK_qErEs4' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 345' \ -H 'address: xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs' \ -H 'Content-Type: application/json' \ -d '{ "convertTypeCd": "1001000801", "amount": "10000" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 |
{ "code": 0, "message": "success", "data": { "result": 0, "ratio": 0.025485181818181817, "value": 3.924718, "expected_return_amount": 0, "expected_offer_amount": 0 } } |
convert/to-token
게임 재화(1차, 2차)를 코인(토큰)으로 변경하는 API입니다.
교환 가능한 수량, 비율 조회 후 사용자의 캐릭터에서 재화를 감소시킨 후 Provider 지갑에서 해당 비율만큼 사용자에게 코인/토큰 전송합니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
- 사용자는 broadcast API를 호출하여 서명한 tx를 블록체인에 기록합니다.
- 정상적으로 처리된 토큰을 지갑 또는 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/convert/to-token' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'pid: 234234' \ -H 'address: xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTFlNmxjenV1N240NnhxeTdnbmtmM3FrdXBkc3RlcXowdHA1MHRjcCIsImlhdCI6MTY2NzUyNTE4NiwiZXhwIjoxNjY3NjExNTg2fQ.ah6V98Dyk7UwJslsEuJO6LjCfFBBy8Nxd7Ut8gXzSJA' \ -H 'Content-Type: application/json' \ -d '{ "server": "1,1", "characterId": "character Id", "convertTypeCd": "1001000801", "amount": "1000" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "code": 0, "message": "success", "data": { "requestId": "793b981a-24d3-4ed7-aec5-14b44d7c904d", "txHash": "F9DEBD575AAFE2800844AB15E78F1E99BB752044103D4D68DB3828BC7B5A257F", "appId": "com.com2us.c2xwallet.global.normal", "pid": "234234", "address": "xpla1ps6r4ja93a64lwn4gh0yhjt9rlnk0me0ef4djs", "server": "1,1", "characterId": "character Id", "convertTypeCd": "1001000801", "amount": "1000", "convertTokenAmount": "0.333304" } } |
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
1 2 3 4 5 6 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/lock/nft-list' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'address: xpla1ump5yp4l5f2ulp5ps8k6sdgdcrs2ne8rjurwmk' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTFlNmxjenV1N240NnhxeTdnbmtmM3FrdXBkc3RlcXowdHA1MHRjcCIsImlhdCI6MTY2NzUyNTE4NiwiZXhwIjoxNjY3NjExNTg2fQ.ah6V98Dyk7UwJslsEuJO6LjCfFBBy8Nxd7Ut8gXzSJA' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "code": 0, "message": "success", "data": { "address": "xpla1ump5yp4l5f2ulp5ps8k6sdgdcrs2ne8rjurwmk", "lockedNft": [ { "owner": "xpla1ump5yp4l5f2ulp5ps8k6sdgdcrs2ne8rjurwmk", "nft_address": "xpla1fk9u5txf05ftp3rnuqlafef0yunz0786tdw7ksrw669h5003ahxqpaafc2", "token_id": "test#1", "lock_info": "test#1_nft_uri" } ] } } |
lock
보유 중인 NFT를 Lock 상태로 만드는 API입니다.
NFT로 발행된 게임 자산을 다시 게임에서 사용하기 위해서 NFT를 거래할 수 없도록 처리합니다. 사용자는 보유 중인 NFT를 lock contract로 전송함으로써 게임 자산을 사용할 수 있지만 NFT를 다른 지갑으로 전송할 수 없습니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
- 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
- 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 생성(활성화) 시켜야 합니다.
- 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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/lock' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'address: xpla1ump5yp4l5f2ulp5ps8k6sdgdcrs2ne8rjurwmk' \ -H 'pid: 23234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTFlNmxjenV1N240NnhxeTdnbmtmM3FrdXBkc3RlcXowdHA1MHRjcCIsImlhdCI6MTY2NzUyNTE4NiwiZXhwIjoxNjY3NjExNTg2fQ.ah6V98Dyk7UwJslsEuJO6LjCfFBBy8Nxd7Ut8gXzSJA' \ -H 'Content-Type: application/json' \ -d '{ "serverId": "1,1", "characterId": "character Id", "tokenId": "qa#1" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 |
{ "code": 0, "message": "success", "data": { "requestId": "ae848975-b4e2-4cdb-8151-9caad7388299", "tokenId": "qa#1", "nftContract": "xpla15k3vamzwl30txyvpe5f8x6fdelh7wcevwwx3xrw8pwjj0hgxwksqw43sff", "unSignedTx": "Cr8CCrwCCiQvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlQ29udHJhY3QSkwIKK3hwbGExdW1wNXlwNGw1ZjJ1bHA1cHM4azZzZGdkY3JzMm5lOHJqdXJ3bWsSP3hwbGExNWszdmFtendsMzB0eHl2cGU1Zjh4NmZkZWxoN3djZXZ3d3gzeHJ3OHB3amowaGd4d2tzcXc0M3NmZhqiAXsic2VuZF9uZnQiOnsibXNnIjoiZXlKc2IyTnJJanA3SW14dlkydGZhVzVtYnlJNkluRmhYM1Z5YVY4eEluMTkiLCJjb250cmFjdCI6InhwbGExNWh4aGY4bW40ZGU0cXZnajZlZGZkOGdmMmpxZ213eXN6djZsZG5lZnk3Z3BtbDk2OXBqc3BtdXQ2bSIsInRva2VuX2lkIjoicWEjMSJ9fRIjEiEKGwoFYXhwbGESEjM2MDUxMTk4NzUwMDAwMDAwMBDD8Rk=" } } |
unlock
보유 중인 NFT를 Unlock 상태로 만드는 API입니다.
게임에서 사용 중인 게임 자산(NFT)을 다시 거래할 수 있도록 처리합니다. 사용자의 게임 자산을 비활성화시키고 NFT를 다시 사용자의 지갑으로 전송합니다.
- 추가 처리
- 사용자는 API에서 전달받은 트랜잭션에 서명을 합니다.
- 사용자는 서명된 tx를 broadcast API 호출을 통해서 블록체인에 기록합니다.
- 게임 서버는 트랜잭션의 성공/실패 여부에 따라 게임 자산을 삭제(비활성화) 시켜야 합니다.
- 사용자는 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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/unlock' \ -H 'accept: application/json' \ -H 'appid: com.com2us.c2xwallet.global.normal' \ -H 'address: xpla1ump5yp4l5f2ulp5ps8k6sdgdcrs2ne8rjurwmk' \ -H 'pid: 234234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTFlNmxjenV1N240NnhxeTdnbmtmM3FrdXBkc3RlcXowdHA1MHRjcCIsImlhdCI6MTY2NzUyNTE4NiwiZXhwIjoxNjY3NjExNTg2fQ.ah6V98Dyk7UwJslsEuJO6LjCfFBBy8Nxd7Ut8gXzSJA' \ -H 'Content-Type: application/json' \ -d '{ "serverId": "1,1", "characterId": "character Id", "tokenId": "nft#1" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "code": 0, "message": "success", "data": { "requestId": "e816cc57-5c1a-4718-833c-c13b636c0578", "tokenId": "nft#1", "nftContract": "xpla15k3vamzwl30txyvpe5f8x6fdelh7wcevwwx3xrw8pwjj0hgxwksqw43sff", "txHash": { "height": 0, "txhash": "2C4F55E04CA780629319636544AC61886CCC25F978571D93CEBDC0A04CA18704", "raw_log": "[]" } } } |
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
1 2 3 4 5 6 7 8 |
curl -X 'POST' \ 'https://sandbox-bc-platform-api.withhive.com/v1/broadcast' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "requestId": "cdaf3abe-630b-44eb-926c-feb77eae95ce", "signedTx": "CrQCCpgBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEngKK3hwbGExcHM2cjRqYTkzYTY0bHduNGdoMHloanQ5cmxuazBtZTBlZjRkanMSK3hwbGExZTZsY3p1dTduNDZ4cXk3Z25rZjNxa3VwZHN0ZXF6MHRwNTB0Y3AaHAoFYXhwbGESEzE0NTUwMDAwMDAwMDAwMDAwMDAKlgEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSdgoreHBsYTFwczZyNGphOTNhNjRsd240Z2gweWhqdDlybG5rMG1lMGVmNGRqcxIreHBsYTFkdGM3OXc5NTk5NDcweHhyNmpuejl3MHpkdmRqZnBmdXY5dmtqeBoaCgVheHBsYRIRNDUwMDAwMDAwMDAwMDAwMDASfgpZCk8KKC9ldGhlcm1pbnQuY3J5cHRvLnYxLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAwSHOe+5dDe23kksG8QDIdhBOsjg4PV9HS9LNGuVdw5HEgQKAgh/GBMSIQobCgVheHBsYRISMTM5MzQzMDUwMDAwMDAwMDAwEN2AChpAGSijq3j2ghuVs7X49tOxDHIs9BPCF6DJ8y7+JyQV2OYxjBEdD5Vy2CA2hv2shdqUQEC8BbytND6uluGW0JSn+g==" }' |
- Response Sample
1 2 3 4 5 6 7 8 9 |
{ "code": 1000, "message": "success", "data": { "height": 0, "txhash": "50833F6C8214299C4DA25FBF218F03CDE62DC685FD4C5F4BB0166D509CFB8BB4", "raw_log": "[]" } } |
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
1 2 3 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/tx?txHash=7E48EE001092EC0F8631B6AFBDAF7F8AE18BD1BBC23DC3C67B60DFC88B660571' \ -H 'accept: */*' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
{ "code": 0, "message": "success", "data": { "error": false, "code": 0, "txInfo": { "height": 14684, "txhash": "7E48EE001092EC0F8631B6AFBDAF7F8AE18BD1BBC23DC3C67B60DFC88B660571", "raw_log": "[{\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g\"},{\"key\":\"amount\",\"value\":\"150000000000000000axpla\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt\"},{\"key\":\"amount\",\"value\":\"150000000000000000axpla\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g\"},{\"key\":\"sender\",\"value\":\"xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt\"},{\"key\":\"amount\",\"value\":\"150000000000000000axpla\"}]}]}]", "logs": [ { "msg_index": 0, "log": "", "events": [ { "type": "coin_received", "attributes": [ { "key": "receiver", "value": "xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g" }, { "key": "amount", "value": "150000000000000000axpla" } ] }, { "type": "coin_spent", "attributes": [ { "key": "spender", "value": "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" }, { "key": "amount", "value": "150000000000000000axpla" } ] }, { "type": "message", "attributes": [ { "key": "action", "value": "/cosmos.bank.v1beta1.MsgSend" }, { "key": "sender", "value": "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" }, { "key": "module", "value": "bank" } ] }, { "type": "transfer", "attributes": [ { "key": "recipient", "value": "xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g" }, { "key": "sender", "value": "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" }, { "key": "amount", "value": "150000000000000000axpla" } ] } ], "eventsByType": { "coin_received": { "receiver": [ "xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g" ], "amount": [ "150000000000000000axpla" ] }, "coin_spent": { "spender": [ "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" ], "amount": [ "150000000000000000axpla" ] }, "message": { "action": [ "/cosmos.bank.v1beta1.MsgSend" ], "sender": [ "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" ], "module": [ "bank" ] }, "transfer": { "recipient": [ "xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g" ], "sender": [ "xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt" ], "amount": [ "150000000000000000axpla" ] } } } ], "gas_wanted": 135836, "gas_used": 92842, "tx": { "body": { "messages": [ "{\"@type\":\"/cosmos.bank.v1beta1.MsgSend\",\"amount\":[{\"amount\":\"150000000000000000\",\"denom\":\"axpla\"}],\"from_address\":\"xpla16v6y48xllwy7amcmvhkv0a3zp7jepl44yvhvxt\",\"to_address\":\"xpla1nlnang3a8wwgwx0sm4zut9ygx8mrvdes5n9m3g\"}" ], "memo": "", "timeout_height": 0 }, "auth_info": { "signer_infos": [ { "public_key": "{\"@type\":\"/ethermint.crypto.v1.ethsecp256k1.PubKey\",\"key\":\"Ak4Z1NlvU543QIPi4/i3vA1S2q+X3eP7ApQYIqT12Vw4\"}", "sequence": 21, "mode_info": { "single": { "mode": 127 } } } ], "fee": "{\"amount\":[{\"amount\":\"115461237500000000\",\"denom\":\"axpla\"}],\"gas_limit\":\"135836\",\"granter\":\"\",\"payer\":\"\"}" }, "signatures": [ "QQkdXm4Q2J/usJJMEj3xOuva1KyNuu81Ftzxq6vwdXhPpBQAGjqGv4/9e6zSmTSXvi08ujJFIGlYKVE6lrOP5w==" ] }, "timestamp": "2022-08-31T10:13:36Z", "code": 0, "codespace": "" }, "message": "" } } |
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
1 2 3 4 5 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/channels?server=Wallet' \ -H 'accept: application/json' \ -H 'appid: com.com2us.hivesdk.c2xwallet.hivepc.kr.sandbox' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS56ZW5hYWQuZ2FtZXMucGN3ZWIuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJpYXQiOjE2NzI3OTUxNjEsImV4cCI6MTY3Mjg4MTU2MX0.0PMEM1t5yb4abvWKEft2VJQghV7BIywmnA9iehjxe58' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 |
{ "code": 0, "message": "success", "data": [ { "channelName": "channel 1", "channelId": "1" } ] } |
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
1 2 3 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/server/Wallet/maintenance' \ -H 'accept: application/json' \ -H 'appid: com.com2us.hivesdk.c2xwallet.hivepc.kr.sandbox' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS56ZW5hYWQuZ2FtZXMucGN3ZWIuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJpYXQiOjE2NzI3OTUxNjEsImV4cCI6MTY3Mjg4MTU2MX0.0PMEM1t5yb4abvWKEft2VJQghV7BIywmnA9iehjxe58' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "code": 0, "message": "success", "data": { "type": "1", "action": "1", "url": "1", "startDate": "2016-05-24 10:32", "endDate": "2016-05-24 10:32", "remainingTime": "2016-05-24 10:32", "title": "서버 점검 알림", "message": "금일 정기 점검이 있을 예정 입니다.", "button": "확인", "buttonLists": [ { "action": "1", "url": "1", "button": "확인" } ] } } |
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
1 2 3 4 5 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/mint/category' \ -H 'accept: application/json' \ -H 'appid: com.zenaad.games.pcweb.c2xwallet.global.normal' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJpYXQiOjE2NzM0MDc3OTMsImV4cCI6MTY3MzQ5NDE5M30.anOrJJ-d8Am8r3wATtlz795QzO4eI62ndHChzt1DPDo' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "code": 0, "message": "success", "data": [ { "id": 21, "activeTypeCd": "1001000601", "mintTypeCd": "1001000701", "name": "monster" } ] } |
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
1 2 3 4 5 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/mint/category/21/fee' \ -H 'accept: application/json' \ -H 'appid: com.zenaad.games.pcweb.c2xwallet.global.normal' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS56ZW5hYWQuZ2FtZXMucGN3ZWIuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJpYXQiOjE2NzM0MDgxMjksImV4cCI6MTY3MzQ5NDUyOX0.cumIqQ6HmCIxdtEmng4qPvejbXgQGYFKcHwFHZNAkj0' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 |
{ "code": 0, "message": "success", "data": [ { "nativeTokenFee": "10.0000", "gameTokenFee": "10.0000", "mintCount": 0 } ] } |
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
1 2 3 4 5 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/convert/type' \ -H 'accept: application/json' \ -H 'appid: com.zenaad.games.pcweb.c2xwallet.global.normal' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS56ZW5hYWQuZ2FtZXMucGN3ZWIuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJpYXQiOjE2NzM0MDgxMjksImV4cCI6MTY3MzQ5NDUyOX0.cumIqQ6HmCIxdtEmng4qPvejbXgQGYFKcHwFHZNAkj0' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "code": 0, "message": "success", "data": [ { "convertTypeCd": "1001000801", "goodsName": "crystal", "goodsCode": "crystalcode", "goodsImage": "https://c2xnft.qpyou.cn/blockchain-sdk/blockchain/48479951-8fc3-7aa5-b2a8-433c312a30d2.png", "maxConvertQuantityDays": 100000, "minConvertQuantityOneTime": 10 } ] } |
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
1 2 3 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/blockchain-games?page=1' \ -H 'accept: application/json' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
{ "code": 0, "message": "success", "data": { "betagames": [ { "gameindex": 995, "appid": "com.zenaad.games.pcweb.c2xwallet.global.normal", "title": [ { "language": "en", "name": "games(en)" }, { "language": "ko", "name": "games" } ], "iconImage": "https://hive-fn.qpyou.cn/hubweb/gmnotice/appcenter/production/1671088460519.png", "genre": "TEST", "characterSelect": 0, "gameTokenName": "ZEN", "gameTokenImage": "https://c2xnft.qpyou.cn/blockchain-sdk/blockchain/75845154-5b9f-b255-90ec-d3d81779b4d4.png", "settingCompleteTypeCd": "1001000901", "apiSettingCompleteTypeCd": "1001000901", "mintActiveTypeCd": "1001000601", "unionMintActiveTypeCd": "1001000601", "charMintActiveTypeCd": "1001000601", "androidDownLink": "https://play.google.com/store/apps/details?id=com.com2us.chronicles.android.google.kr.normal&referrer=utm_source%3Dglobal%26utm_medium%3Dhub%26utm_term%3Dfix%26utm_content%3D%26utm_campaign%3Dsp_so", "iosDownLink": "https://apps.apple.com/kr/app/chronicleskr/id1612757020", "pcDownLink": null, "gameServerLists": [ { "serverId": "GLOBAL", "serverNameKO": "GLOBAL", "serverNameEN": "GLOBAL", "timezone": "America/Los_Angeles" }, { "serverId": "KR", "serverNameKO": "KR", "serverNameEN": "KR", "timezone": "Asia/Seoul" } ] } ], "meta": { "totalItems": 1, "currentPage": "1", "totalPages": 1 } } } |
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
1 2 3 4 5 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/characters?server=1%2C1%2C1' \ -H 'accept: */*' \ -H 'pid: 1234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2ODUwNzcwNiwiZXhwIjoxNjY4NTk0MTA2fQ.GAoKetB-pS47ZRFOOtJ9wdDU-HeChBMKAe8gzsbwXEE' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "code": 0, "message": "success", "data": { "characters": [ { "characterName": "캐릭터명(닉네임)1", "characterId": "1234-1" }, { "characterName": "캐릭터명(닉네임)2", "characterId": "1234-2" } ] } } |
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
1 2 3 4 5 6 |
curl -X 'GET' \ 'https://sandbox-bc-platform-api.withhive.com/game/v1/mint/items?server=1%2C1%2C1&characterId=1234&categoryId=519' \ -H 'accept: application/json' \ -H 'address: xpla19pwda2lut9xaefr8gsmgktuqew90sc5ajlxhkg' \ -H 'pid: 1234' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20ydXMuYzJ4d2FsbGV0Lmdsb2JhbC5ub3JtYWwiLCJyb2xlIjoib3BlcmF0b3IiLCJhZGRyZXNzIjoieHBsYTE5cHdkYTJsdXQ5eGFlZnI4Z3NtZ2t0dXFldzkwc2M1YWpseGhrZyIsImlhdCI6MTY2NzM4NzYzOSwiZXhwIjoxNjY3NDc0MDM5fQ.JeU7Y3IcaY35yc0w1jK3OVWzD5kHrTpLztcc4arQt-o' |
- Response Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "code": 0, "message": "success", "data": { "items": [ { "name": "sword1", "description": "sword1 description", "uniqueId": "itemUniqCode1", "nftStatus": "none", "tokenId": null }, { "name": "sword2", "description": "sword1 description", "uniqueId": "itemUniqCode2", "nftStatus": "unlocked", "tokenId": "sword2" } ], "characters": [] } } |
에러 코드
코드 | 설명 |
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 오류 |