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類型:
類型 | 描述 |
---|---|
十六進位以太坊地址,不區分大小寫。 | |
具體數量1000 ,範圍1000-2000 ,最小1000- 或最大-2000 。 |
各種api中枚舉類型的有效選項如下:
類型 | 選項 |
---|---|
光、死亡、自然、戰爭、魔法、欺騙 | |
稀有、史詩、傳奇、閃亮 | |
常見、稀有、史詩、傳奇、神話 | |
生物、法術、武器 | |
下界, 以太, 亞特蘭提斯, 維京人, 奧林匹亞, 阿努比安, 亞馬遜 | |
普通、陰影、金色、鑽石 | |
滿、卡 |
Gods Unchained 中有幾種「類型」的卡牌:
其中一些端點傳回上述內容的組合,而有些則不傳回:這是由各個端點記錄的。一般來說,預設是只回傳可以成為ERC721代幣的卡片(即Token卡和Model卡)。
原型卡或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 | 取得特定類型的原型 | |
tribe | 獲得特定部落的原型 | |
set | 取得具有特定集合的原型 | |
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"
}
]
}
傳回帶有索引index
的包,該包的索引來自address
為address的包工廠的購買id
。
參數
姓名 | 類型 | 描述 |
---|---|---|
address | 包裝廠地址 | |
id | 購買的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 紀元格式) | |
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 | 對手的Apollo ID | |
game_mode | 比賽的比賽模式 |
回應格式
0.6717130465747431
品質 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"
]
}
}
]