Ethereum 블록체인의 트레이딩 카드 게임인 Gods Unchained에 대한 공개 개발자 API 문서입니다.
이 API 버전( v0
)은 제한된 공개 베타 버전입니다. 버그를 발견하거나 API가 사양에 반하는 결과를 반환하는 경우 여기에 보고하세요. 오류 사양은 곧 추가될 예정입니다.
다음은 이러한 API를 사용하여 구축된 일부 타사 도구입니다. 도움이 필요하거나 무엇을 구축할지 궁금하다면 Discord 서버에 문의하세요.
모든 요청의 기본 URL은 다음과 같습니다.
https://api.godsunchained.com
이 URL에는 요청되는 버전(현재 버전: v0
)이 붙어야 합니다.
https://api.godsunchained.com/v0/
우리는 다음 형식의 쿼리를 지원합니다.
https://api.godsunchained.com/v0/card?god=nature&god=death
중복된 인수 키는 분리적으로 해석됩니다. 이 쿼리는 신이 자연이거나 죽음인 카드를 반환합니다.
여러 개체를 반환할 수 있는 모든 요청은 page
및 perPage
매개 변수로 구성될 수 있습니다.
https://api.godsunchained.com/v0/proto?page=3&perPage=20
페이지를 매긴 모든 엔드포인트는 다음 형식으로 데이터를 반환합니다.
{
total: number
page: number
perPage: number
records: Array<any>
}
여기서 total
이 쿼리로 발견된 레코드 수입니다.
정렬은 sort
및 order
쿼리 매개 변수를 사용하여 페이지를 매긴 엔드포인트에 적용됩니다.
https://api.godsunchained.com/v0/card?sort=mana&order=asc
범위 및 숫자 유형은 order=asc
및 order=desc
로 정렬할 수 있으며 기본값은 asc
입니다.
하나의 쿼리에 여러 정렬 매개변수를 적용할 수 있으며 순서대로 적용됩니다.
https://api.godsunchained.com/v0/card?sort=mana&order=asc&sort=health&order=desc
정렬 및 순서 매개변수의 정확한 쌍이 없는 쿼리의 경우(여러 매개변수가 적용되는 경우) 순서를 null
로 표시해야 합니다.
https://api.godsunchained.com/v0/card?sort=mana&order=asc&sort=god&order=null&sort=health&order=desc
현재 모든 엔드포인트에는 초당 5(5/s)의 속도 제한이 있습니다. 이는 향후 변경될 수 있습니다.
일반 유형:
유형 | 설명 |
---|---|
URL로 인코딩된 문자열입니다. | |
십진수. | |
true 또는 false |
사용자 정의 API 유형:
유형 | 설명 |
---|---|
16진수 Ethereum 주소이며 대소문자를 구분하지 않습니다. | |
특정 숫자 1000 , 범위 1000-2000 , 최소 1000- 또는 최대 -2000 . |
다양한 API의 열거 유형에 대한 유효한 옵션은 아래에 설명되어 있습니다.
유형 | 옵션 |
---|---|
빛, 죽음, 자연, 전쟁, 마법, 기만 | |
희귀, 서사시, 전설적, 반짝이는 | |
일반, 희귀, 서사시, 전설적, 신화적 | |
생물, 주문, 무기 | |
네더, 에테르, 아틀란티스, 바이킹, 올림픽, 아누비안, 아마존 | |
일반, 그림자, 금, 다이아몬드 | |
전체, 카드 |
Gods Unchained에는 여러 '유형'의 카드가 있습니다.
이러한 끝점 중 일부는 위의 조합을 반환하지만 일부는 그렇지 않습니다. 이는 개별 끝점에 의해 문서화됩니다. 일반적으로 기본값은 ERC721 토큰이 될 수 있는 카드(예: 토큰 및 모델 카드)만 반환하는 것입니다.
프로토타입 카드( protos) 에는 카드 클래스에 대한 기본 통계가 포함되어 있습니다.
방법 | 설명 | 상태 |
---|---|---|
/card/{id} | 카드 받기 | |
/card | 카드 나열 | |
/proto/{id} | 프로토 받기 | |
/proto | 프로토스 나열 | |
/factory/{address} | 공장 가져오기 | |
/factory | 공장 목록 가져오기 | |
/factory/{address}/purchase/{id} | 구매하기 | |
/purchase | 공장 나열 | |
/factory/{address}/purchase/{id}/pack/{index} | 팩 받기 | |
/pack | 팩 나열 | |
/referral | 추천 목록 받기 | |
/image/{id} | 이미지 가져오기 | |
/user/{address} | 사용자 가져오기 | |
/ranking | 소유한 카드에 따라 순위가 매겨진 사용자 목록 | |
/rarity | 희귀도 통계 얻기 | |
/user/{address}/inventory | 사용자의 인벤토리 가져오기 | |
/deck | 데크를 데크 문자열로 인코딩 | |
/deck/{string} | 데크 문자열에서 데크 디코딩 |
매개변수
이름 | 유형 | 설명 |
---|---|---|
ID | 카드의 ERC721 ID |
id
와 적절한 메타데이터가 포함된 토큰 카드를 반환합니다. 현재 일반 및 Apollo 메타데이터 사양을 모두 준수합니다.
토큰 및 모델 카드 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
user | 특정 주소가 소유한 카드 받기 | |
rarity | 특정 희귀도의 카드를 얻으세요 | |
quality | 특정 품질의 카드를 얻으세요 | |
god | 특정 신의 카드를 받으세요 | |
type | 특정 유형의 카드 받기 | |
tribe | 특정 부족의 카드를 받으세요 | |
purity | 특별한 순도를 지닌 카드를 얻으세요 | |
mana | 특정 마나가 있는 카드를 얻습니다. | |
health | 특정 체력을 가진 카드를 받으세요 | |
attack | 특정 공격이 있는 카드를 얻습니다. | |
proto | 특정 프로토타입 ID가 있는 카드 가져오기 |
응답 형식
{
"total": 1000,
"page": 1,
"perPage": 1,
"records": [
{
"id": {
"Int64": 0,
"Valid": false,
}
"proto": 319,
"purity": 59,
"user": "0xCb3562Dd15807e2BCF35092B1e873971AF0a51da"
}
]
}
ID가 id
인 프로토타입 카드를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
id | 프로토타입 카드의 ID |
응답 형식
{
"id":300,
"name":"Guerilla Sabotage",
"effect":"Deal 4 damage to a random enemy creature. Draw a card.",
"god":"Nature",
"rarity":"Common",
"tribe":{"String":"","Valid":false},
"mana":4,
"attack":{"Int64":0,"Valid":false},
"health":{"Int64":0,"Valid":false},
"type":"Spell"
}
프로토타입 카드 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
god | 특정 신과 함께 프로토스를 얻으세요 | |
rarity | 특정 희귀도를 지닌 프로토스를 얻으세요 | |
type | 특정 유형의 proto 가져오기 | |
tribe | 특정 부족의 프로토스를 얻으세요 | |
set | 특정 세트로 proto를 얻으세요 | |
collectable | 수집 가능 여부에 관계없이 프로토를 얻습니다. | |
mana | 특정 마나로 프로토스를 얻으세요 | |
health | 특정 체력을 가진 프로토스를 얻으세요 | |
attack | 특정 공격으로 프로토를 얻으세요 |
응답 형식
{
"total": 380,
"page": 1,
"perPage: 1,
"records": [
{
"id":300,
"name":"Guerilla Sabotage",
"effect":"Deal 4 damage to a random enemy creature. Draw a card.",
"god":"Nature",
"rarity":"Common",
"tribe":{"String":"","Valid":false},
"mana":4,
"attack":{"Int64":0,"Valid":false},
"health":{"Int64":0,"Valid":false},
"type":"Spell"
}
]
}
주소 address
에 있는 팩 팩토리를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | 공장 주소 |
응답 형식
{
"address":"0x0777f76d195795268388789343068e4fcd286919",
"type":"rare"
}
팩 팩토리 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
type | 팩의 종류 |
응답 형식
{
"total": 4,
"page": 1,
"perPage: 1,
"records": [
{
"address":"0x0777f76d195795268388789343068e4fcd286919",
"type":"rare"
}
]
}
address
에 있는 팩 공장의 구매 id
반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | 공장 주소 | |
id | 공장 내 구매 ID |
응답 형식
{
"id":0,
"user":"0x3882C6ba6475165aC5257Ddc1D8d7782E7805c28",
"count":1,
"remaining":0,
"factory":"0x000983ba1A675327F0940b56c2d49CD9c042DFBF",
"txhash":"0xda2b2956588bd642bed4b0aa8f63c979f4893662dd31c237aa58b173bf4eb223",
"type":"shiny"
}
구매 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
type | 특정 팩 유형에서 구매하기 | |
user | 특정 사용자가 구매한 항목 받기 | |
factory | 특정 공장에서 구매를 하세요 | |
remaining | 이번 구매로 활성화할 남은 팩 수 | |
count | 이번 구매에서 구매한 팩 수 |
응답 형식
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"id":0,
"user":"0x3882C6ba6475165aC5257Ddc1D8d7782E7805c28",
"count":1,
"remaining":0,
"factory":"0x000983ba1A675327F0940b56c2d49CD9c042DFBF",
"txhash":"0xda2b2956588bd642bed4b0aa8f63c979f4893662dd31c237aa58b173bf4eb223",
"type":"shiny"
}
]
}
주소가 address
인 팩 팩토리의 구매 id
에서 인덱스 index
있는 팩을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | 팩 공장 주소 | |
id | 구매 아이디 | |
index | 구매 내 팩의 색인 |
응답 형식
{
"purchaseid":11665,
"purchaseindex":0,
"purchaseindices":[0,1,2,3,4],
"user":"0x62ed0960478Cd1aAA29e9e94928107D7b1E2Cef8",
"factory":"0x0777F76D195795268388789343068e4fCd286919",
"opened":true,
"cards":[
{"proto":264,"purity":600},
{"proto":38,"purity":990},
{"proto":299,"purity":549},
{"proto":347,"purity":275},
{"proto":291,"purity":850}
],
"type":"rare"
}
팩 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
type | 특정 유형의 팩 얻기 | |
user | 특정 사용자가 구매한 팩 받기 | |
factory | 특정 공장에서 만든 팩을 받으세요 | |
purchase | 특정 구매로 생성된 팩 받기 | |
opened | 이 팩이 개봉되었는지 여부 | |
fill | 이 팩을 카드로 채울지 여부 |
응답 형식
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"purchaseid":11665,
"purchaseindex":0,
"purchaseindices":[0,1,2,3,4],
"user":"0x62ed0960478Cd1aAA29e9e94928107D7b1E2Cef8",
"factory":"0x0777F76D195795268388789343068e4fCd286919",
"opened":true,
"cards":[
{"proto":264,"purity":600},
{"proto":38,"purity":990},
{"proto":299,"purity":549},
{"proto":347,"purity":275},
{"proto":291,"purity":850}
],
"type":"rare"
}
]
}
추천 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
type | 특정 희귀도의 추천을 받으세요 | |
referrer | 특정 사용자의 추천 받기 | |
purchaser | 특정 사용자에 대한 추천 받기 | |
factory | 특정 공장에서 추천 받기 |
응답 형식
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"id":0,
"referrer":"0xb08F95dbC639621DbAf48A472AE8Fce0f6f56a6e",
"purchaser":"0xE4a8dfcA175cDcA4Ae370f5b7aaff24bD1C9C8eF",
"factory":"0x1e891C587b345ab02A31b57c1F926fB08913d10D",
"value":1746000000000000000,
"count":0,
"type":"shiny"
}
]
}
id가 id
인 카드 프로토타입을 기반으로 이미지를 반환합니다. 카드 형식의 이미지를 얻으려면 format
및 quality
매개변수를 사용하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
format | 이미지가 표시되어야 하는 형식 | |
h | 이미지 크기가 조정될 높이 | |
w | 이미지 크기가 조정되는 너비 | |
quality | 카드의 품질 |
사용자를 확보하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | 사용자의 이더리움 주소 |
응답 형식
{
"username": "ender",
"address": "0xC257274276a4E539741Ca11b590B9447B26A8051",
"nonce": 0
}
생태계를 위한 보다 효과적인 애플리케이션을 구축하는 데 도움이 되도록 몇 가지 유용한 API 엔드포인트도 제공하고 있습니다. 이러한 엔드포인트는 기존 엔드포인트에서 구성 가능하지만 초기 GU 중심 애플리케이션을 개발하는 동안 편리한 인터페이스를 제공하므로 향후 릴리스에서는 더 이상 사용되지 않을 수 있습니다.
특정 조건을 충족하는 카드를 가장 많이 보유한 사용자의 순서 목록을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
rarity | 특정 희귀도를 지닌 카드의 순위를 얻으세요 | |
quality | 특정 품질의 카드 등급을 얻습니다. | |
god | 특정 신의 카드 순위를 얻으세요 | |
type | 특정 유형의 카드 순위를 얻습니다. | |
tribe | 특정 부족의 카드 순위를 얻으세요 | |
purity | 최소 순도 제한이 있는 카드 등급을 얻습니다. | |
mana | 특정 마나를 사용하여 카드 등급을 얻습니다. | |
health | 특정 체력을 지닌 카드의 순위를 얻으세요 | |
attack | 특정 공격으로 카드 순위를 얻으세요 | |
proto | 특정 프로토타입 ID를 가진 카드 순위를 얻습니다. |
응답 형식
{
"total": 10000,
"page": 1,
"perPage": 1,
"records": [
{
"user": "0xa012623C2d4EB0cfe921Bd283bb1823370Ae2737",
"count": 1585
}
]
}
프로토스에 대한 희귀도 정보를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
user | 특정 주소가 소유한 카드에 대한 희귀도 정보를 얻습니다. | |
rarity | 특정 희귀도를 가진 카드에 대한 희귀도 정보를 얻습니다. | |
quality | 특정 품질의 카드에 대한 희귀도 정보를 얻습니다. | |
god | 특정 신이 등장하는 카드에 대한 희귀도 정보 얻기 | |
type | 특정 유형의 카드에 대한 희귀도 정보를 얻습니다. | |
tribe | 특정 부족의 카드에 대한 희귀도 정보를 얻습니다. | |
purity | 순도 범위 내의 카드에 대한 희귀도 정보를 얻습니다. | |
mana | 마나 범위 내의 카드에 대한 희귀도 정보를 얻습니다. | |
health | 체력 범위 내의 카드에 대한 희귀도 정보를 얻습니다. | |
attack | 공격 범위가 있는 카드에 대한 희귀도 정보를 얻습니다. | |
proto | ` | 특정 프로토타입 ID를 가진 카드에 대한 희귀도 정보를 얻습니다. |
정렬 옵션
proto
, plain
, shadow
, gold
, diamond
응답 형식
{
"total": 380,
"page": 1,
"perPage": 1,
"records": [
{
"proto": 1,
"plain": 1325,
"shadow": 72,
"gold": 20,
"diamond": 3
}
]
}
토큰, 섀도우, 중앙 집중식 카드를 포함하여 주소 address
인 사용자의 인벤토리를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
rarity | 특정 희귀도의 카드를 얻으세요 | |
quality | 특정 품질의 카드를 얻으세요 | |
god | 특정 신의 카드를 받으세요 | |
type | 특정 유형의 카드 받기 | |
tribe | 특정 부족의 카드를 받으세요 | |
purity | 순도 범위 내에서 카드를 얻습니다. | |
mana | 마나 범위 내에서 카드를 얻습니다. | |
health | 건강 범위 내에서 카드 받기 | |
attack | 공격 범위가 있는 카드를 얻으세요 | |
proto | 특정 프로토타입 ID가 있는 카드 가져오기 |
응답 형식
{
"total": 380,
"page": 1,
"perPage": 1,
"records": [
{
"proto": 1,
"purities": [
"100", "200", "300", "2999"
]
}
]
}
DeckStrings는 애플리케이션이 데크를 가져오고 내보낼 수 있도록 하는 편리한 표준입니다. 다음 API는 기본 데크 스트링 작업을 위한 편리한 인터페이스를 제공합니다.
데크를 데크 문자열로 인코딩합니다.
요청 본문
{
"version": 1,
"god": "deception",
"protos": [
290, 17, 201, 201, 80, 80, 93, 93, 64, 64, 185, 185, 55, 55, 97, 331, 281, 281, 252, 252, 330,
330, 280, 202, 202, 265, 265, 37, 94, 94
]
}
응답 형식
AQYBBhElYZgCogLLAgIMN0BQXV65AckBygH8AYkCmQLKAg==
데크 문자열에서 데크를 디코딩합니다.
매개변수
응답 형식
{
"version": 1,
"god": "deception",
"protos": [
290, 17, 201, 201, 80, 80, 93, 93, 64, 64, 185, 185, 55, 55, 97, 331, 281, 281, 252, 252, 330,
330, 280, 202, 202, 265, 265, 37, 94, 94
]
}
일부 속성과 함께 게임 모드를 나열합니다.
응답 형식
[
{
"id": 2,
"name": "Constructed",
"description": "Classic Contructed",
"live": true,
"required_level": 0,
"properties": {
"type": 4,
"image_url": "https://images.godsunchained.com/misc/classic_constructed.webp"
}
}
]
경기 결과를 보여주세요
매개변수
이름 | 유형 | 설명 |
---|---|---|
start_time | 경기 시작 시간(UNIX epoch 형식) | |
end_time | 경기 종료 시간(UNIX 에포크 형식) | |
player_won | 플레이어의 user_id | |
player_lost | 플레이어의 user_id | |
game_mode | 게임 모드 식별자 |
중요 : total_turns 필드는 향후 업데이트에서 total_rounds로 이름이 변경될 예정이며, 커뮤니티에서 새 필드 이름을 사용하는 동안 계속 지원할 예정입니다.
응답 형식
{
"total": 1447,
"page": 1,
"perPage": 20,
"records": [
{
"player_won": 9127,
"player_lost": 6008,
"game_mode": 2,
"game_id": "b64865e2-682b-4a23-af11-20aad0cfd47c",
"start_time": 1560734177,
"end_time": 1560734355,
"player_info": [{"god":"nature","cards":[301,121,68,237,976,1000,973,523,910,385,494,467,905,519,907,507,919,916,906,442,386,537,471,928,475,906,454,909,945,920],"global":false,"health":30,"status":"connected","user_id":9127},{"god":"Magic","cards":[401,401,404,404,908,908,455,455,535,535,467,467,926,926,981,981,402,402,504,504,396,396,406,406,983,983,407,407,1002,1002],"global":true,"health":0,"status":"connected","user_id":6008}],
"total_turns": 6,
"total_rounds": 6
}
]
}
게임 모드별 플레이어의 순위를 표시합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
user_id | 사용자의 Apollo ID | |
game_mode | 순위의 게임 모드 |
응답 형식
{
"total": 543,
"page": 1,
"perPage": 20,
"records": [
{
"user_id": 9115,
"game_mode": 1,
"rating": 952,
"rank_level": 1,
"win_points": 82.849302,
"loss_points": 86.586029
},
{
"user_id": 2317,
"game_mode": 2,
"rating": 875.627936,
"rank_level": 1,
"win_points": 48.249483,
"loss_points": 89.55682
}
]
}
플레이어의 속성을 표시합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
user_id | 사용자의 Apollo ID |
응답 형식
{
"total": 8298,
"page": 1,
"perPage": 20,
"records": [
{
"user_id": 612,
"xp_level": 0,
"total_xp": 0,
"xp_to_next": 25,
"won_matches": 0,
"lost_matches": 0,
"username": "bestplayer"
},
{
"user_id": 706,
"xp_level": 36,
"total_xp": 25850,
"xp_to_next": 350,
"won_matches": 51,
"lost_matches": 40,
"username": "broken_player"
}
]
}
플레이어의 등급을 기준으로 일치 확률을 계산합니다(Elo 등급 알고리즘 사용).
매개변수
이름 | 유형 | 설명 |
---|---|---|
user_id | 사용자의 Apollo ID | |
opponent_id | 상대의 아폴로 ID | |
game_mode | 경기의 게임 모드 |
응답 형식
0.6717130465747431
Quality API는 공공 시스템에서 사용되는 품질 및 시각적 구성에 대한 데이터를 제공합니다.
모든 활성 품질 클래스 정의 및 관련 정보를 표시합니다. 이름 및 ID 관계 또는 메타데이터 재정의와 같은 지원 시스템에서 주로 사용됩니다.
응답 형식
[
{
"class_key": "quality",
"class_value": "2",
"class_properties": {
"name": "gold"
},
"class_type": "card",
"game_id": 1
},
...
]
지정된 품질 등급 정의 및 관련 정보를 표시합니다. 이름 및 ID 관계 또는 메타데이터 재정의와 같은 지원 시스템에서 주로 사용됩니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
quality | 품질 ID |
응답 형식
{
"class_key": "quality",
"class_value": "2",
"class_properties": {
"name": "gold"
},
"class_type": "card",
"game_id": 1
}
Gods Unchained에 사용된 NFT 아트에 대해 지정된 프로토 및 품질 조합에 대한 시각적 요소를 생성하는 데 필요한 모든 그래픽 구성 데이터를 표시합니다. 현재는 카드 아트만 지원합니다.
매개변수
이름 | 유형 | 설명 | 예 |
---|---|---|---|
pairs | @ 구분 기호로 정의된 Proto 및 Quality | 1234@5 |
응답 형식
[
{
"id": 1234,
"name": "Born Again",
"effect": "Pull a creature from your void to your hand. Give it +5/+5 and ward.",
"god": "light",
"rarity": "epic",
"tribe": { "String": "", "Valid": false },
"mana": 6,
"attack": { "Int64": 0, "Valid": false },
"health": { "Int64": 0, "Valid": false },
"type": "spell",
"set": "core",
"collectable": true,
"live": "true",
"art_id": "C448",
"lib_id": "L2-235",
"composition": {
"illustration": [
"1234"
],
"frame": [
"spell",
"spell_plain"
],
"rosette": [
"light",
"light_plain"
],
"gems": [
"rarity_epic"
],
"wreath": [],
"lock": [
"lock_plain"
],
"tribe_bar": [],
"set": [
"core"
]
}
}
]